diff --git a/.gitignore b/.gitignore index 0faf59c0d28fc1195b299282e158b63095b45b07..30889ac7d9ff8779f9e673335349be23de6747d5 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,6 @@ build/ Test/localResults/ Test/multiThread.out Test/singleThread.out +Test/vert.spv +Test/frag.spv External/googletest diff --git a/CMakeLists.txt b/CMakeLists.txt index c03edd7c5c2d4539eeb9832ccb391d40648c7d73..33b4764d598d8ec31fb7a0f386f4f544e79cdaf3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 2.8.11) set_property(GLOBAL PROPERTY USE_FOLDERS ON) -option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" OFF) +option(ENABLE_AMD_EXTENSIONS "Enables support of AMD-specific extensions" ON) enable_testing() diff --git a/README.md b/README.md index 63ffdee1701612c3bdcaa8f873c80c9a755b27c8..9cfdce1839c953287c3998ca9df603de9b43cead 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,10 @@ Building ```bash cd <parent of where you want glslang to be> +# If using SSH git clone git@github.com:KhronosGroup/glslang.git +# Or if using HTTPS +git clone https://github.com/KhronosGroup/glslang.git ``` #### 2) Check-Out External Projects diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt index 48a6c468fb7e1060caab75da4465b8050a0f2bbc..2c65d71a6f5ee0724496ca99221a4c9c01e666f7 100755 --- a/SPIRV/CMakeLists.txt +++ b/SPIRV/CMakeLists.txt @@ -11,9 +11,12 @@ set(SPVREMAP_SOURCES doc.cpp) set(HEADERS + bitutils.h spirv.hpp GLSL.std.450.h + GLSL.ext.KHR.h GlslangToSpv.h + hex_float.h Logger.h SpvBuilder.h spvIR.h @@ -25,8 +28,9 @@ set(SPVREMAP_HEADERS doc.h) if(ENABLE_AMD_EXTENSIONS) - set(HEADERS - GLSL.ext.AMD.h) + list(APPEND + HEADERS + GLSL.ext.AMD.h) endif(ENABLE_AMD_EXTENSIONS) add_library(SPIRV STATIC ${SOURCES} ${HEADERS}) diff --git a/SPIRV/GLSL.ext.AMD.h b/SPIRV/GLSL.ext.AMD.h index 633cea0cd74506231ff272a5a9a93a1ad5d29eed..d2098cc1af65953d1c3bc809ac45e650d63b3b74 100644 --- a/SPIRV/GLSL.ext.AMD.h +++ b/SPIRV/GLSL.ext.AMD.h @@ -32,7 +32,7 @@ enum Decoration; enum Op; static const int GLSLextAMDVersion = 100; -static const int GLSLextAMDRevision = 1; +static const int GLSLextAMDRevision = 2; // SPV_AMD_shader_ballot static const char* const E_SPV_AMD_shader_ballot = "SPV_AMD_shader_ballot"; @@ -110,4 +110,7 @@ enum GcnShaderAMD { GcnShaderCountAMD }; +// SPV_AMD_gpu_shader_half_float +static const char* const E_SPV_AMD_gpu_shader_half_float = "SPV_AMD_gpu_shader_half_float"; + #endif // #ifndef GLSLextAMD_H diff --git a/SPIRV/GLSL.ext.KHR.h b/SPIRV/GLSL.ext.KHR.h new file mode 100644 index 0000000000000000000000000000000000000000..344dd398c3bbb11595e44518ddeabc708c280ae5 --- /dev/null +++ b/SPIRV/GLSL.ext.KHR.h @@ -0,0 +1,36 @@ +/* +** Copyright (c) 2014-2016 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and/or associated documentation files (the "Materials"), +** to deal in the Materials without restriction, including without limitation +** the rights to use, copy, modify, merge, publish, distribute, sublicense, +** and/or sell copies of the Materials, and to permit persons to whom the +** Materials are furnished to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in +** all copies or substantial portions of the Materials. +** +** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS +** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND +** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS +** IN THE MATERIALS. +*/ + +#ifndef GLSLextKHR_H +#define GLSLextKHR_H + +// SPV_KHR_shader_ballot +static const char* const E_SPV_KHR_shader_ballot = "SPV_KHR_shader_ballot"; + +// SPV_KHR_shader_draw_parameters +static const char* const E_SPV_KHR_shader_draw_parameters = "SPV_KHR_shader_draw_parameters"; + +#endif // #ifndef GLSLextKHR_H diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp index 728658862e751ca9bfbc9f08db59322711622ab0..15af947c29b810a3cf45296872a354de9a1c181a 100755 --- a/SPIRV/GlslangToSpv.cpp +++ b/SPIRV/GlslangToSpv.cpp @@ -42,9 +42,10 @@ #include "GlslangToSpv.h" #include "SpvBuilder.h" namespace spv { - #include "GLSL.std.450.h" + #include "GLSL.std.450.h" + #include "GLSL.ext.KHR.h" #ifdef AMD_EXTENSIONS - #include "GLSL.ext.AMD.h" + #include "GLSL.ext.AMD.h" #endif } @@ -98,7 +99,7 @@ private: class TGlslangToSpvTraverser : public glslang::TIntermTraverser { public: TGlslangToSpvTraverser(const glslang::TIntermediate*, spv::SpvBuildLogger* logger); - virtual ~TGlslangToSpvTraverser(); + virtual ~TGlslangToSpvTraverser() { } bool visitAggregate(glslang::TVisit, glslang::TIntermAggregate*); bool visitBinary(glslang::TVisit, glslang::TIntermBinary*); @@ -110,9 +111,11 @@ public: bool visitLoop(glslang::TVisit, glslang::TIntermLoop*); bool visitBranch(glslang::TVisit visit, glslang::TIntermBranch*); + void finishSpv(); void dumpSpv(std::vector<unsigned int>& out); protected: + spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier); spv::Decoration TranslateAuxiliaryStorageDecoration(const glslang::TQualifier& qualifier); spv::BuiltIn TranslateBuiltInDecoration(glslang::TBuiltInVariable, bool memberDeclaration); spv::ImageFormat TranslateImageFormat(const glslang::TType& type); @@ -154,10 +157,8 @@ protected: spv::Id createConversion(glslang::TOperator op, spv::Decoration precision, spv::Decoration noContraction, spv::Id destTypeId, spv::Id operand, glslang::TBasicType typeProxy); spv::Id makeSmearedConstant(spv::Id constant, int vectorSize); spv::Id createAtomicOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy); - spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy); -#ifdef AMD_EXTENSIONS - spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, spv::Id operand); -#endif + spv::Id createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy); + spv::Id CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, std::vector<spv::Id>& operands); spv::Id createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy); spv::Id createNoArgOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId); spv::Id getSymbolId(const glslang::TIntermSymbol* node); @@ -173,6 +174,7 @@ protected: spv::Id getExtBuiltins(const char* name); spv::Function* shaderEntry; + spv::Function* currentFunction; spv::Instruction* entryPoint; int sequenceDepth; @@ -180,8 +182,8 @@ protected: // There is a 1:1 mapping between a spv builder and a module; this is thread safe spv::Builder builder; - bool inMain; - bool mainTerminated; + bool inEntryPoint; + bool entryPointTerminated; bool linkageOnly; // true when visiting the set of objects in the AST present only for establishing interface, whether or not they were statically used std::set<spv::Id> iOSet; // all input/output variables from either static use or declaration of interface const glslang::TIntermediate* glslangIntermediate; @@ -381,7 +383,7 @@ spv::Decoration TranslateLayoutDecoration(const glslang::TType& type, glslang::T // Translate glslang type to SPIR-V interpolation decorations. // Returns spv::DecorationMax when no decoration // should be applied. -spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qualifier) +spv::Decoration TGlslangToSpvTraverser::TranslateInterpolationDecoration(const glslang::TQualifier& qualifier) { if (qualifier.smooth) // Smooth decoration doesn't exist in SPIR-V 1.0 @@ -391,8 +393,10 @@ spv::Decoration TranslateInterpolationDecoration(const glslang::TQualifier& qual else if (qualifier.flat) return spv::DecorationFlat; #ifdef AMD_EXTENSIONS - else if (qualifier.explicitInterp) + else if (qualifier.explicitInterp) { + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); return spv::DecorationExplicitInterpAMD; + } #endif else return spv::DecorationMax; @@ -498,13 +502,27 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvInstanceId: return spv::BuiltInInstanceId; case glslang::EbvVertexIndex: return spv::BuiltInVertexIndex; case glslang::EbvInstanceIndex: return spv::BuiltInInstanceIndex; + case glslang::EbvBaseVertex: + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addCapability(spv::CapabilityDrawParameters); + return spv::BuiltInBaseVertex; + case glslang::EbvBaseInstance: + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addCapability(spv::CapabilityDrawParameters); + return spv::BuiltInBaseInstance; + case glslang::EbvDrawId: - // TODO: Add SPIR-V builtin ID. - logger->missingFunctionality("shader draw parameters"); - return spv::BuiltInMax; - case glslang::EbvPrimitiveId: return spv::BuiltInPrimitiveId; + builder.addExtension(spv::E_SPV_KHR_shader_draw_parameters); + builder.addCapability(spv::CapabilityDrawParameters); + return spv::BuiltInDrawIndex; + + case glslang::EbvPrimitiveId: + if (glslangIntermediate->getStage() == EShLangFragment) + builder.addCapability(spv::CapabilityGeometry); + return spv::BuiltInPrimitiveId; + case glslang::EbvInvocationId: return spv::BuiltInInvocationId; case glslang::EbvTessLevelInner: return spv::BuiltInTessLevelInner; case glslang::EbvTessLevelOuter: return spv::BuiltInTessLevelOuter; @@ -521,24 +539,70 @@ spv::BuiltIn TGlslangToSpvTraverser::TranslateBuiltInDecoration(glslang::TBuiltI case glslang::EbvLocalInvocationId: return spv::BuiltInLocalInvocationId; case glslang::EbvLocalInvocationIndex: return spv::BuiltInLocalInvocationIndex; case glslang::EbvGlobalInvocationId: return spv::BuiltInGlobalInvocationId; + case glslang::EbvSubGroupSize: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupSize; + case glslang::EbvSubGroupInvocation: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupLocalInvocationId; + case glslang::EbvSubGroupEqMask: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupEqMaskKHR; + case glslang::EbvSubGroupGeMask: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupGeMaskKHR; + case glslang::EbvSubGroupGtMask: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupGtMaskKHR; + case glslang::EbvSubGroupLeMask: + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupLeMaskKHR; + case glslang::EbvSubGroupLtMask: - // TODO: Add SPIR-V builtin ID. - logger->missingFunctionality("shader ballot"); - return spv::BuiltInMax; + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + return spv::BuiltInSubgroupLtMaskKHR; + #ifdef AMD_EXTENSIONS - case glslang::EbvBaryCoordNoPersp: return spv::BuiltInBaryCoordNoPerspAMD; - case glslang::EbvBaryCoordNoPerspCentroid: return spv::BuiltInBaryCoordNoPerspCentroidAMD; - case glslang::EbvBaryCoordNoPerspSample: return spv::BuiltInBaryCoordNoPerspSampleAMD; - case glslang::EbvBaryCoordSmooth: return spv::BuiltInBaryCoordSmoothAMD; - case glslang::EbvBaryCoordSmoothCentroid: return spv::BuiltInBaryCoordSmoothCentroidAMD; - case glslang::EbvBaryCoordSmoothSample: return spv::BuiltInBaryCoordSmoothSampleAMD; - case glslang::EbvBaryCoordPullModel: return spv::BuiltInBaryCoordPullModelAMD; + case glslang::EbvBaryCoordNoPersp: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordNoPerspAMD; + + case glslang::EbvBaryCoordNoPerspCentroid: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordNoPerspCentroidAMD; + + case glslang::EbvBaryCoordNoPerspSample: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordNoPerspSampleAMD; + + case glslang::EbvBaryCoordSmooth: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordSmoothAMD; + + case glslang::EbvBaryCoordSmoothCentroid: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordSmoothCentroidAMD; + + case glslang::EbvBaryCoordSmoothSample: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordSmoothSampleAMD; + + case glslang::EbvBaryCoordPullModel: + builder.addExtension(spv::E_SPV_AMD_shader_explicit_vertex_parameter); + return spv::BuiltInBaryCoordPullModelAMD; #endif default: return spv::BuiltInMax; } @@ -702,9 +766,10 @@ bool HasNonLayoutQualifiers(const glslang::TType& type, const glslang::TQualifie // TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* glslangIntermediate, spv::SpvBuildLogger* buildLogger) - : TIntermTraverser(true, false, true), shaderEntry(0), sequenceDepth(0), logger(buildLogger), + : TIntermTraverser(true, false, true), shaderEntry(nullptr), currentFunction(nullptr), + sequenceDepth(0), logger(buildLogger), builder((glslang::GetKhronosToolId() << 16) | GeneratorVersion, logger), - inMain(false), mainTerminated(false), linkageOnly(false), + inEntryPoint(false), entryPointTerminated(false), linkageOnly(false), glslangIntermediate(glslangIntermediate) { spv::ExecutionModel executionModel = TranslateExecutionModel(glslangIntermediate->getStage()); @@ -832,27 +897,27 @@ TGlslangToSpvTraverser::TGlslangToSpvTraverser(const glslang::TIntermediate* gls default: break; } - } -// Finish everything and dump -void TGlslangToSpvTraverser::dumpSpv(std::vector<unsigned int>& out) +// Finish creating SPV, after the traversal is complete. +void TGlslangToSpvTraverser::finishSpv() { + if (! entryPointTerminated) { + builder.setBuildPoint(shaderEntry->getLastBlock()); + builder.leaveFunction(); + } + // finish off the entry-point SPV instruction by adding the Input/Output <id> for (auto it = iOSet.cbegin(); it != iOSet.cend(); ++it) entryPoint->addIdOperand(*it); builder.eliminateDeadDecorations(); - builder.dump(out); } -TGlslangToSpvTraverser::~TGlslangToSpvTraverser() +// Write the SPV into 'out'. +void TGlslangToSpvTraverser::dumpSpv(std::vector<unsigned int>& out) { - if (! mainTerminated) { - spv::Block* lastMainBlock = shaderEntry->getLastBlock(); - builder.setBuildPoint(lastMainBlock); - builder.leaveFunction(); - } + builder.dump(out); } // @@ -1190,6 +1255,10 @@ bool TGlslangToSpvTraverser::visitUnary(glslang::TVisit /* visit */, glslang::TI one = builder.makeFloatConstant(1.0F); else if (node->getBasicType() == glslang::EbtDouble) one = builder.makeDoubleConstant(1.0); +#ifdef AMD_EXTENSIONS + else if (node->getBasicType() == glslang::EbtFloat16) + one = builder.makeFloat16Constant(1.0F); +#endif else if (node->getBasicType() == glslang::EbtInt64 || node->getBasicType() == glslang::EbtUint64) one = builder.makeInt64Constant(1); else @@ -1283,7 +1352,7 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt // anything else gets there, so visit out of order, doing them all now. makeGlobalInitializers(node->getAsAggregate()->getSequence()); - // Initializers are done, don't want to visit again, but functions link objects need to be processed, + // Initializers are done, don't want to visit again, but functions and link objects need to be processed, // so do them manually. visitFunctions(node->getAsAggregate()->getSequence()); @@ -1314,16 +1383,17 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpFunction: if (visit == glslang::EvPreVisit) { if (isShaderEntryPoint(node)) { - inMain = true; + inEntryPoint = true; builder.setBuildPoint(shaderEntry->getLastBlock()); + currentFunction = shaderEntry; } else { handleFunctionEntry(node); } } else { - if (inMain) - mainTerminated = true; + if (inEntryPoint) + entryPointTerminated = true; builder.leaveFunction(); - inMain = false; + inEntryPoint = false; } return true; @@ -1363,6 +1433,17 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructDMat4x2: case glslang::EOpConstructDMat4x3: case glslang::EOpConstructDMat4x4: +#ifdef AMD_EXTENSIONS + case glslang::EOpConstructF16Mat2x2: + case glslang::EOpConstructF16Mat2x3: + case glslang::EOpConstructF16Mat2x4: + case glslang::EOpConstructF16Mat3x2: + case glslang::EOpConstructF16Mat3x3: + case glslang::EOpConstructF16Mat3x4: + case glslang::EOpConstructF16Mat4x2: + case glslang::EOpConstructF16Mat4x3: + case glslang::EOpConstructF16Mat4x4: +#endif isMatrix = true; // fall through case glslang::EOpConstructFloat: @@ -1373,6 +1454,12 @@ bool TGlslangToSpvTraverser::visitAggregate(glslang::TVisit visit, glslang::TInt case glslang::EOpConstructDVec2: case glslang::EOpConstructDVec3: case glslang::EOpConstructDVec4: +#ifdef AMD_EXTENSIONS + case glslang::EOpConstructFloat16: + case glslang::EOpConstructF16Vec2: + case glslang::EOpConstructF16Vec3: + case glslang::EOpConstructF16Vec4: +#endif case glslang::EOpConstructBool: case glslang::EOpConstructBVec2: case glslang::EOpConstructBVec3: @@ -1806,9 +1893,18 @@ bool TGlslangToSpvTraverser::visitBranch(glslang::TVisit /* visit */, glslang::T builder.createLoopContinue(); break; case glslang::EOpReturn: - if (node->getExpression()) - builder.makeReturn(false, accessChainLoad(node->getExpression()->getType())); - else + if (node->getExpression()) { + const glslang::TType& glslangReturnType = node->getExpression()->getType(); + spv::Id returnId = accessChainLoad(glslangReturnType); + if (builder.getTypeId(returnId) != currentFunction->getReturnType()) { + builder.clearAccessChain(); + spv::Id copyId = builder.createVariable(spv::StorageClassFunction, currentFunction->getReturnType()); + builder.setAccessChainLValue(copyId); + multiTypeStore(glslangReturnType, returnId); + returnId = builder.createLoad(copyId); + } + builder.makeReturn(false, returnId); + } else builder.makeReturn(false); builder.clearAccessChain(); @@ -1876,7 +1972,6 @@ spv::Id TGlslangToSpvTraverser::createInvertedSwizzle(spv::Decoration precision, return builder.createRvalueSwizzle(precision, convertGlslangToSpvType(node.getType()), parentResult, swizzle); } - // Convert a glslang AST swizzle node to a swizzle vector for building SPIR-V. void TGlslangToSpvTraverser::convertSwizzle(const glslang::TIntermAggregate& node, std::vector<unsigned>& swizzle) { @@ -1911,6 +2006,13 @@ spv::Id TGlslangToSpvTraverser::convertGlslangToSpvType(const glslang::TType& ty case glslang::EbtDouble: spvType = builder.makeFloatType(64); break; +#ifdef AMD_EXTENSIONS + case glslang::EbtFloat16: + builder.addExtension(spv::E_SPV_AMD_gpu_shader_half_float); + builder.addCapability(spv::CapabilityFloat16); + spvType = builder.makeFloatType(16); + break; +#endif case glslang::EbtBool: // "transparent" bool doesn't exist in SPIR-V. The GLSL convention is // a 32-bit int where non-0 means true. @@ -2274,7 +2376,7 @@ void TGlslangToSpvTraverser::accessChainStore(const glslang::TType& type, spv::I // SPIR-V level. // // This especially happens when a single glslang type expands to multiple -// SPIR-V types, like a struct that is used in an member-undecorated way as well +// SPIR-V types, like a struct that is used in a member-undecorated way as well // as in a member-decorated way. // // NOTE: This function can handle any store request; if it's not special it @@ -2532,7 +2634,7 @@ void TGlslangToSpvTraverser::visitFunctions(const glslang::TIntermSequence& glsl { for (int f = 0; f < (int)glslFunctions.size(); ++f) { glslang::TIntermAggregate* node = glslFunctions[f]->getAsAggregate(); - if (node && (node->getOp() == glslang::EOpFunction || node->getOp() == glslang ::EOpLinkerObjects)) + if (node && (node->getOp() == glslang::EOpFunction || node->getOp() == glslang::EOpLinkerObjects)) node->traverse(this); } } @@ -2541,8 +2643,8 @@ void TGlslangToSpvTraverser::handleFunctionEntry(const glslang::TIntermAggregate { // SPIR-V functions should already be in the functionMap from the prepass // that called makeFunctions(). - spv::Function* function = functionMap[node->getName().c_str()]; - spv::Block* functionBlock = function->getEntryBlock(); + currentFunction = functionMap[node->getName().c_str()]; + spv::Block* functionBlock = currentFunction->getEntryBlock(); builder.setBuildPoint(functionBlock); } @@ -2667,9 +2769,10 @@ spv::Id TGlslangToSpvTraverser::createImageTextureFunctionCall(glslang::TIntermO // Check for queries if (cracked.query) { - // a sampled image needs to have the image extracted first - if (builder.isSampledImage(params.sampler)) + // OpImageQueryLod works on a sampled image, for other queries the image has to be extracted first + if (node->getOp() != glslang::EOpTextureQueryLod && builder.isSampledImage(params.sampler)) params.sampler = builder.createUnaryOp(spv::OpImage, builder.getImageType(params.sampler), params.sampler); + switch (node->getOp()) { case glslang::EOpImageQuerySize: case glslang::EOpTextureQuerySize: @@ -3015,7 +3118,11 @@ spv::Id TGlslangToSpvTraverser::createBinaryOperation(glslang::TOperator op, spv glslang::TBasicType typeProxy, bool reduceComparison) { bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif bool isBool = typeProxy == glslang::EbtBool; spv::Op binOp = spv::OpNop; @@ -3341,7 +3448,11 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: int extBuiltins = -1; int libCall = -1; bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif switch (op) { case glslang::EOpNegative: @@ -3525,6 +3636,13 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: unaryOp = spv::OpBitcast; break; +#ifdef AMD_EXTENSIONS + case glslang::EOpPackFloat2x16: + case glslang::EOpUnpackFloat2x16: + unaryOp = spv::OpBitcast; + break; +#endif + case glslang::EOpDPdx: unaryOp = spv::OpDPdx; break; @@ -3610,10 +3728,6 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpBallot: case glslang::EOpReadFirstInvocation: - logger->missingFunctionality("shader ballot"); - libCall = spv::GLSLstd450Bad; - break; - case glslang::EOpAnyInvocation: case glslang::EOpAllInvocations: case glslang::EOpAllInvocationsEqual: @@ -3625,7 +3739,11 @@ spv::Id TGlslangToSpvTraverser::createUnaryOperation(glslang::TOperator op, spv: case glslang::EOpMaxInvocationsNonUniform: case glslang::EOpAddInvocationsNonUniform: #endif - return createInvocationsOperation(op, typeId, operand, typeProxy); + { + std::vector<spv::Id> operands; + operands.push_back(operand); + return createInvocationsOperation(op, typeId, operands, typeProxy); + } #ifdef AMD_EXTENSIONS case glslang::EOpMbcnt: @@ -3721,22 +3839,40 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec zero = makeSmearedConstant(zero, vectorSize); return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero); +#ifdef AMD_EXTENSIONS + case glslang::EOpConvFloat16ToBool: + zero = builder.makeFloat16Constant(0.0F); + zero = makeSmearedConstant(zero, vectorSize); + return builder.createBinOp(spv::OpFOrdNotEqual, destType, operand, zero); +#endif + case glslang::EOpConvBoolToFloat: convOp = spv::OpSelect; - zero = builder.makeFloatConstant(0.0); - one = builder.makeFloatConstant(1.0); + zero = builder.makeFloatConstant(0.0F); + one = builder.makeFloatConstant(1.0F); break; + case glslang::EOpConvBoolToDouble: convOp = spv::OpSelect; zero = builder.makeDoubleConstant(0.0); one = builder.makeDoubleConstant(1.0); break; + +#ifdef AMD_EXTENSIONS + case glslang::EOpConvBoolToFloat16: + convOp = spv::OpSelect; + zero = builder.makeFloat16Constant(0.0F); + one = builder.makeFloat16Constant(1.0F); + break; +#endif + case glslang::EOpConvBoolToInt: case glslang::EOpConvBoolToInt64: zero = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(0) : builder.makeIntConstant(0); one = (op == glslang::EOpConvBoolToInt64) ? builder.makeInt64Constant(1) : builder.makeIntConstant(1); convOp = spv::OpSelect; break; + case glslang::EOpConvBoolToUint: case glslang::EOpConvBoolToUint64: zero = (op == glslang::EOpConvBoolToUint64) ? builder.makeUint64Constant(0) : builder.makeUintConstant(0); @@ -3748,6 +3884,10 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvIntToDouble: case glslang::EOpConvInt64ToFloat: case glslang::EOpConvInt64ToDouble: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvIntToFloat16: + case glslang::EOpConvInt64ToFloat16: +#endif convOp = spv::OpConvertSToF; break; @@ -3755,11 +3895,21 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvUintToDouble: case glslang::EOpConvUint64ToFloat: case glslang::EOpConvUint64ToDouble: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvUintToFloat16: + case glslang::EOpConvUint64ToFloat16: +#endif convOp = spv::OpConvertUToF; break; case glslang::EOpConvDoubleToFloat: case glslang::EOpConvFloatToDouble: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvDoubleToFloat16: + case glslang::EOpConvFloat16ToDouble: + case glslang::EOpConvFloatToFloat16: + case glslang::EOpConvFloat16ToFloat: +#endif convOp = spv::OpFConvert; if (builder.isMatrixType(destType)) return createUnaryMatrixOperation(convOp, precision, noContraction, destType, operand, typeProxy); @@ -3769,6 +3919,10 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvDoubleToInt: case glslang::EOpConvFloatToInt64: case glslang::EOpConvDoubleToInt64: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvFloat16ToInt: + case glslang::EOpConvFloat16ToInt64: +#endif convOp = spv::OpConvertFToS; break; @@ -3793,6 +3947,10 @@ spv::Id TGlslangToSpvTraverser::createConversion(glslang::TOperator op, spv::Dec case glslang::EOpConvDoubleToUint: case glslang::EOpConvFloatToUint64: case glslang::EOpConvDoubleToUint64: +#ifdef AMD_EXTENSIONS + case glslang::EOpConvFloat16ToUint: + case glslang::EOpConvFloat16ToUint64: +#endif convOp = spv::OpConvertFToU; break; @@ -3959,125 +4117,176 @@ spv::Id TGlslangToSpvTraverser::createAtomicOperation(glslang::TOperator op, spv } // Create group invocation operations. -spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, spv::Id operand, glslang::TBasicType typeProxy) +spv::Id TGlslangToSpvTraverser::createInvocationsOperation(glslang::TOperator op, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy) { +#ifdef AMD_EXTENSIONS bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; - bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#endif - builder.addCapability(spv::CapabilityGroups); + spv::Op opCode = spv::OpNop; - std::vector<spv::Id> operands; - operands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + std::vector<spv::Id> spvGroupOperands; + if (op == glslang::EOpBallot || op == glslang::EOpReadFirstInvocation) { + builder.addExtension(spv::E_SPV_KHR_shader_ballot); + builder.addCapability(spv::CapabilitySubgroupBallotKHR); + } else { + builder.addCapability(spv::CapabilityGroups); #ifdef AMD_EXTENSIONS - if (op == glslang::EOpMinInvocations || op == glslang::EOpMaxInvocations || op == glslang::EOpAddInvocations || - op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) - operands.push_back(spv::GroupOperationReduce); + if (op == glslang::EOpMinInvocationsNonUniform || + op == glslang::EOpMaxInvocationsNonUniform || + op == glslang::EOpAddInvocationsNonUniform) + builder.addExtension(spv::E_SPV_AMD_shader_ballot); #endif - operands.push_back(operand); + + spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); +#ifdef AMD_EXTENSIONS + if (op == glslang::EOpMinInvocations || op == glslang::EOpMaxInvocations || op == glslang::EOpAddInvocations || + op == glslang::EOpMinInvocationsNonUniform || op == glslang::EOpMaxInvocationsNonUniform || op == glslang::EOpAddInvocationsNonUniform) + spvGroupOperands.push_back(spv::GroupOperationReduce); +#endif + } + + for (auto opIt = operands.begin(); opIt != operands.end(); ++opIt) + spvGroupOperands.push_back(*opIt); switch (op) { case glslang::EOpAnyInvocation: + opCode = spv::OpGroupAny; + break; case glslang::EOpAllInvocations: - return builder.createOp(op == glslang::EOpAnyInvocation ? spv::OpGroupAny : spv::OpGroupAll, typeId, operands); - + opCode = spv::OpGroupAll; + break; case glslang::EOpAllInvocationsEqual: { - spv::Id groupAll = builder.createOp(spv::OpGroupAll, typeId, operands); - spv::Id groupAny = builder.createOp(spv::OpGroupAny, typeId, operands); + spv::Id groupAll = builder.createOp(spv::OpGroupAll, typeId, spvGroupOperands); + spv::Id groupAny = builder.createOp(spv::OpGroupAny, typeId, spvGroupOperands); return builder.createBinOp(spv::OpLogicalOr, typeId, groupAll, builder.createUnaryOp(spv::OpLogicalNot, typeId, groupAny)); } + + case glslang::EOpReadInvocation: + opCode = spv::OpGroupBroadcast; + if (builder.isVectorType(typeId)) + return CreateInvocationsVectorOperation(opCode, typeId, operands); + break; + case glslang::EOpReadFirstInvocation: + opCode = spv::OpSubgroupFirstInvocationKHR; + break; + case glslang::EOpBallot: + { + // NOTE: According to the spec, the result type of "OpSubgroupBallotKHR" must be a 4 component vector of 32 + // bit integer types. The GLSL built-in function "ballotARB()" assumes the maximum number of invocations in + // a subgroup is 64. Thus, we have to convert uvec4.xy to uint64_t as follow: + // + // result = Bitcast(SubgroupBallotKHR(Predicate).xy) + // + spv::Id uintType = builder.makeUintType(32); + spv::Id uvec4Type = builder.makeVectorType(uintType, 4); + spv::Id result = builder.createOp(spv::OpSubgroupBallotKHR, uvec4Type, spvGroupOperands); + + std::vector<spv::Id> components; + components.push_back(builder.createCompositeExtract(result, uintType, 0)); + components.push_back(builder.createCompositeExtract(result, uintType, 1)); + + spv::Id uvec2Type = builder.makeVectorType(uintType, 2); + return builder.createUnaryOp(spv::OpBitcast, typeId, + builder.createCompositeConstruct(uvec2Type, components)); + } + #ifdef AMD_EXTENSIONS case glslang::EOpMinInvocations: case glslang::EOpMaxInvocations: case glslang::EOpAddInvocations: - { - spv::Op spvOp = spv::OpNop; if (op == glslang::EOpMinInvocations) { if (isFloat) - spvOp = spv::OpGroupFMin; + opCode = spv::OpGroupFMin; else { if (isUnsigned) - spvOp = spv::OpGroupUMin; + opCode = spv::OpGroupUMin; else - spvOp = spv::OpGroupSMin; + opCode = spv::OpGroupSMin; } } else if (op == glslang::EOpMaxInvocations) { if (isFloat) - spvOp = spv::OpGroupFMax; + opCode = spv::OpGroupFMax; else { if (isUnsigned) - spvOp = spv::OpGroupUMax; + opCode = spv::OpGroupUMax; else - spvOp = spv::OpGroupSMax; + opCode = spv::OpGroupSMax; } } else { if (isFloat) - spvOp = spv::OpGroupFAdd; + opCode = spv::OpGroupFAdd; else - spvOp = spv::OpGroupIAdd; + opCode = spv::OpGroupIAdd; } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(spvOp, typeId, operand); - else - return builder.createOp(spvOp, typeId, operands); - } + return CreateInvocationsVectorOperation(opCode, typeId, operands); + + break; case glslang::EOpMinInvocationsNonUniform: case glslang::EOpMaxInvocationsNonUniform: case glslang::EOpAddInvocationsNonUniform: - { - spv::Op spvOp = spv::OpNop; if (op == glslang::EOpMinInvocationsNonUniform) { if (isFloat) - spvOp = spv::OpGroupFMinNonUniformAMD; + opCode = spv::OpGroupFMinNonUniformAMD; else { if (isUnsigned) - spvOp = spv::OpGroupUMinNonUniformAMD; + opCode = spv::OpGroupUMinNonUniformAMD; else - spvOp = spv::OpGroupSMinNonUniformAMD; + opCode = spv::OpGroupSMinNonUniformAMD; } } else if (op == glslang::EOpMaxInvocationsNonUniform) { if (isFloat) - spvOp = spv::OpGroupFMaxNonUniformAMD; + opCode = spv::OpGroupFMaxNonUniformAMD; else { if (isUnsigned) - spvOp = spv::OpGroupUMaxNonUniformAMD; + opCode = spv::OpGroupUMaxNonUniformAMD; else - spvOp = spv::OpGroupSMaxNonUniformAMD; + opCode = spv::OpGroupSMaxNonUniformAMD; } } else { if (isFloat) - spvOp = spv::OpGroupFAddNonUniformAMD; + opCode = spv::OpGroupFAddNonUniformAMD; else - spvOp = spv::OpGroupIAddNonUniformAMD; + opCode = spv::OpGroupIAddNonUniformAMD; } if (builder.isVectorType(typeId)) - return CreateInvocationsVectorOperation(spvOp, typeId, operand); - else - return builder.createOp(spvOp, typeId, operands); - } + return CreateInvocationsVectorOperation(opCode, typeId, operands); + + break; #endif default: logger->missingFunctionality("invocation operation"); return spv::NoResult; } + + assert(opCode != spv::OpNop); + return builder.createOp(opCode, typeId, spvGroupOperands); } -#ifdef AMD_EXTENSIONS // Create group invocation operations on a vector -spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, spv::Id operand) +spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv::Id typeId, std::vector<spv::Id>& operands) { +#ifdef AMD_EXTENSIONS assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || - op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || + op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast || op == spv::OpGroupFMinNonUniformAMD || op == spv::OpGroupUMinNonUniformAMD || op == spv::OpGroupSMinNonUniformAMD || op == spv::OpGroupFMaxNonUniformAMD || op == spv::OpGroupUMaxNonUniformAMD || op == spv::OpGroupSMaxNonUniformAMD || op == spv::OpGroupFAddNonUniformAMD || op == spv::OpGroupIAddNonUniformAMD); +#else + assert(op == spv::OpGroupFMin || op == spv::OpGroupUMin || op == spv::OpGroupSMin || + op == spv::OpGroupFMax || op == spv::OpGroupUMax || op == spv::OpGroupSMax || + op == spv::OpGroupFAdd || op == spv::OpGroupIAdd || op == spv::OpGroupBroadcast); +#endif // Handle group invocation operations scalar by scalar. // The result type is the same type as the original type. @@ -4087,33 +4296,41 @@ spv::Id TGlslangToSpvTraverser::CreateInvocationsVectorOperation(spv::Op op, spv // - make a vector out the scalar results // get the types sorted out - int numComponents = builder.getNumComponents(operand); - spv::Id scalarType = builder.getScalarTypeId(builder.getTypeId(operand)); + int numComponents = builder.getNumComponents(operands[0]); + spv::Id scalarType = builder.getScalarTypeId(builder.getTypeId(operands[0])); std::vector<spv::Id> results; // do each scalar op for (int comp = 0; comp < numComponents; ++comp) { std::vector<unsigned int> indexes; indexes.push_back(comp); - spv::Id scalar = builder.createCompositeExtract(operand, scalarType, indexes); + spv::Id scalar = builder.createCompositeExtract(operands[0], scalarType, indexes); - std::vector<spv::Id> operands; - operands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); - operands.push_back(spv::GroupOperationReduce); - operands.push_back(scalar); + std::vector<spv::Id> spvGroupOperands; + spvGroupOperands.push_back(builder.makeUintConstant(spv::ScopeSubgroup)); + if (op == spv::OpGroupBroadcast) { + spvGroupOperands.push_back(scalar); + spvGroupOperands.push_back(operands[1]); + } else { + spvGroupOperands.push_back(spv::GroupOperationReduce); + spvGroupOperands.push_back(scalar); + } - results.push_back(builder.createOp(op, scalarType, operands)); + results.push_back(builder.createOp(op, scalarType, spvGroupOperands)); } // put the pieces together return builder.createCompositeConstruct(typeId, results); } -#endif spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv::Decoration precision, spv::Id typeId, std::vector<spv::Id>& operands, glslang::TBasicType typeProxy) { bool isUnsigned = typeProxy == glslang::EbtUint || typeProxy == glslang::EbtUint64; +#ifdef AMD_EXTENSIONS + bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble || typeProxy == glslang::EbtFloat16; +#else bool isFloat = typeProxy == glslang::EbtFloat || typeProxy == glslang::EbtDouble; +#endif spv::Op opCode = spv::OpNop; int extBuiltins = -1; @@ -4256,9 +4473,7 @@ spv::Id TGlslangToSpvTraverser::createMiscOperation(glslang::TOperator op, spv:: break; case glslang::EOpReadInvocation: - logger->missingFunctionality("shader ballot"); - libCall = spv::GLSLstd450Bad; - break; + return createInvocationsOperation(op, typeId, operands, typeProxy); #ifdef AMD_EXTENSIONS case glslang::EOpSwizzleInvocations: @@ -4383,7 +4598,7 @@ spv::Id TGlslangToSpvTraverser::createNoArgOperation(glslang::TOperator op, spv: builder.createNoResultOp(spv::OpEndPrimitive); return 0; case glslang::EOpBarrier: - builder.createControlBarrier(spv::ScopeDevice, spv::ScopeDevice, spv::MemorySemanticsMaskNone); + builder.createControlBarrier(spv::ScopeWorkgroup, spv::ScopeDevice, spv::MemorySemanticsMaskNone); return 0; case glslang::EOpMemoryBarrier: builder.createMemoryBarrier(spv::ScopeDevice, spv::MemorySemanticsAllMemory); @@ -4645,6 +4860,11 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla case glslang::EbtDouble: spvConsts.push_back(builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst())); break; +#ifdef AMD_EXTENSIONS + case glslang::EbtFloat16: + spvConsts.push_back(builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst())); + break; +#endif case glslang::EbtBool: spvConsts.push_back(builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst())); break; @@ -4677,6 +4897,11 @@ spv::Id TGlslangToSpvTraverser::createSpvConstantFromConstUnionArray(const glsla case glslang::EbtDouble: scalar = builder.makeDoubleConstant(zero ? 0.0 : consts[nextConst].getDConst(), specConstant); break; +#ifdef AMD_EXTENSIONS + case glslang::EbtFloat16: + scalar = builder.makeFloat16Constant(zero ? 0.0F : (float)consts[nextConst].getDConst(), specConstant); + break; +#endif case glslang::EbtBool: scalar = builder.makeBoolConstant(zero ? false : consts[nextConst].getBConst(), specConstant); break; @@ -4825,7 +5050,7 @@ spv::Id TGlslangToSpvTraverser::getExtBuiltins(const char* name) if (extBuiltinMap.find(name) != extBuiltinMap.end()) return extBuiltinMap[name]; else { - builder.addExtensions(name); + builder.addExtension(name); spv::Id extBuiltins = builder.import(name); extBuiltinMap[name] = extBuiltins; return extBuiltins; @@ -4896,9 +5121,8 @@ void GlslangToSpv(const glslang::TIntermediate& intermediate, std::vector<unsign glslang::GetThreadPoolAllocator().push(); TGlslangToSpvTraverser it(&intermediate, logger); - root->traverse(&it); - + it.finishSpv(); it.dumpSpv(spirv); glslang::GetThreadPoolAllocator().pop(); diff --git a/SPIRV/GlslangToSpv.h b/SPIRV/GlslangToSpv.h index 97b280ca3a8b48b6c1a1e3fc05f2d68cef211ed1..428cfb6a7d997df51ef04d4a1d364d9341614af6 100644 --- a/SPIRV/GlslangToSpv.h +++ b/SPIRV/GlslangToSpv.h @@ -32,6 +32,10 @@ //ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE //POSSIBILITY OF SUCH DAMAGE. +#if _MSC_VER >= 1900 + #pragma warning(disable : 4464) // relative include path contains '..' +#endif + #include "../glslang/Include/intermediate.h" #include <string> diff --git a/SPIRV/SPVRemapper.cpp b/SPIRV/SPVRemapper.cpp index 5c551fb8475fcb7ebed1fb20ea9a98404ad92bef..f30963b13c5a16b2aa02f53709df99322af1b014 100755 --- a/SPIRV/SPVRemapper.cpp +++ b/SPIRV/SPVRemapper.cpp @@ -327,12 +327,10 @@ namespace spv { bound(maxBound); // reset header ID bound to as big as it now needs to be } + // Mark debug instructions for stripping void spirvbin_t::stripDebug() { - if ((options & STRIP) == 0) - return; - - // build local Id and name maps + // Strip instructions in the stripOp set: debug info. process( [&](spv::Op opCode, unsigned start) { // remember opcodes we want to strip later @@ -343,6 +341,32 @@ namespace spv { op_fn_nop); } + // Mark instructions that refer to now-removed IDs for stripping + void spirvbin_t::stripDeadRefs() + { + process( + [&](spv::Op opCode, unsigned start) { + // strip opcodes pointing to removed data + switch (opCode) { + case spv::OpName: + case spv::OpMemberName: + case spv::OpDecorate: + case spv::OpMemberDecorate: + if (idPosR.find(asId(start+1)) == idPosR.end()) + stripInst(start); + break; + default: + break; // leave it alone + } + + return true; + }, + op_fn_nop); + + strip(); + } + + // Update local maps of ID, type, etc positions void spirvbin_t::buildLocalMaps() { msg(2, 2, std::string("build local maps: ")); @@ -351,7 +375,6 @@ namespace spv { idMapL.clear(); // preserve nameMap, so we don't clear that. fnPos.clear(); - fnPosDCE.clear(); fnCalls.clear(); typeConstPos.clear(); idPosR.clear(); @@ -366,10 +389,6 @@ namespace spv { // build local Id and name maps process( [&](spv::Op opCode, unsigned start) { - // remember opcodes we want to strip later - if ((options & STRIP) && isStripOp(opCode)) - stripInst(start); - unsigned word = start+1; spv::Id typeId = spv::NoResult; @@ -957,7 +976,6 @@ namespace spv { if (call_it == fnCalls.end() || call_it->second == 0) { changed = true; stripRange.push_back(fn->second); - fnPosDCE.insert(*fn); // decrease counts of called functions process( @@ -1011,11 +1029,15 @@ namespace spv { // Remove single-use function variables + associated decorations and names process( [&](spv::Op opCode, unsigned start) { - if ((opCode == spv::OpVariable && varUseCount[asId(start+2)] == 1) || - (opCode == spv::OpDecorate && varUseCount[asId(start+1)] == 1) || - (opCode == spv::OpName && varUseCount[asId(start+1)] == 1)) { - stripInst(start); - } + spv::Id id = spv::NoResult; + if (opCode == spv::OpVariable) + id = asId(start+2); + if (opCode == spv::OpDecorate || opCode == spv::OpName) + id = asId(start+1); + + if (id != spv::NoResult && varUseCount[id] == 1) + stripInst(start); + return true; }, op_fn_nop); @@ -1276,25 +1298,31 @@ namespace spv { // Set up opcode tables from SpvDoc spv::Parameterize(); - validate(); // validate header - buildLocalMaps(); + validate(); // validate header + buildLocalMaps(); // build ID maps msg(3, 4, std::string("ID bound: ") + std::to_string(bound())); + if (options & STRIP) stripDebug(); strip(); // strip out data we decided to eliminate if (options & OPT_LOADSTORE) optLoadStore(); if (options & OPT_FWD_LS) forwardLoadStores(); if (options & DCE_FUNCS) dceFuncs(); if (options & DCE_VARS) dceVars(); if (options & DCE_TYPES) dceTypes(); - strip(); // strip out data we decided to eliminate + + strip(); // strip out data we decided to eliminate + stripDeadRefs(); // remove references to things we DCEed + // after the last strip, we must clean any debug info referring to now-deleted data if (options & MAP_TYPES) mapTypeConst(); if (options & MAP_NAMES) mapNames(); if (options & MAP_FUNCS) mapFnBodies(); - mapRemainder(); // map any unmapped IDs - applyMap(); // Now remap each shader to the new IDs we've come up with + if (options & MAP_ALL) { + mapRemainder(); // map any unmapped IDs + applyMap(); // Now remap each shader to the new IDs we've come up with + } } // remap from a memory image diff --git a/SPIRV/SPVRemapper.h b/SPIRV/SPVRemapper.h index 43ec1ae7947b87abd563bd7e7404e6d2f974ba74..77c965821a1a2b8d93cd83aa97ceb4fa6654f2de 100755 --- a/SPIRV/SPVRemapper.h +++ b/SPIRV/SPVRemapper.h @@ -75,6 +75,7 @@ public: #if !defined (use_cpp11) #include <cstdio> +#include <cstdint> namespace spv { class spirvbin_t : public spirvbin_base_t @@ -238,7 +239,8 @@ private: void applyMap(); // remap per local name map void mapRemainder(); // map any IDs we haven't touched yet - void stripDebug(); // strip debug info + void stripDebug(); // strip all debug info + void stripDeadRefs(); // strips debug info for now-dead references after DCE void strip(); // remove debug symbols std::vector<spirword_t> spv; // SPIR words @@ -263,7 +265,6 @@ private: // Function start and end. use unordered_map because we'll have // many fewer functions than IDs. std::unordered_map<spv::Id, range_t> fnPos; - std::unordered_map<spv::Id, range_t> fnPosDCE; // deleted functions // Which functions are called, anywhere in the module, with a call count std::unordered_map<spv::Id, int> fnCalls; diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp index a881d1b4cb15a3760c83bc1b72a6b2edffb5ceee..b0b74b243867c98d16ca587db64e538eeb9c18e4 100644 --- a/SPIRV/SpvBuilder.cpp +++ b/SPIRV/SpvBuilder.cpp @@ -46,6 +46,10 @@ #include "SpvBuilder.h" +#ifdef AMD_EXTENSIONS + #include "hex_float.h" +#endif + #ifndef _WIN32 #include <cstdio> #endif @@ -60,7 +64,7 @@ Builder::Builder(unsigned int magicNumber, SpvBuildLogger* buildLogger) : builderNumber(magicNumber), buildPoint(0), uniqueId(0), - mainFunction(0), + entryPointFunction(0), generatingOpCodeForSpecConst(false), logger(buildLogger) { @@ -785,6 +789,36 @@ Id Builder::makeDoubleConstant(double d, bool specConstant) return c->getResultId(); } +#ifdef AMD_EXTENSIONS +Id Builder::makeFloat16Constant(float f16, bool specConstant) +{ + Op opcode = specConstant ? OpSpecConstant : OpConstant; + Id typeId = makeFloatType(16); + + spvutils::HexFloat<spvutils::FloatProxy<float>> fVal(f16); + spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>> f16Val(0); + fVal.castTo(f16Val, spvutils::kRoundToZero); + + unsigned value = f16Val.value().getAsFloat().get_value(); + + // 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) { + Id existing = findScalarConstant(OpTypeFloat, opcode, typeId, value); + if (existing) + return existing; + } + + Instruction* c = new Instruction(getUniqueId(), typeId, opcode); + c->addImmediateOperand(value); + constantsTypesGlobals.push_back(std::unique_ptr<Instruction>(c)); + groupedConstants[OpTypeFloat].push_back(c); + module.mapInstruction(c); + + return c->getResultId(); +} +#endif + Id Builder::findCompositeConstant(Op typeClass, std::vector<Id>& comps) const { Instruction* constant = 0; @@ -933,15 +967,15 @@ void Builder::addMemberDecoration(Id id, unsigned int member, Decoration decorat // Comments in header Function* Builder::makeEntryPoint(const char* entryPoint) { - assert(! mainFunction); + assert(! entryPointFunction); Block* entry; std::vector<Id> params; std::vector<Decoration> precisions; - mainFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry); + entryPointFunction = makeFunctionEntry(NoPrecision, makeVoidType(), entryPoint, params, precisions, &entry); - return mainFunction; + return entryPointFunction; } // Comments in header @@ -2110,6 +2144,7 @@ void Builder::accessChainPushSwizzle(std::vector<unsigned>& swizzle, Id preSwizz std::vector<unsigned> oldSwizzle = accessChain.swizzle; accessChain.swizzle.resize(0); for (unsigned int i = 0; i < swizzle.size(); ++i) { + assert(swizzle[i] < oldSwizzle.size()); accessChain.swizzle.push_back(oldSwizzle[swizzle[i]]); } } else @@ -2318,9 +2353,9 @@ void Builder::dump(std::vector<unsigned int>& out) const capInst.dump(out); } - for (int e = 0; e < (int)extensions.size(); ++e) { + for (auto it = extensions.cbegin(); it != extensions.cend(); ++it) { Instruction extInst(0, 0, OpExtension); - extInst.addStringOperand(extensions[e]); + extInst.addStringOperand(*it); extInst.dump(out); } diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h index 38dc1fa39536b2458fb111faece8a8c13e51c906..e8524b2b1b7406d97b828b98b1267008d3769c8f 100755 --- a/SPIRV/SpvBuilder.h +++ b/SPIRV/SpvBuilder.h @@ -71,7 +71,7 @@ public: sourceVersion = version; } void addSourceExtension(const char* ext) { sourceExtensions.push_back(ext); } - void addExtensions(const char* ext) { extensions.push_back(ext); } + void addExtension(const char* ext) { extensions.insert(ext); } Id import(const char*); void setMemoryModel(spv::AddressingModel addr, spv::MemoryModel mem) { @@ -191,6 +191,9 @@ public: Id makeUint64Constant(unsigned long long u, bool specConstant = false) { return makeInt64Constant(makeUintType(64), u, specConstant); } Id makeFloatConstant(float f, bool specConstant = false); Id makeDoubleConstant(double d, bool specConstant = false); +#ifdef AMD_EXTENSIONS + Id makeFloat16Constant(float f16, bool specConstant = false); +#endif // Turn the array of constants into a proper spv constant of the requested type. Id makeCompositeConstant(Id type, std::vector<Id>& comps, bool specConst = false); @@ -552,7 +555,7 @@ public: SourceLanguage source; int sourceVersion; - std::vector<const char*> extensions; + std::set<const char*> extensions; std::vector<const char*> sourceExtensions; AddressingModel addressModel; MemoryModel memoryModel; @@ -561,7 +564,7 @@ public: Module module; Block* buildPoint; Id uniqueId; - Function* mainFunction; + Function* entryPointFunction; bool generatingOpCodeForSpecConst; AccessChain accessChain; diff --git a/SPIRV/bitutils.h b/SPIRV/bitutils.h new file mode 100644 index 0000000000000000000000000000000000000000..31288ab69d3d3ade46b05186cb1bba333666420d --- /dev/null +++ b/SPIRV/bitutils.h @@ -0,0 +1,81 @@ +// Copyright (c) 2015-2016 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef LIBSPIRV_UTIL_BITUTILS_H_ +#define LIBSPIRV_UTIL_BITUTILS_H_ + +#include <cstdint> +#include <cstring> + +namespace spvutils { + +// Performs a bitwise copy of source to the destination type Dest. +template <typename Dest, typename Src> +Dest BitwiseCast(Src source) { + Dest dest; + static_assert(sizeof(source) == sizeof(dest), + "BitwiseCast: Source and destination must have the same size"); + std::memcpy(&dest, &source, sizeof(dest)); + return dest; +} + +// SetBits<T, First, Num> returns an integer of type <T> with bits set +// for position <First> through <First + Num - 1>, counting from the least +// significant bit. In particular when Num == 0, no positions are set to 1. +// A static assert will be triggered if First + Num > sizeof(T) * 8, that is, +// a bit that will not fit in the underlying type is set. +template <typename T, size_t First = 0, size_t Num = 0> +struct SetBits { + static_assert(First < sizeof(T) * 8, + "Tried to set a bit that is shifted too far."); + const static T get = (T(1) << First) | SetBits<T, First + 1, Num - 1>::get; +}; + +template <typename T, size_t Last> +struct SetBits<T, Last, 0> { + const static T get = T(0); +}; + +// This is all compile-time so we can put our tests right here. +static_assert(SetBits<uint32_t, 0, 0>::get == uint32_t(0x00000000), + "SetBits failed"); +static_assert(SetBits<uint32_t, 0, 1>::get == uint32_t(0x00000001), + "SetBits failed"); +static_assert(SetBits<uint32_t, 31, 1>::get == uint32_t(0x80000000), + "SetBits failed"); +static_assert(SetBits<uint32_t, 1, 2>::get == uint32_t(0x00000006), + "SetBits failed"); +static_assert(SetBits<uint32_t, 30, 2>::get == uint32_t(0xc0000000), + "SetBits failed"); +static_assert(SetBits<uint32_t, 0, 31>::get == uint32_t(0x7FFFFFFF), + "SetBits failed"); +static_assert(SetBits<uint32_t, 0, 32>::get == uint32_t(0xFFFFFFFF), + "SetBits failed"); +static_assert(SetBits<uint32_t, 16, 16>::get == uint32_t(0xFFFF0000), + "SetBits failed"); + +static_assert(SetBits<uint64_t, 0, 1>::get == uint64_t(0x0000000000000001LL), + "SetBits failed"); +static_assert(SetBits<uint64_t, 63, 1>::get == uint64_t(0x8000000000000000LL), + "SetBits failed"); +static_assert(SetBits<uint64_t, 62, 2>::get == uint64_t(0xc000000000000000LL), + "SetBits failed"); +static_assert(SetBits<uint64_t, 31, 1>::get == uint64_t(0x0000000080000000LL), + "SetBits failed"); +static_assert(SetBits<uint64_t, 16, 16>::get == uint64_t(0x00000000FFFF0000LL), + "SetBits failed"); + +} // namespace spvutils + +#endif // LIBSPIRV_UTIL_BITUTILS_H_ diff --git a/SPIRV/doc.cpp b/SPIRV/doc.cpp index a25f7c0054e2fa65ad5535e99c7406fc0c93deed..0e68c7ef0bf2de96f4281fd3748f099971ecd678 100755 --- a/SPIRV/doc.cpp +++ b/SPIRV/doc.cpp @@ -45,14 +45,14 @@ #include <cstring> #include <algorithm> -#ifdef AMD_EXTENSIONS namespace spv { extern "C" { // Include C-based headers that don't have a namespace +#ifdef AMD_EXTENSIONS #include "GLSL.ext.AMD.h" +#endif } } -#endif namespace spv { @@ -312,6 +312,16 @@ const char* BuiltInString(int builtIn) case BuiltInCeiling: default: return "Bad"; + case 4416: return "SubgroupEqMaskKHR"; + case 4417: return "SubgroupGeMaskKHR"; + case 4418: return "SubgroupGtMaskKHR"; + case 4419: return "SubgroupLeMaskKHR"; + case 4420: return "SubgroupLtMaskKHR"; + + case 4424: return "BaseVertex"; + case 4425: return "BaseInstance"; + case 4426: return "DrawIndex"; + #ifdef AMD_EXTENSIONS case 4992: return "BaryCoordNoPerspAMD"; case 4993: return "BaryCoordNoPerspCentroidAMD"; @@ -799,6 +809,9 @@ const char* CapabilityString(int info) case CapabilityCeiling: default: return "Bad"; + + case 4423: return "SubgroupBallotKHR"; + case 4427: return "DrawParameters"; } } @@ -1131,6 +1144,9 @@ const char* OpcodeString(int op) default: return "Bad"; + case 4421: return "OpSubgroupBallotKHR"; + case 4422: return "OpSubgroupFirstInvocationKHR"; + #ifdef AMD_EXTENSIONS case 5000: return "OpGroupIAddNonUniformAMD"; case 5001: return "OpGroupFAddNonUniformAMD"; @@ -1146,11 +1162,7 @@ const char* OpcodeString(int op) // The set of objects that hold all the instruction/operand // parameterization information. -#ifdef AMD_EXTENSIONS InstructionParameters InstructionDesc[OpCodeMask + 1]; -#else -InstructionParameters InstructionDesc[OpcodeCeiling]; -#endif OperandParameters ExecutionModeOperands[ExecutionModeCeiling]; OperandParameters DecorationOperands[DecorationCeiling]; @@ -2742,6 +2754,10 @@ void Parameterize() InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'"); InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'"); + InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'"); + + InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'"); + #ifdef AMD_EXTENSIONS InstructionDesc[OpGroupIAddNonUniformAMD].capabilities.push_back(CapabilityGroups); InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'"); diff --git a/SPIRV/hex_float.h b/SPIRV/hex_float.h new file mode 100644 index 0000000000000000000000000000000000000000..31b9f9ed89a61982bb86f3c1a341bfddd2f59703 --- /dev/null +++ b/SPIRV/hex_float.h @@ -0,0 +1,1078 @@ +// Copyright (c) 2015-2016 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef LIBSPIRV_UTIL_HEX_FLOAT_H_ +#define LIBSPIRV_UTIL_HEX_FLOAT_H_ + +#include <cassert> +#include <cctype> +#include <cmath> +#include <cstdint> +#include <iomanip> +#include <limits> +#include <sstream> + +#if defined(_MSC_VER) && _MSC_VER < 1700 +namespace std { +bool isnan(double f) +{ + return ::_isnan(f) != 0; +} +bool isinf(double f) +{ + return ::_finite(f) == 0; +} +} +#endif + +#include "bitutils.h" + +namespace spvutils { + +class Float16 { + public: + Float16(uint16_t v) : val(v) {} + Float16() {} + static bool isNan(const Float16& val) { + return ((val.val & 0x7C00) == 0x7C00) && ((val.val & 0x3FF) != 0); + } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(const Float16& val) { + return ((val.val & 0x7C00) == 0x7C00) && ((val.val & 0x3FF) == 0); + } + Float16(const Float16& other) { val = other.val; } + uint16_t get_value() const { return val; } + + // Returns the maximum normal value. + static Float16 max() { return Float16(0x7bff); } + // Returns the lowest normal value. + static Float16 lowest() { return Float16(0xfbff); } + + private: + uint16_t val; +}; + +// To specialize this type, you must override uint_type to define +// an unsigned integer that can fit your floating point type. +// You must also add a isNan function that returns true if +// a value is Nan. +template <typename T> +struct FloatProxyTraits { + typedef void uint_type; +}; + +template <> +struct FloatProxyTraits<float> { + typedef uint32_t uint_type; + static bool isNan(float f) { return std::isnan(f); } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(float f) { return std::isinf(f); } + // Returns the maximum normal value. + static float max() { return std::numeric_limits<float>::max(); } + // Returns the lowest normal value. + static float lowest() { return std::numeric_limits<float>::lowest(); } +}; + +template <> +struct FloatProxyTraits<double> { + typedef uint64_t uint_type; + static bool isNan(double f) { return std::isnan(f); } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(double f) { return std::isinf(f); } + // Returns the maximum normal value. + static double max() { return std::numeric_limits<double>::max(); } + // Returns the lowest normal value. + static double lowest() { return std::numeric_limits<double>::lowest(); } +}; + +template <> +struct FloatProxyTraits<Float16> { + typedef uint16_t uint_type; + static bool isNan(Float16 f) { return Float16::isNan(f); } + // Returns true if the given value is any kind of infinity. + static bool isInfinity(Float16 f) { return Float16::isInfinity(f); } + // Returns the maximum normal value. + static Float16 max() { return Float16::max(); } + // Returns the lowest normal value. + static Float16 lowest() { return Float16::lowest(); } +}; + +// Since copying a floating point number (especially if it is NaN) +// does not guarantee that bits are preserved, this class lets us +// store the type and use it as a float when necessary. +template <typename T> +class FloatProxy { + public: + typedef typename FloatProxyTraits<T>::uint_type uint_type; + + // Since this is to act similar to the normal floats, + // do not initialize the data by default. + FloatProxy() {} + + // Intentionally non-explicit. This is a proxy type so + // implicit conversions allow us to use it more transparently. + FloatProxy(T val) { data_ = BitwiseCast<uint_type>(val); } + + // Intentionally non-explicit. This is a proxy type so + // implicit conversions allow us to use it more transparently. + FloatProxy(uint_type val) { data_ = val; } + + // This is helpful to have and is guaranteed not to stomp bits. + FloatProxy<T> operator-() const { + return static_cast<uint_type>(data_ ^ + (uint_type(0x1) << (sizeof(T) * 8 - 1))); + } + + // Returns the data as a floating point value. + T getAsFloat() const { return BitwiseCast<T>(data_); } + + // Returns the raw data. + uint_type data() const { return data_; } + + // Returns true if the value represents any type of NaN. + bool isNan() { return FloatProxyTraits<T>::isNan(getAsFloat()); } + // Returns true if the value represents any type of infinity. + bool isInfinity() { return FloatProxyTraits<T>::isInfinity(getAsFloat()); } + + // Returns the maximum normal value. + static FloatProxy<T> max() { + return FloatProxy<T>(FloatProxyTraits<T>::max()); + } + // Returns the lowest normal value. + static FloatProxy<T> lowest() { + return FloatProxy<T>(FloatProxyTraits<T>::lowest()); + } + + private: + uint_type data_; +}; + +template <typename T> +bool operator==(const FloatProxy<T>& first, const FloatProxy<T>& second) { + return first.data() == second.data(); +} + +// Reads a FloatProxy value as a normal float from a stream. +template <typename T> +std::istream& operator>>(std::istream& is, FloatProxy<T>& value) { + T float_val; + is >> float_val; + value = FloatProxy<T>(float_val); + return is; +} + +// This is an example traits. It is not meant to be used in practice, but will +// be the default for any non-specialized type. +template <typename T> +struct HexFloatTraits { + // Integer type that can store this hex-float. + typedef void uint_type; + // Signed integer type that can store this hex-float. + typedef void int_type; + // The numerical type that this HexFloat represents. + typedef void underlying_type; + // The type needed to construct the underlying type. + typedef void native_type; + // The number of bits that are actually relevant in the uint_type. + // This allows us to deal with, for example, 24-bit values in a 32-bit + // integer. + static const uint32_t num_used_bits = 0; + // Number of bits that represent the exponent. + static const uint32_t num_exponent_bits = 0; + // Number of bits that represent the fractional part. + static const uint32_t num_fraction_bits = 0; + // The bias of the exponent. (How much we need to subtract from the stored + // value to get the correct value.) + static const uint32_t exponent_bias = 0; +}; + +// Traits for IEEE float. +// 1 sign bit, 8 exponent bits, 23 fractional bits. +template <> +struct HexFloatTraits<FloatProxy<float>> { + typedef uint32_t uint_type; + typedef int32_t int_type; + typedef FloatProxy<float> underlying_type; + typedef float native_type; + static const uint_type num_used_bits = 32; + static const uint_type num_exponent_bits = 8; + static const uint_type num_fraction_bits = 23; + static const uint_type exponent_bias = 127; +}; + +// Traits for IEEE double. +// 1 sign bit, 11 exponent bits, 52 fractional bits. +template <> +struct HexFloatTraits<FloatProxy<double>> { + typedef uint64_t uint_type; + typedef int64_t int_type; + typedef FloatProxy<double> underlying_type; + typedef double native_type; + static const uint_type num_used_bits = 64; + static const uint_type num_exponent_bits = 11; + static const uint_type num_fraction_bits = 52; + static const uint_type exponent_bias = 1023; +}; + +// Traits for IEEE half. +// 1 sign bit, 5 exponent bits, 10 fractional bits. +template <> +struct HexFloatTraits<FloatProxy<Float16>> { + typedef uint16_t uint_type; + typedef int16_t int_type; + typedef uint16_t underlying_type; + typedef uint16_t native_type; + static const uint_type num_used_bits = 16; + static const uint_type num_exponent_bits = 5; + static const uint_type num_fraction_bits = 10; + static const uint_type exponent_bias = 15; +}; + +enum round_direction { + kRoundToZero, + kRoundToNearestEven, + kRoundToPositiveInfinity, + kRoundToNegativeInfinity +}; + +// Template class that houses a floating pointer number. +// It exposes a number of constants based on the provided traits to +// assist in interpreting the bits of the value. +template <typename T, typename Traits = HexFloatTraits<T>> +class HexFloat { + public: + typedef typename Traits::uint_type uint_type; + typedef typename Traits::int_type int_type; + typedef typename Traits::underlying_type underlying_type; + typedef typename Traits::native_type native_type; + + explicit HexFloat(T f) : value_(f) {} + + T value() const { return value_; } + void set_value(T f) { value_ = f; } + + // These are all written like this because it is convenient to have + // compile-time constants for all of these values. + + // Pass-through values to save typing. + static const uint32_t num_used_bits = Traits::num_used_bits; + static const uint32_t exponent_bias = Traits::exponent_bias; + static const uint32_t num_exponent_bits = Traits::num_exponent_bits; + static const uint32_t num_fraction_bits = Traits::num_fraction_bits; + + // Number of bits to shift left to set the highest relevant bit. + static const uint32_t top_bit_left_shift = num_used_bits - 1; + // How many nibbles (hex characters) the fractional part takes up. + static const uint32_t fraction_nibbles = (num_fraction_bits + 3) / 4; + // If the fractional part does not fit evenly into a hex character (4-bits) + // then we have to left-shift to get rid of leading 0s. This is the amount + // we have to shift (might be 0). + static const uint32_t num_overflow_bits = + fraction_nibbles * 4 - num_fraction_bits; + + // The representation of the fraction, not the actual bits. This + // includes the leading bit that is usually implicit. + static const uint_type fraction_represent_mask = + spvutils::SetBits<uint_type, 0, + num_fraction_bits + num_overflow_bits>::get; + + // The topmost bit in the nibble-aligned fraction. + static const uint_type fraction_top_bit = + uint_type(1) << (num_fraction_bits + num_overflow_bits - 1); + + // The least significant bit in the exponent, which is also the bit + // immediately to the left of the significand. + static const uint_type first_exponent_bit = uint_type(1) + << (num_fraction_bits); + + // The mask for the encoded fraction. It does not include the + // implicit bit. + static const uint_type fraction_encode_mask = + spvutils::SetBits<uint_type, 0, num_fraction_bits>::get; + + // The bit that is used as a sign. + static const uint_type sign_mask = uint_type(1) << top_bit_left_shift; + + // The bits that represent the exponent. + static const uint_type exponent_mask = + spvutils::SetBits<uint_type, num_fraction_bits, num_exponent_bits>::get; + + // How far left the exponent is shifted. + static const uint32_t exponent_left_shift = num_fraction_bits; + + // How far from the right edge the fraction is shifted. + static const uint32_t fraction_right_shift = + static_cast<uint32_t>(sizeof(uint_type) * 8) - num_fraction_bits; + + // The maximum representable unbiased exponent. + static const int_type max_exponent = + (exponent_mask >> num_fraction_bits) - exponent_bias; + // The minimum representable exponent for normalized numbers. + static const int_type min_exponent = -static_cast<int_type>(exponent_bias); + + // Returns the bits associated with the value. + uint_type getBits() const { return spvutils::BitwiseCast<uint_type>(value_); } + + // Returns the bits associated with the value, without the leading sign bit. + uint_type getUnsignedBits() const { + return static_cast<uint_type>(spvutils::BitwiseCast<uint_type>(value_) & + ~sign_mask); + } + + // Returns the bits associated with the exponent, shifted to start at the + // lsb of the type. + const uint_type getExponentBits() const { + return static_cast<uint_type>((getBits() & exponent_mask) >> + num_fraction_bits); + } + + // Returns the exponent in unbiased form. This is the exponent in the + // human-friendly form. + const int_type getUnbiasedExponent() const { + return static_cast<int_type>(getExponentBits() - exponent_bias); + } + + // Returns just the significand bits from the value. + const uint_type getSignificandBits() const { + return getBits() & fraction_encode_mask; + } + + // If the number was normalized, returns the unbiased exponent. + // If the number was denormal, normalize the exponent first. + const int_type getUnbiasedNormalizedExponent() const { + if ((getBits() & ~sign_mask) == 0) { // special case if everything is 0 + return 0; + } + int_type exp = getUnbiasedExponent(); + if (exp == min_exponent) { // We are in denorm land. + uint_type significand_bits = getSignificandBits(); + while ((significand_bits & (first_exponent_bit >> 1)) == 0) { + significand_bits = static_cast<uint_type>(significand_bits << 1); + exp = static_cast<int_type>(exp - 1); + } + significand_bits &= fraction_encode_mask; + } + return exp; + } + + // Returns the signficand after it has been normalized. + const uint_type getNormalizedSignificand() const { + int_type unbiased_exponent = getUnbiasedNormalizedExponent(); + uint_type significand = getSignificandBits(); + for (int_type i = unbiased_exponent; i <= min_exponent; ++i) { + significand = static_cast<uint_type>(significand << 1); + } + significand &= fraction_encode_mask; + return significand; + } + + // Returns true if this number represents a negative value. + bool isNegative() const { return (getBits() & sign_mask) != 0; } + + // Sets this HexFloat from the individual components. + // Note this assumes EVERY significand is normalized, and has an implicit + // leading one. This means that the only way that this method will set 0, + // is if you set a number so denormalized that it underflows. + // Do not use this method with raw bits extracted from a subnormal number, + // since subnormals do not have an implicit leading 1 in the significand. + // The significand is also expected to be in the + // lowest-most num_fraction_bits of the uint_type. + // The exponent is expected to be unbiased, meaning an exponent of + // 0 actually means 0. + // If underflow_round_up is set, then on underflow, if a number is non-0 + // and would underflow, we round up to the smallest denorm. + void setFromSignUnbiasedExponentAndNormalizedSignificand( + bool negative, int_type exponent, uint_type significand, + bool round_denorm_up) { + bool significand_is_zero = significand == 0; + + if (exponent <= min_exponent) { + // If this was denormalized, then we have to shift the bit on, meaning + // the significand is not zero. + significand_is_zero = false; + significand |= first_exponent_bit; + significand = static_cast<uint_type>(significand >> 1); + } + + while (exponent < min_exponent) { + significand = static_cast<uint_type>(significand >> 1); + ++exponent; + } + + if (exponent == min_exponent) { + if (significand == 0 && !significand_is_zero && round_denorm_up) { + significand = static_cast<uint_type>(0x1); + } + } + + uint_type new_value = 0; + if (negative) { + new_value = static_cast<uint_type>(new_value | sign_mask); + } + exponent = static_cast<int_type>(exponent + exponent_bias); + assert(exponent >= 0); + + // put it all together + exponent = static_cast<uint_type>((exponent << exponent_left_shift) & + exponent_mask); + significand = static_cast<uint_type>(significand & fraction_encode_mask); + new_value = static_cast<uint_type>(new_value | (exponent | significand)); + value_ = BitwiseCast<T>(new_value); + } + + // Increments the significand of this number by the given amount. + // If this would spill the significand into the implicit bit, + // carry is set to true and the significand is shifted to fit into + // the correct location, otherwise carry is set to false. + // All significands and to_increment are assumed to be within the bounds + // for a valid significand. + static uint_type incrementSignificand(uint_type significand, + uint_type to_increment, bool* carry) { + significand = static_cast<uint_type>(significand + to_increment); + *carry = false; + if (significand & first_exponent_bit) { + *carry = true; + // The implicit 1-bit will have carried, so we should zero-out the + // top bit and shift back. + significand = static_cast<uint_type>(significand & ~first_exponent_bit); + significand = static_cast<uint_type>(significand >> 1); + } + return significand; + } + + // These exist because MSVC throws warnings on negative right-shifts + // even if they are not going to be executed. Eg: + // constant_number < 0? 0: constant_number + // These convert the negative left-shifts into right shifts. + + template <typename int_type> + uint_type negatable_left_shift(int_type N, uint_type val) + { + if(N >= 0) + return val << N; + + return val >> -N; + } + + template <typename int_type> + uint_type negatable_right_shift(int_type N, uint_type val) + { + if(N >= 0) + return val >> N; + + return val << -N; + } + + // Returns the significand, rounded to fit in a significand in + // other_T. This is shifted so that the most significant + // bit of the rounded number lines up with the most significant bit + // of the returned significand. + template <typename other_T> + typename other_T::uint_type getRoundedNormalizedSignificand( + round_direction dir, bool* carry_bit) { + typedef typename other_T::uint_type other_uint_type; + static const int_type num_throwaway_bits = + static_cast<int_type>(num_fraction_bits) - + static_cast<int_type>(other_T::num_fraction_bits); + + static const uint_type last_significant_bit = + (num_throwaway_bits < 0) + ? 0 + : negatable_left_shift(num_throwaway_bits, 1u); + static const uint_type first_rounded_bit = + (num_throwaway_bits < 1) + ? 0 + : negatable_left_shift(num_throwaway_bits - 1, 1u); + + static const uint_type throwaway_mask_bits = + num_throwaway_bits > 0 ? num_throwaway_bits : 0; + static const uint_type throwaway_mask = + spvutils::SetBits<uint_type, 0, throwaway_mask_bits>::get; + + *carry_bit = false; + other_uint_type out_val = 0; + uint_type significand = getNormalizedSignificand(); + // If we are up-casting, then we just have to shift to the right location. + if (num_throwaway_bits <= 0) { + out_val = static_cast<other_uint_type>(significand); + uint_type shift_amount = static_cast<uint_type>(-num_throwaway_bits); + out_val = static_cast<other_uint_type>(out_val << shift_amount); + return out_val; + } + + // If every non-representable bit is 0, then we don't have any casting to + // do. + if ((significand & throwaway_mask) == 0) { + return static_cast<other_uint_type>( + negatable_right_shift(num_throwaway_bits, significand)); + } + + bool round_away_from_zero = false; + // We actually have to narrow the significand here, so we have to follow the + // rounding rules. + switch (dir) { + case kRoundToZero: + break; + case kRoundToPositiveInfinity: + round_away_from_zero = !isNegative(); + break; + case kRoundToNegativeInfinity: + round_away_from_zero = isNegative(); + break; + case kRoundToNearestEven: + // Have to round down, round bit is 0 + if ((first_rounded_bit & significand) == 0) { + break; + } + if (((significand & throwaway_mask) & ~first_rounded_bit) != 0) { + // If any subsequent bit of the rounded portion is non-0 then we round + // up. + round_away_from_zero = true; + break; + } + // We are exactly half-way between 2 numbers, pick even. + if ((significand & last_significant_bit) != 0) { + // 1 for our last bit, round up. + round_away_from_zero = true; + break; + } + break; + } + + if (round_away_from_zero) { + return static_cast<other_uint_type>( + negatable_right_shift(num_throwaway_bits, incrementSignificand( + significand, last_significant_bit, carry_bit))); + } else { + return static_cast<other_uint_type>( + negatable_right_shift(num_throwaway_bits, significand)); + } + } + + // Casts this value to another HexFloat. If the cast is widening, + // then round_dir is ignored. If the cast is narrowing, then + // the result is rounded in the direction specified. + // This number will retain Nan and Inf values. + // It will also saturate to Inf if the number overflows, and + // underflow to (0 or min depending on rounding) if the number underflows. + template <typename other_T> + void castTo(other_T& other, round_direction round_dir) { + other = other_T(static_cast<typename other_T::native_type>(0)); + bool negate = isNegative(); + if (getUnsignedBits() == 0) { + if (negate) { + other.set_value(-other.value()); + } + return; + } + uint_type significand = getSignificandBits(); + bool carried = false; + typename other_T::uint_type rounded_significand = + getRoundedNormalizedSignificand<other_T>(round_dir, &carried); + + int_type exponent = getUnbiasedExponent(); + if (exponent == min_exponent) { + // If we are denormal, normalize the exponent, so that we can encode + // easily. + exponent = static_cast<int_type>(exponent + 1); + for (uint_type check_bit = first_exponent_bit >> 1; check_bit != 0; + check_bit = static_cast<uint_type>(check_bit >> 1)) { + exponent = static_cast<int_type>(exponent - 1); + if (check_bit & significand) break; + } + } + + bool is_nan = + (getBits() & exponent_mask) == exponent_mask && significand != 0; + bool is_inf = + !is_nan && + ((exponent + carried) > static_cast<int_type>(other_T::exponent_bias) || + (significand == 0 && (getBits() & exponent_mask) == exponent_mask)); + + // If we are Nan or Inf we should pass that through. + if (is_inf) { + other.set_value(BitwiseCast<typename other_T::underlying_type>( + static_cast<typename other_T::uint_type>( + (negate ? other_T::sign_mask : 0) | other_T::exponent_mask))); + return; + } + if (is_nan) { + typename other_T::uint_type shifted_significand; + shifted_significand = static_cast<typename other_T::uint_type>( + negatable_left_shift( + static_cast<int_type>(other_T::num_fraction_bits) - + static_cast<int_type>(num_fraction_bits), significand)); + + // We are some sort of Nan. We try to keep the bit-pattern of the Nan + // as close as possible. If we had to shift off bits so we are 0, then we + // just set the last bit. + other.set_value(BitwiseCast<typename other_T::underlying_type>( + static_cast<typename other_T::uint_type>( + (negate ? other_T::sign_mask : 0) | other_T::exponent_mask | + (shifted_significand == 0 ? 0x1 : shifted_significand)))); + return; + } + + bool round_underflow_up = + isNegative() ? round_dir == kRoundToNegativeInfinity + : round_dir == kRoundToPositiveInfinity; + typedef typename other_T::int_type other_int_type; + // setFromSignUnbiasedExponentAndNormalizedSignificand will + // zero out any underflowing value (but retain the sign). + other.setFromSignUnbiasedExponentAndNormalizedSignificand( + negate, static_cast<other_int_type>(exponent), rounded_significand, + round_underflow_up); + return; + } + + private: + T value_; + + static_assert(num_used_bits == + Traits::num_exponent_bits + Traits::num_fraction_bits + 1, + "The number of bits do not fit"); + static_assert(sizeof(T) == sizeof(uint_type), "The type sizes do not match"); +}; + +// Returns 4 bits represented by the hex character. +inline uint8_t get_nibble_from_character(int character) { + const char* dec = "0123456789"; + const char* lower = "abcdef"; + const char* upper = "ABCDEF"; + const char* p = nullptr; + if ((p = strchr(dec, character))) { + return static_cast<uint8_t>(p - dec); + } else if ((p = strchr(lower, character))) { + return static_cast<uint8_t>(p - lower + 0xa); + } else if ((p = strchr(upper, character))) { + return static_cast<uint8_t>(p - upper + 0xa); + } + + assert(false && "This was called with a non-hex character"); + return 0; +} + +// Outputs the given HexFloat to the stream. +template <typename T, typename Traits> +std::ostream& operator<<(std::ostream& os, const HexFloat<T, Traits>& value) { + typedef HexFloat<T, Traits> HF; + typedef typename HF::uint_type uint_type; + typedef typename HF::int_type int_type; + + static_assert(HF::num_used_bits != 0, + "num_used_bits must be non-zero for a valid float"); + static_assert(HF::num_exponent_bits != 0, + "num_exponent_bits must be non-zero for a valid float"); + static_assert(HF::num_fraction_bits != 0, + "num_fractin_bits must be non-zero for a valid float"); + + const uint_type bits = spvutils::BitwiseCast<uint_type>(value.value()); + const char* const sign = (bits & HF::sign_mask) ? "-" : ""; + const uint_type exponent = static_cast<uint_type>( + (bits & HF::exponent_mask) >> HF::num_fraction_bits); + + uint_type fraction = static_cast<uint_type>((bits & HF::fraction_encode_mask) + << HF::num_overflow_bits); + + const bool is_zero = exponent == 0 && fraction == 0; + const bool is_denorm = exponent == 0 && !is_zero; + + // exponent contains the biased exponent we have to convert it back into + // the normal range. + int_type int_exponent = static_cast<int_type>(exponent - HF::exponent_bias); + // If the number is all zeros, then we actually have to NOT shift the + // exponent. + int_exponent = is_zero ? 0 : int_exponent; + + // If we are denorm, then start shifting, and decreasing the exponent until + // our leading bit is 1. + + if (is_denorm) { + while ((fraction & HF::fraction_top_bit) == 0) { + fraction = static_cast<uint_type>(fraction << 1); + int_exponent = static_cast<int_type>(int_exponent - 1); + } + // Since this is denormalized, we have to consume the leading 1 since it + // will end up being implicit. + fraction = static_cast<uint_type>(fraction << 1); // eat the leading 1 + fraction &= HF::fraction_represent_mask; + } + + uint_type fraction_nibbles = HF::fraction_nibbles; + // We do not have to display any trailing 0s, since this represents the + // fractional part. + while (fraction_nibbles > 0 && (fraction & 0xF) == 0) { + // Shift off any trailing values; + fraction = static_cast<uint_type>(fraction >> 4); + --fraction_nibbles; + } + + const auto saved_flags = os.flags(); + const auto saved_fill = os.fill(); + + os << sign << "0x" << (is_zero ? '0' : '1'); + if (fraction_nibbles) { + // Make sure to keep the leading 0s in place, since this is the fractional + // part. + os << "." << std::setw(static_cast<int>(fraction_nibbles)) + << std::setfill('0') << std::hex << fraction; + } + os << "p" << std::dec << (int_exponent >= 0 ? "+" : "") << int_exponent; + + os.flags(saved_flags); + os.fill(saved_fill); + + return os; +} + +// Returns true if negate_value is true and the next character on the +// input stream is a plus or minus sign. In that case we also set the fail bit +// on the stream and set the value to the zero value for its type. +template <typename T, typename Traits> +inline bool RejectParseDueToLeadingSign(std::istream& is, bool negate_value, + HexFloat<T, Traits>& value) { + if (negate_value) { + auto next_char = is.peek(); + if (next_char == '-' || next_char == '+') { + // Fail the parse. Emulate standard behaviour by setting the value to + // the zero value, and set the fail bit on the stream. + value = HexFloat<T, Traits>(typename HexFloat<T, Traits>::uint_type(0)); + is.setstate(std::ios_base::failbit); + return true; + } + } + return false; +} + +// Parses a floating point number from the given stream and stores it into the +// value parameter. +// If negate_value is true then the number may not have a leading minus or +// plus, and if it successfully parses, then the number is negated before +// being stored into the value parameter. +// If the value cannot be correctly parsed or overflows the target floating +// point type, then set the fail bit on the stream. +// TODO(dneto): Promise C++11 standard behavior in how the value is set in +// the error case, but only after all target platforms implement it correctly. +// In particular, the Microsoft C++ runtime appears to be out of spec. +template <typename T, typename Traits> +inline std::istream& ParseNormalFloat(std::istream& is, bool negate_value, + HexFloat<T, Traits>& value) { + if (RejectParseDueToLeadingSign(is, negate_value, value)) { + return is; + } + T val; + is >> val; + if (negate_value) { + val = -val; + } + value.set_value(val); + // In the failure case, map -0.0 to 0.0. + if (is.fail() && value.getUnsignedBits() == 0u) { + value = HexFloat<T, Traits>(typename HexFloat<T, Traits>::uint_type(0)); + } + if (val.isInfinity()) { + // Fail the parse. Emulate standard behaviour by setting the value to + // the closest normal value, and set the fail bit on the stream. + value.set_value((value.isNegative() | negate_value) ? T::lowest() + : T::max()); + is.setstate(std::ios_base::failbit); + } + return is; +} + +// Specialization of ParseNormalFloat for FloatProxy<Float16> values. +// This will parse the float as it were a 32-bit floating point number, +// and then round it down to fit into a Float16 value. +// The number is rounded towards zero. +// If negate_value is true then the number may not have a leading minus or +// plus, and if it successfully parses, then the number is negated before +// being stored into the value parameter. +// If the value cannot be correctly parsed or overflows the target floating +// point type, then set the fail bit on the stream. +// TODO(dneto): Promise C++11 standard behavior in how the value is set in +// the error case, but only after all target platforms implement it correctly. +// In particular, the Microsoft C++ runtime appears to be out of spec. +template <> +inline std::istream& +ParseNormalFloat<FloatProxy<Float16>, HexFloatTraits<FloatProxy<Float16>>>( + std::istream& is, bool negate_value, + HexFloat<FloatProxy<Float16>, HexFloatTraits<FloatProxy<Float16>>>& value) { + // First parse as a 32-bit float. + HexFloat<FloatProxy<float>> float_val(0.0f); + ParseNormalFloat(is, negate_value, float_val); + + // Then convert to 16-bit float, saturating at infinities, and + // rounding toward zero. + float_val.castTo(value, kRoundToZero); + + // Overflow on 16-bit behaves the same as for 32- and 64-bit: set the + // fail bit and set the lowest or highest value. + if (Float16::isInfinity(value.value().getAsFloat())) { + value.set_value(value.isNegative() ? Float16::lowest() : Float16::max()); + is.setstate(std::ios_base::failbit); + } + return is; +} + +// Reads a HexFloat from the given stream. +// If the float is not encoded as a hex-float then it will be parsed +// as a regular float. +// This may fail if your stream does not support at least one unget. +// Nan values can be encoded with "0x1.<not zero>p+exponent_bias". +// This would normally overflow a float and round to +// infinity but this special pattern is the exact representation for a NaN, +// and therefore is actually encoded as the correct NaN. To encode inf, +// either 0x0p+exponent_bias can be specified or any exponent greater than +// exponent_bias. +// Examples using IEEE 32-bit float encoding. +// 0x1.0p+128 (+inf) +// -0x1.0p-128 (-inf) +// +// 0x1.1p+128 (+Nan) +// -0x1.1p+128 (-Nan) +// +// 0x1p+129 (+inf) +// -0x1p+129 (-inf) +template <typename T, typename Traits> +std::istream& operator>>(std::istream& is, HexFloat<T, Traits>& value) { + using HF = HexFloat<T, Traits>; + using uint_type = typename HF::uint_type; + using int_type = typename HF::int_type; + + value.set_value(static_cast<typename HF::native_type>(0.f)); + + if (is.flags() & std::ios::skipws) { + // If the user wants to skip whitespace , then we should obey that. + while (std::isspace(is.peek())) { + is.get(); + } + } + + auto next_char = is.peek(); + bool negate_value = false; + + if (next_char != '-' && next_char != '0') { + return ParseNormalFloat(is, negate_value, value); + } + + if (next_char == '-') { + negate_value = true; + is.get(); + next_char = is.peek(); + } + + if (next_char == '0') { + is.get(); // We may have to unget this. + auto maybe_hex_start = is.peek(); + if (maybe_hex_start != 'x' && maybe_hex_start != 'X') { + is.unget(); + return ParseNormalFloat(is, negate_value, value); + } else { + is.get(); // Throw away the 'x'; + } + } else { + return ParseNormalFloat(is, negate_value, value); + } + + // This "looks" like a hex-float so treat it as one. + bool seen_p = false; + bool seen_dot = false; + uint_type fraction_index = 0; + + uint_type fraction = 0; + int_type exponent = HF::exponent_bias; + + // Strip off leading zeros so we don't have to special-case them later. + while ((next_char = is.peek()) == '0') { + is.get(); + } + + bool is_denorm = + true; // Assume denorm "representation" until we hear otherwise. + // NB: This does not mean the value is actually denorm, + // it just means that it was written 0. + bool bits_written = false; // Stays false until we write a bit. + while (!seen_p && !seen_dot) { + // Handle characters that are left of the fractional part. + if (next_char == '.') { + seen_dot = true; + } else if (next_char == 'p') { + seen_p = true; + } else if (::isxdigit(next_char)) { + // We know this is not denormalized since we have stripped all leading + // zeroes and we are not a ".". + is_denorm = false; + int number = get_nibble_from_character(next_char); + for (int i = 0; i < 4; ++i, number <<= 1) { + uint_type write_bit = (number & 0x8) ? 0x1 : 0x0; + if (bits_written) { + // If we are here the bits represented belong in the fractional + // part of the float, and we have to adjust the exponent accordingly. + fraction = static_cast<uint_type>( + fraction | + static_cast<uint_type>( + write_bit << (HF::top_bit_left_shift - fraction_index++))); + exponent = static_cast<int_type>(exponent + 1); + } + bits_written |= write_bit != 0; + } + } else { + // We have not found our exponent yet, so we have to fail. + is.setstate(std::ios::failbit); + return is; + } + is.get(); + next_char = is.peek(); + } + bits_written = false; + while (seen_dot && !seen_p) { + // Handle only fractional parts now. + if (next_char == 'p') { + seen_p = true; + } else if (::isxdigit(next_char)) { + int number = get_nibble_from_character(next_char); + for (int i = 0; i < 4; ++i, number <<= 1) { + uint_type write_bit = (number & 0x8) ? 0x01 : 0x00; + bits_written |= write_bit != 0; + if (is_denorm && !bits_written) { + // Handle modifying the exponent here this way we can handle + // an arbitrary number of hex values without overflowing our + // integer. + exponent = static_cast<int_type>(exponent - 1); + } else { + fraction = static_cast<uint_type>( + fraction | + static_cast<uint_type>( + write_bit << (HF::top_bit_left_shift - fraction_index++))); + } + } + } else { + // We still have not found our 'p' exponent yet, so this is not a valid + // hex-float. + is.setstate(std::ios::failbit); + return is; + } + is.get(); + next_char = is.peek(); + } + + bool seen_sign = false; + int8_t exponent_sign = 1; + int_type written_exponent = 0; + while (true) { + if ((next_char == '-' || next_char == '+')) { + if (seen_sign) { + is.setstate(std::ios::failbit); + return is; + } + seen_sign = true; + exponent_sign = (next_char == '-') ? -1 : 1; + } else if (::isdigit(next_char)) { + // Hex-floats express their exponent as decimal. + written_exponent = static_cast<int_type>(written_exponent * 10); + written_exponent = + static_cast<int_type>(written_exponent + (next_char - '0')); + } else { + break; + } + is.get(); + next_char = is.peek(); + } + + written_exponent = static_cast<int_type>(written_exponent * exponent_sign); + exponent = static_cast<int_type>(exponent + written_exponent); + + bool is_zero = is_denorm && (fraction == 0); + if (is_denorm && !is_zero) { + fraction = static_cast<uint_type>(fraction << 1); + exponent = static_cast<int_type>(exponent - 1); + } else if (is_zero) { + exponent = 0; + } + + if (exponent <= 0 && !is_zero) { + fraction = static_cast<uint_type>(fraction >> 1); + fraction |= static_cast<uint_type>(1) << HF::top_bit_left_shift; + } + + fraction = (fraction >> HF::fraction_right_shift) & HF::fraction_encode_mask; + + const int_type max_exponent = + SetBits<uint_type, 0, HF::num_exponent_bits>::get; + + // Handle actual denorm numbers + while (exponent < 0 && !is_zero) { + fraction = static_cast<uint_type>(fraction >> 1); + exponent = static_cast<int_type>(exponent + 1); + + fraction &= HF::fraction_encode_mask; + if (fraction == 0) { + // We have underflowed our fraction. We should clamp to zero. + is_zero = true; + exponent = 0; + } + } + + // We have overflowed so we should be inf/-inf. + if (exponent > max_exponent) { + exponent = max_exponent; + fraction = 0; + } + + uint_type output_bits = static_cast<uint_type>( + static_cast<uint_type>(negate_value ? 1 : 0) << HF::top_bit_left_shift); + output_bits |= fraction; + + uint_type shifted_exponent = static_cast<uint_type>( + static_cast<uint_type>(exponent << HF::exponent_left_shift) & + HF::exponent_mask); + output_bits |= shifted_exponent; + + T output_float = spvutils::BitwiseCast<T>(output_bits); + value.set_value(output_float); + + return is; +} + +// Writes a FloatProxy value to a stream. +// Zero and normal numbers are printed in the usual notation, but with +// enough digits to fully reproduce the value. Other values (subnormal, +// NaN, and infinity) are printed as a hex float. +template <typename T> +std::ostream& operator<<(std::ostream& os, const FloatProxy<T>& value) { + auto float_val = value.getAsFloat(); + switch (std::fpclassify(float_val)) { + case FP_ZERO: + case FP_NORMAL: { + auto saved_precision = os.precision(); + os.precision(std::numeric_limits<T>::digits10); + os << float_val; + os.precision(saved_precision); + } break; + default: + os << HexFloat<FloatProxy<T>>(value); + break; + } + return os; +} + +template <> +inline std::ostream& operator<<<Float16>(std::ostream& os, + const FloatProxy<Float16>& value) { + os << HexFloat<FloatProxy<Float16>>(value); + return os; +} +} + +#endif // LIBSPIRV_UTIL_HEX_FLOAT_H_ diff --git a/SPIRV/spirv.hpp b/SPIRV/spirv.hpp index e3d134257f2de217b77953f59c11aa88b5f9ab9d..bb3c3f4c76bf0dd4671a97d0f144b76af3cf5e91 100755 --- a/SPIRV/spirv.hpp +++ b/SPIRV/spirv.hpp @@ -47,11 +47,11 @@ namespace spv { typedef unsigned int Id; #define SPV_VERSION 0x10000 -#define SPV_REVISION 6 +#define SPV_REVISION 8 static const unsigned int MagicNumber = 0x07230203; static const unsigned int Version = 0x00010000; -static const unsigned int Revision = 6; +static const unsigned int Revision = 8; static const unsigned int OpCodeMask = 0xffff; static const unsigned int WordCountShift = 16; @@ -420,6 +420,14 @@ enum BuiltIn { BuiltInSubgroupLocalInvocationId = 41, BuiltInVertexIndex = 42, BuiltInInstanceIndex = 43, + BuiltInSubgroupEqMaskKHR = 4416, + BuiltInSubgroupGeMaskKHR = 4417, + BuiltInSubgroupGtMaskKHR = 4418, + BuiltInSubgroupLeMaskKHR = 4419, + BuiltInSubgroupLtMaskKHR = 4420, + BuiltInBaseVertex = 4424, + BuiltInBaseInstance = 4425, + BuiltInDrawIndex = 4426, BuiltInMax = 0x7fffffff, }; @@ -595,6 +603,8 @@ enum Capability { CapabilityStorageImageReadWithoutFormat = 55, CapabilityStorageImageWriteWithoutFormat = 56, CapabilityMultiViewport = 57, + CapabilitySubgroupBallotKHR = 4423, + CapabilityDrawParameters = 4427, CapabilityMax = 0x7fffffff, }; @@ -893,6 +903,8 @@ enum Op { OpAtomicFlagTestAndSet = 318, OpAtomicFlagClear = 319, OpImageSparseRead = 320, + OpSubgroupBallotKHR = 4421, + OpSubgroupFirstInvocationKHR = 4422, OpMax = 0x7fffffff, }; diff --git a/StandAlone/ResourceLimits.cpp b/StandAlone/ResourceLimits.cpp index 8a5e6f37ae1dcde24367066f20152daf2c96383b..e22ec8015c6becdc9c3327d1b765f6c81d498145 100644 --- a/StandAlone/ResourceLimits.cpp +++ b/StandAlone/ResourceLimits.cpp @@ -35,6 +35,7 @@ #include <cstdlib> #include <cstring> #include <sstream> +#include <cctype> #include "ResourceLimits.h" @@ -240,208 +241,217 @@ std::string GetDefaultTBuiltInResourceString() void DecodeResourceLimits(TBuiltInResource* resources, char* config) { - const char* delims = " \t\n\r"; -#pragma warning(suppress: 4996) - const char* token = strtok(config, delims); - while (token) { -#pragma warning(suppress: 4996) - const char* valueStr = strtok(0, delims); - if (valueStr == 0 || ! (valueStr[0] == '-' || (valueStr[0] >= '0' && valueStr[0] <= '9'))) { - printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", valueStr ? valueStr : ""); + static const char* delims = " \t\n\r"; + + size_t pos = 0; + std::string configStr(config); + + while ((pos = configStr.find_first_not_of(delims, pos)) != std::string::npos) { + const size_t token_s = pos; + const size_t token_e = configStr.find_first_of(delims, token_s); + const size_t value_s = configStr.find_first_not_of(delims, token_e); + const size_t value_e = configStr.find_first_of(delims, value_s); + pos = value_e; + + // Faster to use compare(), but prefering readability. + const std::string tokenStr = configStr.substr(token_s, token_e-token_s); + const std::string valueStr = configStr.substr(value_s, value_e-value_s); + + if (value_s == std::string::npos || ! (valueStr[0] == '-' || isdigit(valueStr[0]))) { + printf("Error: '%s' bad .conf file. Each name must be followed by one number.\n", + valueStr.c_str()); return; } - int value = atoi(valueStr); - if (strcmp(token, "MaxLights") == 0) + const int value = std::atoi(valueStr.c_str()); + + if (tokenStr == "MaxLights") resources->maxLights = value; - else if (strcmp(token, "MaxClipPlanes") == 0) + else if (tokenStr == "MaxClipPlanes") resources->maxClipPlanes = value; - else if (strcmp(token, "MaxTextureUnits") == 0) + else if (tokenStr == "MaxTextureUnits") resources->maxTextureUnits = value; - else if (strcmp(token, "MaxTextureCoords") == 0) + else if (tokenStr == "MaxTextureCoords") resources->maxTextureCoords = value; - else if (strcmp(token, "MaxVertexAttribs") == 0) + else if (tokenStr == "MaxVertexAttribs") resources->maxVertexAttribs = value; - else if (strcmp(token, "MaxVertexUniformComponents") == 0) + else if (tokenStr == "MaxVertexUniformComponents") resources->maxVertexUniformComponents = value; - else if (strcmp(token, "MaxVaryingFloats") == 0) + else if (tokenStr == "MaxVaryingFloats") resources->maxVaryingFloats = value; - else if (strcmp(token, "MaxVertexTextureImageUnits") == 0) + else if (tokenStr == "MaxVertexTextureImageUnits") resources->maxVertexTextureImageUnits = value; - else if (strcmp(token, "MaxCombinedTextureImageUnits") == 0) + else if (tokenStr == "MaxCombinedTextureImageUnits") resources->maxCombinedTextureImageUnits = value; - else if (strcmp(token, "MaxTextureImageUnits") == 0) + else if (tokenStr == "MaxTextureImageUnits") resources->maxTextureImageUnits = value; - else if (strcmp(token, "MaxFragmentUniformComponents") == 0) + else if (tokenStr == "MaxFragmentUniformComponents") resources->maxFragmentUniformComponents = value; - else if (strcmp(token, "MaxDrawBuffers") == 0) + else if (tokenStr == "MaxDrawBuffers") resources->maxDrawBuffers = value; - else if (strcmp(token, "MaxVertexUniformVectors") == 0) + else if (tokenStr == "MaxVertexUniformVectors") resources->maxVertexUniformVectors = value; - else if (strcmp(token, "MaxVaryingVectors") == 0) + else if (tokenStr == "MaxVaryingVectors") resources->maxVaryingVectors = value; - else if (strcmp(token, "MaxFragmentUniformVectors") == 0) + else if (tokenStr == "MaxFragmentUniformVectors") resources->maxFragmentUniformVectors = value; - else if (strcmp(token, "MaxVertexOutputVectors") == 0) + else if (tokenStr == "MaxVertexOutputVectors") resources->maxVertexOutputVectors = value; - else if (strcmp(token, "MaxFragmentInputVectors") == 0) + else if (tokenStr == "MaxFragmentInputVectors") resources->maxFragmentInputVectors = value; - else if (strcmp(token, "MinProgramTexelOffset") == 0) + else if (tokenStr == "MinProgramTexelOffset") resources->minProgramTexelOffset = value; - else if (strcmp(token, "MaxProgramTexelOffset") == 0) + else if (tokenStr == "MaxProgramTexelOffset") resources->maxProgramTexelOffset = value; - else if (strcmp(token, "MaxClipDistances") == 0) + else if (tokenStr == "MaxClipDistances") resources->maxClipDistances = value; - else if (strcmp(token, "MaxComputeWorkGroupCountX") == 0) + else if (tokenStr == "MaxComputeWorkGroupCountX") resources->maxComputeWorkGroupCountX = value; - else if (strcmp(token, "MaxComputeWorkGroupCountY") == 0) + else if (tokenStr == "MaxComputeWorkGroupCountY") resources->maxComputeWorkGroupCountY = value; - else if (strcmp(token, "MaxComputeWorkGroupCountZ") == 0) + else if (tokenStr == "MaxComputeWorkGroupCountZ") resources->maxComputeWorkGroupCountZ = value; - else if (strcmp(token, "MaxComputeWorkGroupSizeX") == 0) + else if (tokenStr == "MaxComputeWorkGroupSizeX") resources->maxComputeWorkGroupSizeX = value; - else if (strcmp(token, "MaxComputeWorkGroupSizeY") == 0) + else if (tokenStr == "MaxComputeWorkGroupSizeY") resources->maxComputeWorkGroupSizeY = value; - else if (strcmp(token, "MaxComputeWorkGroupSizeZ") == 0) + else if (tokenStr == "MaxComputeWorkGroupSizeZ") resources->maxComputeWorkGroupSizeZ = value; - else if (strcmp(token, "MaxComputeUniformComponents") == 0) + else if (tokenStr == "MaxComputeUniformComponents") resources->maxComputeUniformComponents = value; - else if (strcmp(token, "MaxComputeTextureImageUnits") == 0) + else if (tokenStr == "MaxComputeTextureImageUnits") resources->maxComputeTextureImageUnits = value; - else if (strcmp(token, "MaxComputeImageUniforms") == 0) + else if (tokenStr == "MaxComputeImageUniforms") resources->maxComputeImageUniforms = value; - else if (strcmp(token, "MaxComputeAtomicCounters") == 0) + else if (tokenStr == "MaxComputeAtomicCounters") resources->maxComputeAtomicCounters = value; - else if (strcmp(token, "MaxComputeAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxComputeAtomicCounterBuffers") resources->maxComputeAtomicCounterBuffers = value; - else if (strcmp(token, "MaxVaryingComponents") == 0) + else if (tokenStr == "MaxVaryingComponents") resources->maxVaryingComponents = value; - else if (strcmp(token, "MaxVertexOutputComponents") == 0) + else if (tokenStr == "MaxVertexOutputComponents") resources->maxVertexOutputComponents = value; - else if (strcmp(token, "MaxGeometryInputComponents") == 0) + else if (tokenStr == "MaxGeometryInputComponents") resources->maxGeometryInputComponents = value; - else if (strcmp(token, "MaxGeometryOutputComponents") == 0) + else if (tokenStr == "MaxGeometryOutputComponents") resources->maxGeometryOutputComponents = value; - else if (strcmp(token, "MaxFragmentInputComponents") == 0) + else if (tokenStr == "MaxFragmentInputComponents") resources->maxFragmentInputComponents = value; - else if (strcmp(token, "MaxImageUnits") == 0) + else if (tokenStr == "MaxImageUnits") resources->maxImageUnits = value; - else if (strcmp(token, "MaxCombinedImageUnitsAndFragmentOutputs") == 0) + else if (tokenStr == "MaxCombinedImageUnitsAndFragmentOutputs") resources->maxCombinedImageUnitsAndFragmentOutputs = value; - else if (strcmp(token, "MaxCombinedShaderOutputResources") == 0) + else if (tokenStr == "MaxCombinedShaderOutputResources") resources->maxCombinedShaderOutputResources = value; - else if (strcmp(token, "MaxImageSamples") == 0) + else if (tokenStr == "MaxImageSamples") resources->maxImageSamples = value; - else if (strcmp(token, "MaxVertexImageUniforms") == 0) + else if (tokenStr == "MaxVertexImageUniforms") resources->maxVertexImageUniforms = value; - else if (strcmp(token, "MaxTessControlImageUniforms") == 0) + else if (tokenStr == "MaxTessControlImageUniforms") resources->maxTessControlImageUniforms = value; - else if (strcmp(token, "MaxTessEvaluationImageUniforms") == 0) + else if (tokenStr == "MaxTessEvaluationImageUniforms") resources->maxTessEvaluationImageUniforms = value; - else if (strcmp(token, "MaxGeometryImageUniforms") == 0) + else if (tokenStr == "MaxGeometryImageUniforms") resources->maxGeometryImageUniforms = value; - else if (strcmp(token, "MaxFragmentImageUniforms") == 0) + else if (tokenStr == "MaxFragmentImageUniforms") resources->maxFragmentImageUniforms = value; - else if (strcmp(token, "MaxCombinedImageUniforms") == 0) + else if (tokenStr == "MaxCombinedImageUniforms") resources->maxCombinedImageUniforms = value; - else if (strcmp(token, "MaxGeometryTextureImageUnits") == 0) + else if (tokenStr == "MaxGeometryTextureImageUnits") resources->maxGeometryTextureImageUnits = value; - else if (strcmp(token, "MaxGeometryOutputVertices") == 0) + else if (tokenStr == "MaxGeometryOutputVertices") resources->maxGeometryOutputVertices = value; - else if (strcmp(token, "MaxGeometryTotalOutputComponents") == 0) + else if (tokenStr == "MaxGeometryTotalOutputComponents") resources->maxGeometryTotalOutputComponents = value; - else if (strcmp(token, "MaxGeometryUniformComponents") == 0) + else if (tokenStr == "MaxGeometryUniformComponents") resources->maxGeometryUniformComponents = value; - else if (strcmp(token, "MaxGeometryVaryingComponents") == 0) + else if (tokenStr == "MaxGeometryVaryingComponents") resources->maxGeometryVaryingComponents = value; - else if (strcmp(token, "MaxTessControlInputComponents") == 0) + else if (tokenStr == "MaxTessControlInputComponents") resources->maxTessControlInputComponents = value; - else if (strcmp(token, "MaxTessControlOutputComponents") == 0) + else if (tokenStr == "MaxTessControlOutputComponents") resources->maxTessControlOutputComponents = value; - else if (strcmp(token, "MaxTessControlTextureImageUnits") == 0) + else if (tokenStr == "MaxTessControlTextureImageUnits") resources->maxTessControlTextureImageUnits = value; - else if (strcmp(token, "MaxTessControlUniformComponents") == 0) + else if (tokenStr == "MaxTessControlUniformComponents") resources->maxTessControlUniformComponents = value; - else if (strcmp(token, "MaxTessControlTotalOutputComponents") == 0) + else if (tokenStr == "MaxTessControlTotalOutputComponents") resources->maxTessControlTotalOutputComponents = value; - else if (strcmp(token, "MaxTessEvaluationInputComponents") == 0) + else if (tokenStr == "MaxTessEvaluationInputComponents") resources->maxTessEvaluationInputComponents = value; - else if (strcmp(token, "MaxTessEvaluationOutputComponents") == 0) + else if (tokenStr == "MaxTessEvaluationOutputComponents") resources->maxTessEvaluationOutputComponents = value; - else if (strcmp(token, "MaxTessEvaluationTextureImageUnits") == 0) + else if (tokenStr == "MaxTessEvaluationTextureImageUnits") resources->maxTessEvaluationTextureImageUnits = value; - else if (strcmp(token, "MaxTessEvaluationUniformComponents") == 0) + else if (tokenStr == "MaxTessEvaluationUniformComponents") resources->maxTessEvaluationUniformComponents = value; - else if (strcmp(token, "MaxTessPatchComponents") == 0) + else if (tokenStr == "MaxTessPatchComponents") resources->maxTessPatchComponents = value; - else if (strcmp(token, "MaxPatchVertices") == 0) + else if (tokenStr == "MaxPatchVertices") resources->maxPatchVertices = value; - else if (strcmp(token, "MaxTessGenLevel") == 0) + else if (tokenStr == "MaxTessGenLevel") resources->maxTessGenLevel = value; - else if (strcmp(token, "MaxViewports") == 0) + else if (tokenStr == "MaxViewports") resources->maxViewports = value; - else if (strcmp(token, "MaxVertexAtomicCounters") == 0) + else if (tokenStr == "MaxVertexAtomicCounters") resources->maxVertexAtomicCounters = value; - else if (strcmp(token, "MaxTessControlAtomicCounters") == 0) + else if (tokenStr == "MaxTessControlAtomicCounters") resources->maxTessControlAtomicCounters = value; - else if (strcmp(token, "MaxTessEvaluationAtomicCounters") == 0) + else if (tokenStr == "MaxTessEvaluationAtomicCounters") resources->maxTessEvaluationAtomicCounters = value; - else if (strcmp(token, "MaxGeometryAtomicCounters") == 0) + else if (tokenStr == "MaxGeometryAtomicCounters") resources->maxGeometryAtomicCounters = value; - else if (strcmp(token, "MaxFragmentAtomicCounters") == 0) + else if (tokenStr == "MaxFragmentAtomicCounters") resources->maxFragmentAtomicCounters = value; - else if (strcmp(token, "MaxCombinedAtomicCounters") == 0) + else if (tokenStr == "MaxCombinedAtomicCounters") resources->maxCombinedAtomicCounters = value; - else if (strcmp(token, "MaxAtomicCounterBindings") == 0) + else if (tokenStr == "MaxAtomicCounterBindings") resources->maxAtomicCounterBindings = value; - else if (strcmp(token, "MaxVertexAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxVertexAtomicCounterBuffers") resources->maxVertexAtomicCounterBuffers = value; - else if (strcmp(token, "MaxTessControlAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxTessControlAtomicCounterBuffers") resources->maxTessControlAtomicCounterBuffers = value; - else if (strcmp(token, "MaxTessEvaluationAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxTessEvaluationAtomicCounterBuffers") resources->maxTessEvaluationAtomicCounterBuffers = value; - else if (strcmp(token, "MaxGeometryAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxGeometryAtomicCounterBuffers") resources->maxGeometryAtomicCounterBuffers = value; - else if (strcmp(token, "MaxFragmentAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxFragmentAtomicCounterBuffers") resources->maxFragmentAtomicCounterBuffers = value; - else if (strcmp(token, "MaxCombinedAtomicCounterBuffers") == 0) + else if (tokenStr == "MaxCombinedAtomicCounterBuffers") resources->maxCombinedAtomicCounterBuffers = value; - else if (strcmp(token, "MaxAtomicCounterBufferSize") == 0) + else if (tokenStr == "MaxAtomicCounterBufferSize") resources->maxAtomicCounterBufferSize = value; - else if (strcmp(token, "MaxTransformFeedbackBuffers") == 0) + else if (tokenStr == "MaxTransformFeedbackBuffers") resources->maxTransformFeedbackBuffers = value; - else if (strcmp(token, "MaxTransformFeedbackInterleavedComponents") == 0) + else if (tokenStr == "MaxTransformFeedbackInterleavedComponents") resources->maxTransformFeedbackInterleavedComponents = value; - else if (strcmp(token, "MaxCullDistances") == 0) + else if (tokenStr == "MaxCullDistances") resources->maxCullDistances = value; - else if (strcmp(token, "MaxCombinedClipAndCullDistances") == 0) + else if (tokenStr == "MaxCombinedClipAndCullDistances") resources->maxCombinedClipAndCullDistances = value; - else if (strcmp(token, "MaxSamples") == 0) + else if (tokenStr == "MaxSamples") resources->maxSamples = value; - - else if (strcmp(token, "nonInductiveForLoops") == 0) + else if (tokenStr == "nonInductiveForLoops") resources->limits.nonInductiveForLoops = (value != 0); - else if (strcmp(token, "whileLoops") == 0) + else if (tokenStr == "whileLoops") resources->limits.whileLoops = (value != 0); - else if (strcmp(token, "doWhileLoops") == 0) + else if (tokenStr == "doWhileLoops") resources->limits.doWhileLoops = (value != 0); - else if (strcmp(token, "generalUniformIndexing") == 0) + else if (tokenStr == "generalUniformIndexing") resources->limits.generalUniformIndexing = (value != 0); - else if (strcmp(token, "generalAttributeMatrixVectorIndexing") == 0) + else if (tokenStr == "generalAttributeMatrixVectorIndexing") resources->limits.generalAttributeMatrixVectorIndexing = (value != 0); - else if (strcmp(token, "generalVaryingIndexing") == 0) + else if (tokenStr == "generalVaryingIndexing") resources->limits.generalVaryingIndexing = (value != 0); - else if (strcmp(token, "generalSamplerIndexing") == 0) + else if (tokenStr == "generalSamplerIndexing") resources->limits.generalSamplerIndexing = (value != 0); - else if (strcmp(token, "generalVariableIndexing") == 0) + else if (tokenStr == "generalVariableIndexing") resources->limits.generalVariableIndexing = (value != 0); - else if (strcmp(token, "generalConstantMatrixVectorIndexing") == 0) + else if (tokenStr == "generalConstantMatrixVectorIndexing") resources->limits.generalConstantMatrixVectorIndexing = (value != 0); else - printf("Warning: unrecognized limit (%s) in configuration file.\n", token); + printf("Warning: unrecognized limit (%s) in configuration file.\n", tokenStr.c_str()); -#pragma warning(suppress: 4996) - token = strtok(0, delims); } } diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 606f24765fdcd255b263e2bbec5a5c16d1c7e5bf..d40673c155214207be5be18878c3c620474fe7cb 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -1,6 +1,6 @@ // //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. -//Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2013-2016 LunarG, Inc. // //All rights reserved. // @@ -48,7 +48,9 @@ #include "../SPIRV/disassemble.h" #include <cstring> #include <cstdlib> +#include <cctype> #include <cmath> +#include <array> #include "../glslang/OSDependent/osinclude.h" @@ -58,26 +60,30 @@ extern "C" { // Command-line options enum TOptions { - EOptionNone = 0, - EOptionIntermediate = (1 << 0), - EOptionSuppressInfolog = (1 << 1), - EOptionMemoryLeakMode = (1 << 2), - EOptionRelaxedErrors = (1 << 3), - EOptionGiveWarnings = (1 << 4), - EOptionLinkProgram = (1 << 5), - EOptionMultiThreaded = (1 << 6), - EOptionDumpConfig = (1 << 7), - EOptionDumpReflection = (1 << 8), - EOptionSuppressWarnings = (1 << 9), - EOptionDumpVersions = (1 << 10), - EOptionSpv = (1 << 11), - EOptionHumanReadableSpv = (1 << 12), - EOptionVulkanRules = (1 << 13), - EOptionDefaultDesktop = (1 << 14), - EOptionOutputPreprocessed = (1 << 15), - EOptionOutputHexadecimal = (1 << 16), - EOptionReadHlsl = (1 << 17), - EOptionCascadingErrors = (1 << 18), + EOptionNone = 0, + EOptionIntermediate = (1 << 0), + EOptionSuppressInfolog = (1 << 1), + EOptionMemoryLeakMode = (1 << 2), + EOptionRelaxedErrors = (1 << 3), + EOptionGiveWarnings = (1 << 4), + EOptionLinkProgram = (1 << 5), + EOptionMultiThreaded = (1 << 6), + EOptionDumpConfig = (1 << 7), + EOptionDumpReflection = (1 << 8), + EOptionSuppressWarnings = (1 << 9), + EOptionDumpVersions = (1 << 10), + EOptionSpv = (1 << 11), + EOptionHumanReadableSpv = (1 << 12), + EOptionVulkanRules = (1 << 13), + EOptionDefaultDesktop = (1 << 14), + EOptionOutputPreprocessed = (1 << 15), + EOptionOutputHexadecimal = (1 << 16), + EOptionReadHlsl = (1 << 17), + EOptionCascadingErrors = (1 << 18), + EOptionAutoMapBindings = (1 << 19), + EOptionFlattenUniformArrays = (1 << 20), + EOptionNoStorageFormat = (1 << 21), + EOptionKeepUncalled = (1 << 22), }; // @@ -96,7 +102,7 @@ enum TFailCode { // // Forward declarations. // -EShLanguage FindLanguage(const std::string& name); +EShLanguage FindLanguage(const std::string& name, bool parseSuffix=true); void CompileFile(const char* fileName, ShHandle); void usage(); void FreeFileData(char** data); @@ -155,8 +161,14 @@ int Options = 0; const char* ExecutableName = nullptr; const char* binaryFileName = nullptr; const char* entryPointName = nullptr; +const char* sourceEntryPointName = nullptr; const char* shaderStageName = nullptr; +std::array<unsigned int, EShLangCount> baseSamplerBinding; +std::array<unsigned int, EShLangCount> baseTextureBinding; +std::array<unsigned int, EShLangCount> baseImageBinding; +std::array<unsigned int, EShLangCount> baseUboBinding; + // // Create the default name for saving a binary if -o is not provided. // @@ -204,6 +216,35 @@ void Error(const char* message) exit(EFailUsage); } +// +// Process an optional binding base of the form: +// --argname [stage] base +// Where stage is one of the forms accepted by FindLanguage, and base is an integer +// +void ProcessBindingBase(int& argc, char**& argv, std::array<unsigned int, EShLangCount>& base) +{ + if (argc < 2) + usage(); + + if (!isdigit(argv[1][0])) { + if (argc < 3) // this form needs one more argument + usage(); + + // Parse form: --argname stage base + const EShLanguage lang = FindLanguage(argv[1], false); + base[lang] = atoi(argv[2]); + argc-= 2; + argv+= 2; + } else { + // Parse form: --argname base + for (int lang=0; lang<EShLangCount; ++lang) + base[lang] = atoi(argv[1]); + + argc--; + argv++; + } +} + // // Do all command-line argument parsing. This includes building up the work-items // to be processed later, and saving all the command-line options. @@ -212,6 +253,11 @@ void Error(const char* message) // void ProcessArguments(int argc, char* argv[]) { + baseSamplerBinding.fill(0); + baseTextureBinding.fill(0); + baseImageBinding.fill(0); + baseUboBinding.fill(0); + ExecutableName = argv[0]; NumWorkItems = argc; // will include some empties where the '-' options were, but it doesn't matter, they'll be 0 Work = new glslang::TWorkItem*[NumWorkItems]; @@ -223,6 +269,56 @@ void ProcessArguments(int argc, char* argv[]) for (; argc >= 1; argc--, argv++) { if (argv[0][0] == '-') { switch (argv[0][1]) { + case '-': + { + std::string lowerword(argv[0]+2); + std::transform(lowerword.begin(), lowerword.end(), lowerword.begin(), ::tolower); + + // handle --word style options + if (lowerword == "shift-sampler-bindings" || // synonyms + lowerword == "shift-sampler-binding" || + lowerword == "ssb") { + ProcessBindingBase(argc, argv, baseSamplerBinding); + } else if (lowerword == "shift-texture-bindings" || // synonyms + lowerword == "shift-texture-binding" || + lowerword == "stb") { + ProcessBindingBase(argc, argv, baseTextureBinding); + } else if (lowerword == "shift-image-bindings" || // synonyms + lowerword == "shift-image-binding" || + lowerword == "sib") { + ProcessBindingBase(argc, argv, baseImageBinding); + } else if (lowerword == "shift-ubo-bindings" || // synonyms + lowerword == "shift-ubo-binding" || + lowerword == "sub") { + ProcessBindingBase(argc, argv, baseUboBinding); + } else if (lowerword == "auto-map-bindings" || // synonyms + lowerword == "auto-map-binding" || + lowerword == "amb") { + Options |= EOptionAutoMapBindings; + } else if (lowerword == "flatten-uniform-arrays" || // synonyms + lowerword == "flatten-uniform-array" || + lowerword == "fua") { + Options |= EOptionFlattenUniformArrays; + } else if (lowerword == "no-storage-format" || // synonyms + lowerword == "nsf") { + Options |= EOptionNoStorageFormat; + } else if (lowerword == "source-entrypoint" || // synonyms + lowerword == "sep") { + sourceEntryPointName = argv[1]; + if (argc > 0) { + argc--; + argv++; + } else + Error("no <entry-point> provided for --source-entrypoint"); + break; + } else if (lowerword == "keep-uncalled" || // synonyms + lowerword == "ku") { + Options |= EOptionKeepUncalled; + } else { + usage(); + } + } + break; case 'H': Options |= EOptionHumanReadableSpv; if ((Options & EOptionSpv) == 0) { @@ -340,6 +436,10 @@ void ProcessArguments(int argc, char* argv[]) // -o or -x makes no sense if there is no target binary if (binaryFileName && (Options & EOptionSpv) == 0) Error("no binary generation requested (e.g., -V)"); + + if ((Options & EOptionFlattenUniformArrays) != 0 && + (Options & EOptionReadHlsl) == 0) + Error("uniform array flattening only valid when compiling HLSL source."); } // @@ -363,6 +463,8 @@ void SetMessageOptions(EShMessages& messages) messages = (EShMessages)(messages | EShMsgReadHlsl); if (Options & EOptionCascadingErrors) messages = (EShMessages)(messages | EShMsgCascadingErrors); + if (Options & EOptionKeepUncalled) + messages = (EShMessages)(messages | EShMsgKeepUncalled); } // @@ -461,6 +563,19 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits) shader->setStringsWithLengthsAndNames(compUnit.text, NULL, compUnit.fileNameList, 1); if (entryPointName) // HLSL todo: this needs to be tracked per compUnits shader->setEntryPoint(entryPointName); + if (sourceEntryPointName) + shader->setSourceEntryPoint(sourceEntryPointName); + + shader->setShiftSamplerBinding(baseSamplerBinding[compUnit.stage]); + shader->setShiftTextureBinding(baseTextureBinding[compUnit.stage]); + shader->setShiftImageBinding(baseImageBinding[compUnit.stage]); + shader->setShiftUboBinding(baseUboBinding[compUnit.stage]); + shader->setFlattenUniformArrays((Options & EOptionFlattenUniformArrays) != 0); + shader->setNoStorageFormat((Options & EOptionNoStorageFormat) != 0); + + if (Options & EOptionAutoMapBindings) + shader->setAutoMapBindings(true); + shaders.push_back(shader); const int defaultVersion = Options & EOptionDefaultDesktop? 110: 100; @@ -499,6 +614,12 @@ void CompileAndLinkShaderUnits(std::vector<ShaderCompUnit> compUnits) if (! (Options & EOptionOutputPreprocessed) && ! program.link(messages)) LinkFailed = true; + // Map IO + if (Options & EOptionSpv) { + if (!program.mapIO()) + LinkFailed = true; + } + // Report if (! (Options & EOptionSuppressInfolog) && ! (Options & EOptionMemoryLeakMode)) { @@ -577,11 +698,11 @@ void CompileAndLinkShaderFiles() // they are all getting linked together.) glslang::TWorkItem* workItem; while (Worklist.remove(workItem)) { - ShaderCompUnit compUnit = { + ShaderCompUnit compUnit( FindLanguage(workItem->name), workItem->name, ReadFileData(workItem->name.c_str()) - }; + ); if (! compUnit.text) { usage(); @@ -705,15 +826,22 @@ int C_DECL main(int argc, char* argv[]) // .frag = fragment // .comp = compute // -EShLanguage FindLanguage(const std::string& name) +EShLanguage FindLanguage(const std::string& name, bool parseSuffix) { - size_t ext = name.rfind('.'); - if (ext == std::string::npos) { - usage(); - return EShLangVertex; + size_t ext = 0; + + // Search for a suffix on a filename: e.g, "myfile.frag". If given + // the suffix directly, we skip looking the '.' + if (parseSuffix) { + ext = name.rfind('.'); + if (ext == std::string::npos) { + usage(); + return EShLangVertex; + } + ++ext; } - std::string suffix = name.substr(ext + 1, std::string::npos); + std::string suffix = name.substr(ext, std::string::npos); if (shaderStageName) suffix = shaderStageName; @@ -831,6 +959,34 @@ void usage() " -v print version strings\n" " -w suppress warnings (except as required by #extension : warn)\n" " -x save 32-bit hexadecimal numbers as text, requires a binary option (e.g., -V)\n" + "\n" + " --shift-sampler-binding [stage] num set base binding number for samplers\n" + " --ssb [stage] num synonym for --shift-sampler-binding\n" + "\n" + " --shift-texture-binding [stage] num set base binding number for textures\n" + " --stb [stage] num synonym for --shift-texture-binding\n" + "\n" + " --shift-image-binding [stage] num set base binding number for images (uav)\n" + " --sib [stage] num synonym for --shift-image-binding\n" + "\n" + " --shift-UBO-binding [stage] num set base binding number for UBOs\n" + " --sub [stage] num synonym for --shift-UBO-binding\n" + "\n" + " --auto-map-bindings automatically bind uniform variables without\n" + " explicit bindings.\n" + " --amb synonym for --auto-map-bindings\n" + "\n" + " --flatten-uniform-arrays flatten uniform texture & sampler arrays to scalars\n" + " --fua synonym for --flatten-uniform-arrays\n" + "\n" + " --no-storage-format use Unknown image format\n" + " --nsf synonym for --no-storage-format\n" + "\n" + " --source-entrypoint name the given shader source function is renamed to be the entry point given in -e\n" + " --sep synonym for --source-entrypoint\n" + "\n" + " --keep-uncalled don't eliminate uncalled functions when linking\n" + " --ku synonym for --keep-uncalled\n" ); exit(EFailUsage); diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out index edd65ab272c9620df6b0c2080649d58d56252da8..42635d3b02255ab9004b3159f71e2a682580cb17 100644 --- a/Test/baseResults/100.frag.out +++ b/Test/baseResults/100.frag.out @@ -393,13 +393,13 @@ ERROR: node is still EOpNull! 0:? 'a' (global 3-element array of mediump int) 0:? 'uint' (global mediump int) 0:? 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:? 'f' (global mediump float) +0:? 'f' (invariant global mediump float) 0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x}) 0:? 'fa' (global implicitly-sized array of mediump float) -0:? 'f13' (global mediump float) +0:? 'f13' (invariant global mediump float) 0:? 'fi' (invariant temp mediump float) -0:? 'av' (smooth in mediump 4-component vector of float) -0:? 'uv2' (uniform mediump 2-component vector of float) +0:? 'av' (invariant smooth in mediump 4-component vector of float) +0:? 'uv2' (invariant uniform mediump 2-component vector of float) 0:? 'uv3' (invariant uniform mediump 3-component vector of float) 0:? 'glob2D' (global lowp sampler2D) 0:? 'vary2D' (smooth in lowp sampler2D) @@ -507,123 +507,6 @@ ERROR: node is still EOpNull! 0:38 's2' (temp structure{temp mediump float f, temp 10-element array of mediump float a}) 0:38 true case is null 0:40 'b' (temp mediump int) -0:54 Function Definition: foo10( (global void) -0:54 Function Parameters: -0:67 Function Definition: f11(s21; (global void) -0:67 Function Parameters: -0:67 'p2d' (in lowp sampler2D) -0:87 Function Definition: foo234( (global void) -0:87 Function Parameters: -0:89 Sequence -0:89 texture (global highp 4-component vector of float) -0:89 's3D2' (uniform highp sampler3D) -0:89 Constant: -0:89 0.200000 -0:89 0.200000 -0:89 0.200000 -0:89 Constant: -0:89 0.200000 -0:90 textureProj (global highp 4-component vector of float) -0:90 's3D2' (uniform highp sampler3D) -0:90 direct index (smooth temp mediump 4-component vector of float) -0:90 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:90 Constant: -0:90 1 (const int) -0:90 Constant: -0:90 0.400000 -0:91 dPdx (global mediump 4-component vector of float) -0:91 direct index (smooth temp mediump 4-component vector of float) -0:91 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:91 Constant: -0:91 0 (const int) -0:92 Constant: -0:92 0.000000 -0:93 fwidth (global mediump float) -0:93 'f13' (invariant global mediump float) -0:98 Function Definition: foo236( (global void) -0:98 Function Parameters: -0:100 Sequence -0:100 dPdx (global mediump 4-component vector of float) -0:100 direct index (smooth temp mediump 4-component vector of float) -0:100 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:100 Constant: -0:100 0 (const int) -0:101 Constant: -0:101 0.000000 -0:102 fwidth (global mediump float) -0:102 'f13' (invariant global mediump float) -0:103 move second child to first child (temp mediump float) -0:103 'gl_FragDepth' (temp mediump float) -0:103 'f13' (invariant global mediump float) -0:104 move second child to first child (temp highp float) -0:104 'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth) -0:104 'f13' (invariant global mediump float) -0:109 Function Definition: foo239( (global void) -0:109 Function Parameters: -0:111 Sequence -0:111 move second child to first child (temp mediump float) -0:111 'gl_FragDepth' (temp mediump float) -0:111 'f13' (invariant global mediump float) -0:112 move second child to first child (temp highp float) -0:112 'gl_FragDepthEXT' (gl_FragDepth highp float FragDepth) -0:112 'f13' (invariant global mediump float) -0:119 Function Definition: foo245( (global void) -0:119 Function Parameters: -0:121 Sequence -0:121 texture (global lowp 4-component vector of float) -0:121 'sExt' (uniform lowp samplerExternalOES) -0:121 Constant: -0:121 0.200000 -0:121 0.200000 -0:122 textureProj (global lowp 4-component vector of float) -0:122 'sExt' (uniform lowp samplerExternalOES) -0:122 Construct vec3 (temp lowp 3-component vector of float) -0:122 'f13' (invariant global mediump float) -0:123 textureProj (global lowp 4-component vector of float, operation at mediump) -0:123 'sExt' (uniform lowp samplerExternalOES) -0:123 direct index (smooth temp mediump 4-component vector of float) -0:123 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:123 Constant: -0:123 2 (const int) -0:130 Function Definition: foo246( (global void) -0:130 Function Parameters: -0:132 Sequence -0:132 texture (global mediump 4-component vector of float) -0:132 'mediumExt' (uniform mediump samplerExternalOES) -0:132 Constant: -0:132 0.200000 -0:132 0.200000 -0:133 textureProj (global highp 4-component vector of float) -0:133 'highExt' (uniform highp samplerExternalOES) -0:133 direct index (smooth temp mediump 4-component vector of float) -0:133 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:133 Constant: -0:133 2 (const int) -0:134 Constant: -0:134 0.000000 -0:135 Constant: -0:135 0.000000 -0:137 Bitwise not (temp mediump int) -0:137 'a' (temp mediump int) -0:138 inclusive-or (temp mediump int) -0:138 'a' (temp mediump int) -0:138 'a' (temp mediump int) -0:139 bitwise and (temp mediump int) -0:139 'a' (temp mediump int) -0:139 'a' (temp mediump int) -0:145 Function Definition: foo203940(i1;f1;f1; (global mediump int) -0:145 Function Parameters: -0:145 'a' (in mediump int) -0:145 'b' (in mediump float) -0:147 Sequence -0:147 textureProjGrad (global lowp 4-component vector of float, operation at mediump) -0:147 's2Dg' (uniform lowp sampler2D) -0:147 Construct vec3 (temp mediump 3-component vector of float) -0:147 'f13' (invariant global mediump float) -0:147 'uv2' (invariant uniform mediump 2-component vector of float) -0:147 'uv2' (invariant uniform mediump 2-component vector of float) -0:148 Branch: Return with expression -0:148 'a' (in mediump int) 0:151 Sequence 0:151 move second child to first child (temp mediump float) 0:151 'f123' (global mediump float) @@ -634,75 +517,6 @@ ERROR: node is still EOpNull! 0:152 'f124' (global mediump float) 0:152 Constant: 0:152 50000000000.000000 -0:158 Function Definition: foo323433( (global void) -0:158 Function Parameters: -0:160 Sequence -0:160 textureLod (global lowp 4-component vector of float, operation at mediump) -0:160 's2Dg' (uniform lowp sampler2D) -0:160 'uv2' (invariant uniform mediump 2-component vector of float) -0:160 'f13' (invariant global mediump float) -0:161 textureProjGrad (global lowp 4-component vector of float, operation at mediump) -0:161 's2Dg' (uniform lowp sampler2D) -0:161 Construct vec3 (temp mediump 3-component vector of float) -0:161 'f13' (invariant global mediump float) -0:161 'uv2' (invariant uniform mediump 2-component vector of float) -0:161 'uv2' (invariant uniform mediump 2-component vector of float) -0:162 textureGrad (global lowp 4-component vector of float, operation at mediump) -0:162 's2Dg' (uniform lowp sampler2D) -0:162 'uv2' (invariant uniform mediump 2-component vector of float) -0:162 'uv2' (invariant uniform mediump 2-component vector of float) -0:162 'uv2' (invariant uniform mediump 2-component vector of float) -0:163 textureGrad (global lowp 4-component vector of float) -0:163 'sCube' (uniform lowp samplerCube) -0:163 Construct vec3 (temp lowp 3-component vector of float) -0:163 'f13' (invariant global mediump float) -0:163 Construct vec3 (temp lowp 3-component vector of float) -0:163 'f13' (invariant global mediump float) -0:163 Construct vec3 (temp lowp 3-component vector of float) -0:163 'f13' (invariant global mediump float) -0:167 Function Definition: fgfg(f1;i1; (global mediump int) -0:167 Function Parameters: -0:167 'f' (in mediump float) -0:167 'i' (in highp int) -0:167 Sequence -0:167 Branch: Return with expression -0:167 Constant: -0:167 2 (const int) -0:173 Function Definition: gggf(f1; (global mediump int) -0:173 Function Parameters: -0:173 'f' (in mediump float) -0:173 Sequence -0:173 Branch: Return with expression -0:173 Constant: -0:173 2 (const int) -0:175 Function Definition: agggf(f1; (global mediump int) -0:175 Function Parameters: -0:175 'f' (in mediump float) -0:175 Sequence -0:175 Branch: Return with expression -0:175 Constant: -0:175 2 (const int) -0:187 Function Definition: badswizzle( (global void) -0:187 Function Parameters: -0:? Sequence -0:190 'a' (temp 5-element array of mediump 3-component vector of float) -0:191 'a' (temp 5-element array of mediump 3-component vector of float) -0:192 'a' (temp 5-element array of mediump 3-component vector of float) -0:193 Constant: -0:193 5 (const int) -0:194 Constant: -0:194 0.000000 -0:199 Function Definition: fooinittest( (global mediump float) -0:199 Function Parameters: -0:201 Sequence -0:201 Branch: Return with expression -0:201 Function Call: fooinit( (global mediump float) -0:209 Function Definition: fooinit( (global mediump float) -0:209 Function Parameters: -0:211 Sequence -0:211 Branch: Return with expression -0:211 Constant: -0:211 12.000000 0:214 Sequence 0:214 move second child to first child (temp mediump int) 0:214 'init1' (global mediump int) @@ -731,13 +545,13 @@ ERROR: node is still EOpNull! 0:? 'a' (global 3-element array of mediump int) 0:? 'uint' (global mediump int) 0:? 'v' (smooth in 3-element array of mediump 4-component vector of float) -0:? 'f' (global mediump float) +0:? 'f' (invariant global mediump float) 0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform mediump int x}) 0:? 'fa' (global 1-element array of mediump float) -0:? 'f13' (global mediump float) +0:? 'f13' (invariant global mediump float) 0:? 'fi' (invariant temp mediump float) -0:? 'av' (smooth in mediump 4-component vector of float) -0:? 'uv2' (uniform mediump 2-component vector of float) +0:? 'av' (invariant smooth in mediump 4-component vector of float) +0:? 'uv2' (invariant uniform mediump 2-component vector of float) 0:? 'uv3' (invariant uniform mediump 3-component vector of float) 0:? 'glob2D' (global lowp sampler2D) 0:? 'vary2D' (smooth in lowp sampler2D) diff --git a/Test/baseResults/100LimitsConf.vert.out b/Test/baseResults/100LimitsConf.vert.out index e27c2cc70cfd6a210e60189d0ee0f5cb2dc325d5..46cb845393b0bc10d27a658317a2ba91505d52ff 100644 --- a/Test/baseResults/100LimitsConf.vert.out +++ b/Test/baseResults/100LimitsConf.vert.out @@ -22,7 +22,3 @@ ERROR: 0:65: 'limitations' : Non-constant-index-expression ERROR: 20 compilation errors. No code generated. - -Linked vertex stage: - - diff --git a/Test/baseResults/100scope.vert.out b/Test/baseResults/100scope.vert.out index 2b542b0c6791e7da1f9e00f61d4c6c366665a212..17423dc2d9473a75316f72145c169e0328b5f4ec 100644 --- a/Test/baseResults/100scope.vert.out +++ b/Test/baseResults/100scope.vert.out @@ -128,6 +128,8 @@ ERROR: node is still EOpNull! Linked vertex stage: +ERROR: Linking vertex stage: No function definition (body) found: + g( Shader version: 100 ERROR: node is still EOpNull! @@ -148,20 +150,6 @@ ERROR: node is still EOpNull! 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' (in highp int) -0:25 Function Definition: cos(f1; (global highp float) -0:25 Function Parameters: -0:25 'x' (in highp float) -0:27 Sequence -0:27 Branch: Return with expression -0:27 Constant: -0:27 1.000000 -0:29 Function Definition: radians(b1; (global bool) -0:29 Function Parameters: -0:29 'x' (in bool) -0:31 Sequence -0:31 Branch: Return with expression -0:31 Constant: -0:31 true (const bool) 0:36 Function Definition: main( (global void) 0:36 Function Parameters: 0:? Sequence diff --git a/Test/baseResults/110scope.vert.out b/Test/baseResults/110scope.vert.out index 5f41b86bae7cd5b8d6b8600893789e4979ee3316..74002ba72b0ee57461e43a2b07ee00ef4cff57de 100644 --- a/Test/baseResults/110scope.vert.out +++ b/Test/baseResults/110scope.vert.out @@ -1,9 +1,8 @@ 110scope.vert ERROR: 0:5: 'a' : redefinition -ERROR: 0:34: 'f' : can't call user function from global scope ERROR: 0:57: 'z' : undeclared identifier ERROR: 0:57: 'z' : redefinition -ERROR: 4 compilation errors. No code generated. +ERROR: 3 compilation errors. No code generated. Shader version: 110 @@ -131,6 +130,10 @@ ERROR: node is still EOpNull! Linked vertex stage: +ERROR: Linking vertex stage: No function definition (body) found: + sin(f1; +ERROR: Linking vertex stage: No function definition (body) found: + g( Shader version: 110 ERROR: node is still EOpNull! @@ -151,20 +154,6 @@ ERROR: node is still EOpNull! 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' (in int) -0:25 Function Definition: cos(f1; (global float) -0:25 Function Parameters: -0:25 'x' (in float) -0:27 Sequence -0:27 Branch: Return with expression -0:27 Constant: -0:27 1.000000 -0:29 Function Definition: radians(b1; (global bool) -0:29 Function Parameters: -0:29 'x' (in bool) -0:31 Sequence -0:31 Branch: Return with expression -0:31 Constant: -0:31 true (const bool) 0:34 Sequence 0:34 move second child to first child (temp int) 0:34 'gi' (global int) diff --git a/Test/baseResults/120.frag.out b/Test/baseResults/120.frag.out index 4fa76000e5d3e7a86b9bd7822c59d5e88a232f06..79898aafc3bc37c4a98153967df0d2acdc36913e 100644 --- a/Test/baseResults/120.frag.out +++ b/Test/baseResults/120.frag.out @@ -630,537 +630,9 @@ Shader version: 120 Requested GL_ARB_shader_texture_lod Requested GL_ARB_texture_rectangle ERROR: node is still EOpNull! -0:21 Function Definition: main( (global void) -0:21 Function Parameters: -0:23 Sequence -0:23 Sequence -0:23 move second child to first child (temp 2X3 matrix of float) -0:23 'm23' (temp 2X3 matrix of float) -0:23 Construct mat2x3 (temp 2X3 matrix of float) -0:23 'm' (uniform 4X2 matrix of float) -0:27 Sequence -0:27 move second child to first child (temp structure{global float f}) -0:27 'sv' (temp structure{global float f}) -0:27 Construct structure (temp structure{global float f}) -0:27 Convert int to float (temp float) -0:27 'a' (temp int) -0:28 Sequence -0:28 move second child to first child (temp 2-element array of float) -0:28 'ia' (temp 2-element array of float) -0:28 Construct float (temp 2-element array of float) -0:28 Constant: -0:28 3.000000 -0:28 direct index (temp float) -0:28 'i' (smooth in 4-component vector of float) -0:28 Constant: -0:28 1 (const int) -0:29 Sequence -0:29 move second child to first child (temp float) -0:29 'f1' (temp float) -0:29 Constant: -0:29 1.000000 -0:30 Sequence -0:30 move second child to first child (temp float) -0:30 'f' (temp float) -0:30 Convert int to float (temp float) -0:30 'a' (temp int) -0:31 move second child to first child (temp float) -0:31 'f' (temp float) -0:31 Convert int to float (temp float) -0:31 'a' (temp int) -0:33 Sequence -0:33 move second child to first child (temp 3-component vector of float) -0:33 'v3' (temp 3-component vector of float) -0:33 Convert int to float (temp 3-component vector of float) -0:33 'iv3' (temp 3-component vector of int) -0:34 move second child to first child (temp float) -0:34 'f' (temp float) -0:34 add (temp float) -0:34 'f' (temp float) -0:34 Convert int to float (temp float) -0:34 'a' (temp int) -0:35 move second child to first child (temp float) -0:35 'f' (temp float) -0:35 subtract (temp float) -0:35 Convert int to float (temp float) -0:35 'a' (temp int) -0:35 'f' (temp float) -0:36 add second child into first child (temp float) -0:36 'f' (temp float) -0:36 Convert int to float (temp float) -0:36 'a' (temp int) -0:37 move second child to first child (temp float) -0:37 'f' (temp float) -0:37 subtract (temp float) -0:37 Convert int to float (temp float) -0:37 'a' (temp int) -0:37 'f' (temp float) -0:38 multiply second child into first child (temp 3-component vector of float) -0:38 'v3' (temp 3-component vector of float) -0:38 Convert int to float (temp 3-component vector of float) -0:38 'iv3' (temp 3-component vector of int) -0:39 move second child to first child (temp 3-component vector of float) -0:39 'v3' (temp 3-component vector of float) -0:39 divide (temp 3-component vector of float) -0:39 Convert int to float (temp 3-component vector of float) -0:39 'iv3' (temp 3-component vector of int) -0:39 Constant: -0:39 2.000000 -0:40 move second child to first child (temp 3-component vector of float) -0:40 'v3' (temp 3-component vector of float) -0:40 vector-scale (temp 3-component vector of float) -0:40 Constant: -0:40 3.000000 -0:40 Convert int to float (temp 3-component vector of float) -0:40 'iv3' (temp 3-component vector of int) -0:41 move second child to first child (temp 3-component vector of float) -0:41 'v3' (temp 3-component vector of float) -0:41 vector-scale (temp 3-component vector of float) -0:41 Constant: -0:41 2.000000 -0:41 'v3' (temp 3-component vector of float) -0:42 move second child to first child (temp 3-component vector of float) -0:42 'v3' (temp 3-component vector of float) -0:42 subtract (temp 3-component vector of float) -0:42 'v3' (temp 3-component vector of float) -0:42 Constant: -0:42 2.000000 -0:43 Test condition and select (temp void) -0:43 Condition -0:47 logical-or (temp bool) -0:46 logical-or (temp bool) -0:45 logical-or (temp bool) -0:44 logical-or (temp bool) -0:43 logical-or (temp bool) -0:43 Compare Less Than (temp bool) -0:43 'f' (temp float) -0:43 Convert int to float (temp float) -0:43 'a' (temp int) -0:44 Compare Less Than or Equal (temp bool) -0:44 Convert int to float (temp float) -0:44 'a' (temp int) -0:44 'f' (temp float) -0:45 Compare Greater Than (temp bool) -0:45 'f' (temp float) -0:45 Convert int to float (temp float) -0:45 'a' (temp int) -0:46 Compare Greater Than or Equal (temp bool) -0:46 'f' (temp float) -0:46 Convert int to float (temp float) -0:46 'a' (temp int) -0:47 Compare Equal (temp bool) -0:47 Convert int to float (temp float) -0:47 'a' (temp int) -0:47 'f' (temp float) -0:48 Compare Not Equal (temp bool) -0:48 'f' (temp float) -0:48 Convert int to float (temp float) -0:48 'a' (temp int) -0:43 true case is null -0:49 move second child to first child (temp float) -0:49 'f' (temp float) -0:49 Test condition and select (temp float) -0:49 Condition -0:49 'b' (temp bool) -0:49 true case -0:49 Convert int to float (temp float) -0:49 'a' (temp int) -0:49 false case -0:49 'f' (temp float) -0:50 move second child to first child (temp float) -0:50 'f' (temp float) -0:50 Test condition and select (temp float) -0:50 Condition -0:50 'b' (temp bool) -0:50 true case -0:50 'f' (temp float) -0:50 false case -0:50 Convert int to float (temp float) -0:50 'a' (temp int) -0:51 move second child to first child (temp float) -0:51 'f' (temp float) -0:51 Convert int to float (temp float) -0:51 Test condition and select (temp int) -0:51 Condition -0:51 'b' (temp bool) -0:51 true case -0:51 'a' (temp int) -0:51 false case -0:51 'a' (temp int) -0:52 Sequence -0:52 move second child to first child (temp structure{global float f}) -0:52 'news' (temp structure{global float f}) -0:52 'sv' (temp structure{global float f}) -0:54 vector swizzle (temp 2-component vector of float) -0:54 'i' (smooth in 4-component vector of float) -0:54 Sequence -0:54 Constant: -0:54 0 (const int) -0:54 Constant: -0:54 1 (const int) -0:55 'm' (uniform 4X2 matrix of float) -0:56 'm' (uniform 4X2 matrix of float) -0:58 'f' (temp float) -0:59 move second child to first child (temp float) -0:59 'f' (temp float) -0:59 Convert int to float (temp float) -0:59 'a' (temp int) -0:60 'f' (temp float) -0:61 'b' (temp bool) -0:62 move second child to first child (temp bool) -0:62 'b' (temp bool) -0:62 'b' (temp bool) -0:63 'f' (temp float) -0:65 move second child to first child (temp 4-component vector of float) -0:65 'gl_FragColor' (fragColor 4-component vector of float FragColor) -0:65 texture (global 4-component vector of float) -0:65 's2D' (uniform sampler2D) -0:65 'centTexCoord' (centroid smooth in 2-component vector of float) -0:? Sequence -0:79 'gl_FragColor' (fragColor 4-component vector of float FragColor) -0:82 direct index (temp float) -0:82 'gl_FragColor' (fragColor 4-component vector of float FragColor) -0:82 Constant: -0:82 0 (const int) -0:83 direct index (temp float) -0:83 'gl_FragColor' (fragColor 4-component vector of float FragColor) -0:83 Constant: -0:83 0 (const int) -0:84 direct index (temp float) -0:84 'centTexCoord' (centroid smooth in 2-component vector of float) -0:84 Constant: -0:84 0 (const int) -0:85 move second child to first child (temp bool) -0:85 Comma (temp bool) -0:85 'a' (temp int) -0:85 'b' (temp bool) -0:85 Constant: -0:85 true (const bool) -0:91 Function Definition: main( (global int) -0:91 Function Parameters: 0:92 Function Definition: main(i1; (global void) 0:92 Function Parameters: 0:92 'a' (in int) -0:97 Function Definition: foo(f1; (global int) -0:97 Function Parameters: -0:97 'a' (out float) -0:99 Sequence -0:99 Branch: Return with expression -0:99 Constant: -0:99 3.200000 -0:100 Function Call: foo(f1; (global int) -0:100 'a' (out float) -0:103 Function Definition: gen(vf3; (global bool) -0:103 Function Parameters: -0:103 'v' (in 3-component vector of float) -0:105 Sequence -0:105 Test condition and select (temp void) -0:105 Condition -0:105 logical-and (temp bool) -0:105 Compare Less Than (temp bool) -0:105 Absolute value (global float) -0:105 direct index (temp float) -0:105 'v' (in 3-component vector of float) -0:105 Constant: -0:105 0 (const int) -0:105 Constant: -0:105 0.000100 -0:105 Compare Less Than (temp bool) -0:105 Absolute value (global float) -0:105 direct index (temp float) -0:105 'v' (in 3-component vector of float) -0:105 Constant: -0:105 1 (const int) -0:105 Constant: -0:105 0.000100 -0:105 true case -0:106 Branch: Return with expression -0:106 Constant: -0:106 true (const bool) -0:109 Function Definition: v1( (global void) -0:109 Function Parameters: -0:113 Function Definition: v2( (global void) -0:113 Function Parameters: -0:115 Sequence -0:115 Branch: Return -0:118 Function Definition: atest( (global void) -0:118 Function Parameters: -0:120 Sequence -0:120 Sequence -0:120 move second child to first child (temp 4-component vector of float) -0:120 'v' (temp 4-component vector of float) -0:120 direct index (smooth temp 4-component vector of float TexCoord) -0:120 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:120 Constant: -0:120 1 (const int) -0:121 add second child into first child (temp 4-component vector of float) -0:121 'v' (temp 4-component vector of float) -0:121 direct index (smooth temp 4-component vector of float TexCoord) -0:121 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:121 Constant: -0:121 3 (const int) -0:139 Function Definition: foo123( (global void) -0:139 Function Parameters: -0:141 Sequence -0:141 Sequence -0:141 move second child to first child (temp 2X2 matrix of float) -0:141 'r2' (temp 2X2 matrix of float) -0:141 component-wise multiply (global 2X2 matrix of float) -0:141 'm22' (global 2X2 matrix of float) -0:141 'm22' (global 2X2 matrix of float) -0:142 Sequence -0:142 move second child to first child (temp 3X3 matrix of float) -0:142 'r3' (temp 3X3 matrix of float) -0:142 component-wise multiply (global 3X3 matrix of float) -0:142 'm33' (global 3X3 matrix of float) -0:142 'm33' (global 3X3 matrix of float) -0:143 Sequence -0:143 move second child to first child (temp 4X4 matrix of float) -0:143 'r4' (temp 4X4 matrix of float) -0:143 component-wise multiply (global 4X4 matrix of float) -0:143 'm44' (global 4X4 matrix of float) -0:143 'm44' (global 4X4 matrix of float) -0:145 Sequence -0:145 move second child to first child (temp 2X3 matrix of float) -0:145 'r23' (temp 2X3 matrix of float) -0:145 component-wise multiply (global 2X3 matrix of float) -0:145 'm23' (global 2X3 matrix of float) -0:145 'm23' (global 2X3 matrix of float) -0:146 Sequence -0:146 move second child to first child (temp 2X4 matrix of float) -0:146 'r24' (temp 2X4 matrix of float) -0:146 component-wise multiply (global 2X4 matrix of float) -0:146 'm24' (global 2X4 matrix of float) -0:146 'm24' (global 2X4 matrix of float) -0:147 Sequence -0:147 move second child to first child (temp 3X2 matrix of float) -0:147 'r32' (temp 3X2 matrix of float) -0:147 component-wise multiply (global 3X2 matrix of float) -0:147 'm32' (global 3X2 matrix of float) -0:147 'm32' (global 3X2 matrix of float) -0:148 Sequence -0:148 move second child to first child (temp 3X4 matrix of float) -0:148 'r34' (temp 3X4 matrix of float) -0:148 component-wise multiply (global 3X4 matrix of float) -0:148 'm34' (global 3X4 matrix of float) -0:148 'm34' (global 3X4 matrix of float) -0:149 Sequence -0:149 move second child to first child (temp 4X2 matrix of float) -0:149 'r42' (temp 4X2 matrix of float) -0:149 component-wise multiply (global 4X2 matrix of float) -0:149 'm42' (global 4X2 matrix of float) -0:149 'm42' (global 4X2 matrix of float) -0:150 Sequence -0:150 move second child to first child (temp 4X3 matrix of float) -0:150 'r43' (temp 4X3 matrix of float) -0:150 component-wise multiply (global 4X3 matrix of float) -0:150 'm43' (global 4X3 matrix of float) -0:150 'm43' (global 4X3 matrix of float) -0:156 Function Definition: matConst( (global void) -0:156 Function Parameters: -0:? Sequence -0:162 Sequence -0:162 move second child to first child (temp 4X4 matrix of float) -0:162 'm4g' (temp 4X4 matrix of float) -0:162 Construct mat4 (temp 4X4 matrix of float) -0:162 'v2' (temp 2-component vector of float) -0:162 'v3' (temp 3-component vector of float) -0:162 'v3' (temp 3-component vector of float) -0:162 'v3' (temp 3-component vector of float) -0:162 'v3' (temp 3-component vector of float) -0:162 'v3' (temp 3-component vector of float) -0:163 Sequence -0:163 move second child to first child (temp 4X4 matrix of float) -0:163 'm4' (temp 4X4 matrix of float) -0:163 Construct mat4 (temp 4X4 matrix of float) -0:163 'v2' (temp 2-component vector of float) -0:163 'v3' (temp 3-component vector of float) -0:163 'v3' (temp 3-component vector of float) -0:163 'v3' (temp 3-component vector of float) -0:163 'v3' (temp 3-component vector of float) -0:163 'v2' (temp 2-component vector of float) -0:164 Sequence -0:164 move second child to first child (temp 3X3 matrix of float) -0:164 'm3' (temp 3X3 matrix of float) -0:164 Construct mat3 (temp 3X3 matrix of float) -0:164 'm4' (temp 4X4 matrix of float) -0:165 Sequence -0:165 move second child to first child (temp 3X3 matrix of float) -0:165 'm3b1' (temp 3X3 matrix of float) -0:165 Construct mat3 (temp 3X3 matrix of float) -0:165 'm4' (temp 4X4 matrix of float) -0:165 'v2' (temp 2-component vector of float) -0:166 Sequence -0:166 move second child to first child (temp 3X3 matrix of float) -0:166 'm3b2' (temp 3X3 matrix of float) -0:166 Construct mat3 (temp 3X3 matrix of float) -0:166 'm4' (temp 4X4 matrix of float) -0:166 'm4' (temp 4X4 matrix of float) -0:167 Sequence -0:167 move second child to first child (temp 3X2 matrix of float) -0:167 'm32' (temp 3X2 matrix of float) -0:167 Construct mat3x2 (temp 3X2 matrix of float) -0:167 'm4' (temp 4X4 matrix of float) -0:168 Sequence -0:168 move second child to first child (temp 4X4 matrix of float) -0:168 'm4c' (temp 4X4 matrix of float) -0:168 Construct mat4 (temp 4X4 matrix of float) -0:168 'm32' (temp 3X2 matrix of float) -0:169 Sequence -0:169 move second child to first child (temp 3X3 matrix of float) -0:169 'm3s' (temp 3X3 matrix of float) -0:169 Construct mat3 (temp 3X3 matrix of float) -0:169 direct index (temp float) -0:169 'v2' (temp 2-component vector of float) -0:169 Constant: -0:169 0 (const int) -0:171 Sequence -0:171 move second child to first child (temp 2-element array of 3X3 matrix of float) -0:171 'm3a1' (temp 2-element array of 3X3 matrix of float) -0:171 Construct mat3 (temp 2-element array of 3X3 matrix of float) -0:171 'm3s' (temp 3X3 matrix of float) -0:171 'm3s' (temp 3X3 matrix of float) -0:179 Function Definition: foo2323( (global void) -0:179 Function Parameters: -0:? Sequence -0:184 move second child to first child (temp 4-component vector of float) -0:184 'v' (temp 4-component vector of float) -0:184 textureLod (global 4-component vector of float) -0:184 's2D' (uniform sampler2D) -0:184 'v2' (temp 2-component vector of float) -0:184 'f' (temp float) -0:185 move second child to first child (temp 4-component vector of float) -0:185 'v' (temp 4-component vector of float) -0:185 textureProjLod (global 4-component vector of float) -0:185 's3D' (uniform sampler3D) -0:185 'v' (temp 4-component vector of float) -0:185 'f' (temp float) -0:186 move second child to first child (temp 4-component vector of float) -0:186 'v' (temp 4-component vector of float) -0:186 textureProjLod (global 4-component vector of float) -0:186 's1D' (uniform sampler1D) -0:186 'v' (temp 4-component vector of float) -0:186 'f' (temp float) -0:187 move second child to first child (temp 4-component vector of float) -0:187 'v' (temp 4-component vector of float) -0:187 textureProjLod (global 4-component vector of float) -0:187 's2DS' (uniform sampler2DShadow) -0:187 'v' (temp 4-component vector of float) -0:187 'f' (temp float) -0:189 move second child to first child (temp 4-component vector of float) -0:189 'v' (temp 4-component vector of float) -0:189 textureGrad (global 4-component vector of float) -0:189 's1D' (uniform sampler1D) -0:189 'f' (temp float) -0:189 'f' (temp float) -0:189 'f' (temp float) -0:190 move second child to first child (temp 4-component vector of float) -0:190 'v' (temp 4-component vector of float) -0:190 textureProjGrad (global 4-component vector of float) -0:190 's2D' (uniform sampler2D) -0:190 'v' (temp 4-component vector of float) -0:190 'v2' (temp 2-component vector of float) -0:190 'v2' (temp 2-component vector of float) -0:191 move second child to first child (temp 4-component vector of float) -0:191 'v' (temp 4-component vector of float) -0:191 textureProjGrad (global 4-component vector of float) -0:191 's2DS' (uniform sampler2DShadow) -0:191 'v' (temp 4-component vector of float) -0:191 'v2' (temp 2-component vector of float) -0:191 'v2' (temp 2-component vector of float) -0:196 Function Definition: foo2324( (global void) -0:196 Function Parameters: -0:? Sequence -0:201 move second child to first child (temp 4-component vector of float) -0:201 'v' (temp 4-component vector of float) -0:201 textureLod (global 4-component vector of float) -0:201 's2D' (uniform sampler2D) -0:201 'v2' (temp 2-component vector of float) -0:201 'f' (temp float) -0:202 move second child to first child (temp 4-component vector of float) -0:202 'v' (temp 4-component vector of float) -0:202 textureProjLod (global 4-component vector of float) -0:202 's3D' (uniform sampler3D) -0:202 'v' (temp 4-component vector of float) -0:202 'f' (temp float) -0:203 move second child to first child (temp 4-component vector of float) -0:203 'v' (temp 4-component vector of float) -0:203 textureProjLod (global 4-component vector of float) -0:203 's1D' (uniform sampler1D) -0:203 'v' (temp 4-component vector of float) -0:203 'f' (temp float) -0:204 move second child to first child (temp 4-component vector of float) -0:204 'v' (temp 4-component vector of float) -0:204 textureProjLod (global 4-component vector of float) -0:204 's2DS' (uniform sampler2DShadow) -0:204 'v' (temp 4-component vector of float) -0:204 'f' (temp float) -0:206 move second child to first child (temp 4-component vector of float) -0:206 'v' (temp 4-component vector of float) -0:206 textureGrad (global 4-component vector of float) -0:206 's1D' (uniform sampler1D) -0:206 'f' (temp float) -0:206 'f' (temp float) -0:206 'f' (temp float) -0:207 move second child to first child (temp 4-component vector of float) -0:207 'v' (temp 4-component vector of float) -0:207 textureProjGrad (global 4-component vector of float) -0:207 's2D' (uniform sampler2D) -0:207 'v' (temp 4-component vector of float) -0:207 'v2' (temp 2-component vector of float) -0:207 'v2' (temp 2-component vector of float) -0:208 move second child to first child (temp 4-component vector of float) -0:208 'v' (temp 4-component vector of float) -0:208 textureProjGrad (global 4-component vector of float) -0:208 's2DS' (uniform sampler2DShadow) -0:208 'v' (temp 4-component vector of float) -0:208 'v2' (temp 2-component vector of float) -0:208 'v2' (temp 2-component vector of float) -0:209 'v' (temp 4-component vector of float) -0:214 Function Definition: foo121111( (global void) -0:214 Function Parameters: -0:? Sequence -0:217 Sequence -0:217 move second child to first child (temp 4-component vector of float) -0:217 'v' (temp 4-component vector of float) -0:217 texture (global 4-component vector of float) -0:217 's2DRbad' (uniform sampler2DRect) -0:217 'v2' (temp 2-component vector of float) -0:225 Function Definition: foo12111( (global void) -0:225 Function Parameters: -0:? Sequence -0:231 move second child to first child (temp 4-component vector of float) -0:231 'v' (temp 4-component vector of float) -0:231 texture (global 4-component vector of float) -0:231 's2DR' (uniform sampler2DRect) -0:231 'v2' (temp 2-component vector of float) -0:232 move second child to first child (temp 4-component vector of float) -0:232 'v' (temp 4-component vector of float) -0:232 textureProj (global 4-component vector of float) -0:232 's2DR' (uniform sampler2DRect) -0:232 'v3' (temp 3-component vector of float) -0:233 move second child to first child (temp 4-component vector of float) -0:233 'v' (temp 4-component vector of float) -0:233 textureProj (global 4-component vector of float) -0:233 's2DR' (uniform sampler2DRect) -0:233 'v4' (temp 4-component vector of float) -0:234 move second child to first child (temp 4-component vector of float) -0:234 'v' (temp 4-component vector of float) -0:234 texture (global 4-component vector of float) -0:234 's2DRS' (uniform sampler2DRectShadow) -0:234 'v3' (temp 3-component vector of float) -0:235 move second child to first child (temp 4-component vector of float) -0:235 'v' (temp 4-component vector of float) -0:235 textureProj (global 4-component vector of float) -0:235 's2DRS' (uniform sampler2DRectShadow) -0:235 'v4' (temp 4-component vector of float) -0:237 move second child to first child (temp 4-component vector of float) -0:237 'v' (temp 4-component vector of float) -0:237 textureProjGrad (global 4-component vector of float) -0:237 's2DRS' (uniform sampler2DRectShadow) -0:237 'v' (temp 4-component vector of float) -0:237 'v2' (temp 2-component vector of float) -0:237 'v2' (temp 2-component vector of float) 0:? Linker Objects 0:? 'lowp' (global float) 0:? 'mediump' (global float) diff --git a/Test/baseResults/120.vert.out b/Test/baseResults/120.vert.out index 73ced6a1e2566b338117b120b734f0b0822f4c65..c63d95a22d06606cd391228bf9557f6ebec8823e 100644 --- a/Test/baseResults/120.vert.out +++ b/Test/baseResults/120.vert.out @@ -77,9 +77,8 @@ ERROR: 0:192: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or ERROR: 0:192: 'assign' : l-value required (can't modify a const) ERROR: 0:195: 'gl_ModelViewMatrix' : identifiers starting with "gl_" are reserved ERROR: 0:200: 'token pasting (##)' : not supported for this version or the enabled extensions -ERROR: 0:200: '##' : token pasting not implemented (internal error) -ERROR: 0:200: '' : syntax error -ERROR: 80 compilation errors. No code generated. +ERROR: 0:203: 'token pasting (##)' : not supported for this version or the enabled extensions +ERROR: 79 compilation errors. No code generated. Shader version: 120 @@ -420,7 +419,6 @@ ERROR: node is still EOpNull! 0:? 'concall' (const float) 0:? 0.295520 0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord) 0:? 'c' (uniform int) 0:? 'x' (in 2-component vector of int) 0:? 'v2a' (in 2-component vector of float) @@ -428,7 +426,8 @@ ERROR: node is still EOpNull! 0:? 'c2D' (in 2-component vector of float) 0:? 'c3D' (in 3-component vector of float) 0:? 'v4' (uniform 4-component vector of float) -0:? 'abc' (global int) +0:? 'abcdef' (global int) +0:? 'qrstuv' (global int) Linked vertex stage: @@ -481,285 +480,6 @@ ERROR: node is still EOpNull! 0:43 'gl_PointSize' (invariant gl_PointSize float PointSize) 0:43 Constant: 0:43 3.800000 -0:61 Function Definition: overloadB(f1;f1; (global void) -0:61 Function Parameters: -0:61 '' (in float) -0:61 '' (const (read only) float) -0:78 Function Definition: foo( (global void) -0:78 Function Parameters: -0:? Sequence -0:83 Function Call: overloadB(f1;f1; (global void) -0:83 'f' (temp float) -0:83 'f' (temp float) -0:84 Function Call: overloadB(f1;f1; (global void) -0:84 'f' (temp float) -0:84 Constant: -0:84 2.000000 -0:85 Function Call: overloadB(f1;f1; (global void) -0:85 Constant: -0:85 1.000000 -0:85 Convert int to float (temp float) -0:85 'i' (temp int) -0:87 Constant: -0:87 0.000000 -0:88 Function Call: overloadC(i1;i1; (global 2-component vector of float) -0:88 Constant: -0:88 1 (const int) -0:88 'i' (temp int) -0:89 Function Call: overloadC(vf2;vf2; (global 2-component vector of float) -0:89 Constant: -0:89 1.000000 -0:89 1.000000 -0:89 Constant: -0:89 2.000000 -0:89 2.000000 -0:90 Constant: -0:90 0.000000 -0:91 Function Call: overloadC(vf2;vf2; (global 2-component vector of float) -0:91 Constant: -0:91 1.000000 -0:91 1.000000 -0:91 Constant: -0:91 2.000000 -0:91 2.000000 -0:93 Function Call: overloadD(i1;f1; (global 3-component vector of float) -0:93 'i' (temp int) -0:93 'f' (temp float) -0:94 Function Call: overloadD(f1;i1; (global 3-component vector of float) -0:94 'f' (temp float) -0:94 'i' (temp int) -0:95 Function Call: overloadD(f1;i1; (global 3-component vector of float) -0:95 Convert int to float (temp float) -0:95 'i' (temp int) -0:95 'i' (temp int) -0:98 Constant: -0:98 0.000000 -0:100 Constant: -0:100 0.841471 -0:101 texture (global 4-component vector of float) -0:101 's2D' (uniform sampler2D) -0:101 Constant: -0:101 0.000000 -0:101 0.000000 -0:102 clamp (global 4-component vector of float) -0:102 'attv4' (in 4-component vector of float) -0:102 Constant: -0:102 0.000000 -0:102 Constant: -0:102 1.000000 -0:103 clamp (global 4-component vector of float) -0:103 Convert int to float (temp 4-component vector of float) -0:103 Convert float to int (temp 4-component vector of int) -0:103 'attv4' (in 4-component vector of float) -0:103 Constant: -0:103 0.000000 -0:103 Constant: -0:103 1.000000 -0:106 Constant: -0:106 0.000000 -0:107 Constant: -0:107 0.000000 -0:108 Constant: -0:108 0.000000 -0:109 Function Call: overloadE(vf2; (global 3-component vector of float) -0:109 Constant: -0:109 3.300000 -0:109 3.300000 -0:110 Function Call: overloadE(mf22; (global 3-component vector of float) -0:110 Constant: -0:110 0.500000 -0:110 0.000000 -0:110 0.000000 -0:110 0.500000 -0:111 Constant: -0:111 0.000000 -0:112 Function Call: overloadE(vf2; (global 3-component vector of float) -0:112 Constant: -0:112 1.000000 -0:112 1.000000 -0:115 Function Call: overloadE(f1[2]; (global 3-component vector of float) -0:115 'b' (temp 2-element array of float) -0:117 Constant: -0:117 0.000000 -0:118 Function Call: overloadF(i1; (global 3-component vector of float) -0:118 Constant: -0:118 1 (const int) -0:128 Function Definition: foo2( (global void) -0:128 Function Parameters: -0:? Sequence -0:135 Comma (global void) -0:135 Function Call: outFun(f1;vi2;i1;f1; (global void) -0:135 Convert int to float (temp float) -0:135 'i' (temp int) -0:135 'tempArg' (temp 2-component vector of int) -0:135 'i' (temp int) -0:135 'f' (temp float) -0:135 move second child to first child (temp 2-component vector of float) -0:135 'v2' (temp 2-component vector of float) -0:135 Convert int to float (temp 2-component vector of float) -0:135 'tempArg' (temp 2-component vector of int) -0:136 Comma (global int) -0:136 move second child to first child (temp int) -0:136 'tempReturn' (global int) -0:136 Function Call: outFunRet(f1;i1;i1;vi4; (global int) -0:136 Convert int to float (temp float) -0:136 'i' (temp int) -0:136 'tempArg' (temp int) -0:136 'i' (temp int) -0:136 'tempArg' (temp 4-component vector of int) -0:136 move second child to first child (temp float) -0:136 'f' (temp float) -0:136 Convert int to float (temp float) -0:136 'tempArg' (temp int) -0:136 move second child to first child (temp 4-component vector of float) -0:136 'v4' (temp 4-component vector of float) -0:136 Convert int to float (temp 4-component vector of float) -0:136 'tempArg' (temp 4-component vector of int) -0:136 'tempReturn' (global int) -0:137 Sequence -0:137 move second child to first child (temp float) -0:137 'ret' (temp float) -0:137 Convert int to float (temp float) -0:137 Comma (global int) -0:137 move second child to first child (temp int) -0:137 'tempReturn' (global int) -0:137 Function Call: outFunRet(f1;i1;i1;vi4; (global int) -0:137 Convert int to float (temp float) -0:137 'i' (temp int) -0:137 'tempArg' (temp int) -0:137 'i' (temp int) -0:137 'tempArg' (temp 4-component vector of int) -0:137 move second child to first child (temp float) -0:137 'f' (temp float) -0:137 Convert int to float (temp float) -0:137 'tempArg' (temp int) -0:137 move second child to first child (temp 4-component vector of float) -0:137 'v4' (temp 4-component vector of float) -0:137 Convert int to float (temp 4-component vector of float) -0:137 'tempArg' (temp 4-component vector of int) -0:137 'tempReturn' (global int) -0:138 Sequence -0:138 move second child to first child (temp 2-component vector of float) -0:138 'ret2' (temp 2-component vector of float) -0:138 Convert int to float (temp 2-component vector of float) -0:138 Comma (global 2-component vector of int) -0:138 move second child to first child (temp 2-component vector of int) -0:138 'tempReturn' (global 2-component vector of int) -0:138 Function Call: outFunRet(f1;vi4;i1;vi4; (global 2-component vector of int) -0:138 Convert int to float (temp float) -0:138 'i' (temp int) -0:138 'tempArg' (temp 4-component vector of int) -0:138 'i' (temp int) -0:138 'tempArg' (temp 4-component vector of int) -0:138 move second child to first child (temp 4-component vector of float) -0:138 'v4' (temp 4-component vector of float) -0:138 Convert int to float (temp 4-component vector of float) -0:138 'tempArg' (temp 4-component vector of int) -0:138 move second child to first child (temp 4-component vector of float) -0:138 'v4' (temp 4-component vector of float) -0:138 Convert int to float (temp 4-component vector of float) -0:138 'tempArg' (temp 4-component vector of int) -0:138 'tempReturn' (global 2-component vector of int) -0:139 Sequence -0:139 move second child to first child (temp bool) -0:139 'b' (temp bool) -0:139 any (global bool) -0:139 Compare Less Than (global 4-component vector of bool) -0:139 'v4' (temp 4-component vector of float) -0:139 'attv4' (in 4-component vector of float) -0:142 Function Definition: noise( (global void) -0:142 Function Parameters: -0:144 Sequence -0:144 Sequence -0:144 move second child to first child (temp float) -0:144 'f1' (temp float) -0:144 noise (global float) -0:144 Constant: -0:144 1.000000 -0:145 Sequence -0:145 move second child to first child (temp 2-component vector of float) -0:145 'f2' (temp 2-component vector of float) -0:145 noise (global 2-component vector of float) -0:145 Constant: -0:145 1.000000 -0:145 1.000000 -0:146 Sequence -0:146 move second child to first child (temp 3-component vector of float) -0:146 'f3' (temp 3-component vector of float) -0:146 noise (global 3-component vector of float) -0:146 Constant: -0:146 1.000000 -0:146 1.000000 -0:146 1.000000 -0:147 Sequence -0:147 move second child to first child (temp 4-component vector of float) -0:147 'f4' (temp 4-component vector of float) -0:147 noise (global 4-component vector of float) -0:147 Constant: -0:147 1.000000 -0:147 1.000000 -0:147 1.000000 -0:147 1.000000 -0:162 Function Definition: foo213( (global void) -0:162 Function Parameters: -0:164 Sequence -0:164 Sequence -0:164 move second child to first child (temp float) -0:164 'f' (temp float) -0:164 Constant: -0:164 3.000000 -0:165 switch -0:165 condition -0:165 'c' (uniform int) -0:165 body -0:165 Sequence -0:166 case: with expression -0:166 Constant: -0:166 1 (const int) -0:? Sequence -0:167 move second child to first child (temp float) -0:167 'f' (temp float) -0:167 sine (global float) -0:167 'f' (temp float) -0:168 Branch: Break -0:169 case: with expression -0:169 Constant: -0:169 2 (const int) -0:? Sequence -0:170 move second child to first child (temp float) -0:170 'f' (temp float) -0:170 component-wise multiply (temp float) -0:170 'f' (temp float) -0:170 'f' (temp float) -0:171 default: -0:? Sequence -0:172 move second child to first child (temp float) -0:172 'f' (temp float) -0:172 Constant: -0:172 3.000000 -0:176 inclusive-or (temp int) -0:176 left-shift (temp int) -0:176 'i' (temp int) -0:176 Constant: -0:176 3 (const int) -0:176 Constant: -0:176 69 (const int) -0:180 Sequence -0:180 move second child to first child (temp float) -0:180 't' (temp float) -0:180 Constant: -0:180 0.000000 -0:186 Constant: -0:186 0.000000 -0:188 Constant: -0:188 0.000000 -0:189 Constant: -0:189 0.000000 -0:192 move second child to first child (temp float) -0:192 Constant: -0:192 0.000000 -0:192 Constant: -0:192 0.300000 0:? Linker Objects 0:? 'i' (in 4-component vector of float) 0:? 'o' (smooth out 4-component vector of float) @@ -772,7 +492,6 @@ ERROR: node is still EOpNull! 0:? 'concall' (const float) 0:? 0.295520 0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth out 35-element array of 4-component vector of float TexCoord) 0:? 'c' (uniform int) 0:? 'x' (in 2-component vector of int) 0:? 'v2a' (in 2-component vector of float) @@ -780,5 +499,6 @@ ERROR: node is still EOpNull! 0:? 'c2D' (in 2-component vector of float) 0:? 'c3D' (in 3-component vector of float) 0:? 'v4' (uniform 4-component vector of float) -0:? 'abc' (global int) +0:? 'abcdef' (global int) +0:? 'qrstuv' (global int) diff --git a/Test/baseResults/130.frag.out b/Test/baseResults/130.frag.out index b2b4dd06567c9291ccf8859088cf18c7026ccb3c..e71b3e28e38dbfaf53e7be4b29276581244758d6 100644 --- a/Test/baseResults/130.frag.out +++ b/Test/baseResults/130.frag.out @@ -383,8 +383,7 @@ ERROR: node is still EOpNull! 0:? 'fnop' (noperspective in float) 0:? 'gl_ClipDistance' (smooth in implicitly-sized array of float ClipDistance) 0:? 'sampC' (uniform samplerCube) -0:? 'gl_Color' (smooth in 4-component vector of float Color) -0:? 'gl_Color' (flat in 4-component vector of float Color) +0:? 'gl_Color' (in 4-component vector of float Color) 0:? 'samp2D' (uniform sampler2D) 0:? 'samp2DS' (uniform sampler2DShadow) 0:? 'samp2DR' (uniform sampler2DRect) @@ -428,326 +427,6 @@ ERROR: node is still EOpNull! 0:18 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance) 0:18 Constant: 0:18 3 (const int) -0:23 Function Definition: foo( (global void) -0:23 Function Parameters: -0:25 Sequence -0:25 Sequence -0:25 move second child to first child (temp 4-component vector of float) -0:25 's' (temp 4-component vector of float) -0:25 textureGather (global 4-component vector of float) -0:25 'sampC' (uniform samplerCube) -0:25 Constant: -0:25 0.200000 -0:25 0.200000 -0:25 0.200000 -0:30 Function Definition: bar( (global void) -0:30 Function Parameters: -0:32 Sequence -0:32 Sequence -0:32 move second child to first child (temp 4-component vector of float) -0:32 's' (temp 4-component vector of float) -0:32 textureGather (global 4-component vector of float) -0:32 'sampC' (uniform samplerCube) -0:32 Constant: -0:32 0.200000 -0:32 0.200000 -0:32 0.200000 -0:43 Function Definition: bar2( (global void) -0:43 Function Parameters: -0:45 Sequence -0:45 Sequence -0:45 move second child to first child (temp 4-component vector of float) -0:45 's' (temp 4-component vector of float) -0:45 textureGather (global 4-component vector of float) -0:45 'sampC' (uniform samplerCube) -0:45 Constant: -0:45 0.200000 -0:45 0.200000 -0:45 0.200000 -0:49 move second child to first child (temp 3-component vector of bool) -0:49 'b3' (temp 3-component vector of bool) -0:49 Compare Less Than (global 3-component vector of bool) -0:49 'uv3' (temp 3-component vector of uint) -0:49 'uv3' (temp 3-component vector of uint) -0:50 move second child to first child (temp 3-component vector of bool) -0:50 'b3' (temp 3-component vector of bool) -0:50 Equal (global 3-component vector of bool) -0:50 'uv3' (temp 3-component vector of uint) -0:50 'uv3' (temp 3-component vector of uint) -0:56 direct index (temp int) -0:56 'a1' (temp 1-element array of int) -0:56 Constant: -0:56 0 (const int) -0:57 direct index (temp int) -0:57 'a2' (temp 1-element array of int) -0:57 Constant: -0:57 0 (const int) -0:60 direct index (temp int) -0:60 'a3' (temp 4-element array of int) -0:60 Constant: -0:60 3 (const int) -0:61 Compare Not Equal (temp bool) -0:61 'b3' (temp 3-component vector of bool) -0:61 'b3' (temp 3-component vector of bool) -0:62 Constant: -0:62 false (const bool) -0:63 Constant: -0:63 false (const bool) -0:64 Constant: -0:64 false (const bool) -0:65 Constant: -0:65 true (const bool) -0:66 Constant: -0:66 false (const bool) -0:77 Function Definition: bar23( (global void) -0:77 Function Parameters: -0:? Sequence -0:80 's' (temp 4-component vector of float) -0:81 move second child to first child (temp 4-component vector of float) -0:81 's' (temp 4-component vector of float) -0:81 textureGatherOffset (global 4-component vector of float) -0:81 'samp2DR' (uniform sampler2DRect) -0:81 Constant: -0:81 0.300000 -0:81 0.300000 -0:81 Constant: -0:81 1 (const int) -0:81 1 (const int) -0:82 move second child to first child (temp 4-component vector of float) -0:82 's' (temp 4-component vector of float) -0:82 textureGatherOffset (global 4-component vector of float) -0:82 'samp2D' (uniform sampler2D) -0:82 Constant: -0:82 0.300000 -0:82 0.300000 -0:82 Constant: -0:82 1 (const int) -0:82 1 (const int) -0:83 move second child to first child (temp 4-component vector of float) -0:83 's' (temp 4-component vector of float) -0:83 textureGatherOffset (global 4-component vector of float) -0:83 'samp2DA' (uniform sampler2DArray) -0:83 Constant: -0:83 0.300000 -0:83 0.300000 -0:83 0.300000 -0:83 Constant: -0:83 1 (const int) -0:83 1 (const int) -0:84 move second child to first child (temp 4-component vector of float) -0:84 's' (temp 4-component vector of float) -0:84 textureGatherOffset (global 4-component vector of float) -0:84 'samp2DS' (uniform sampler2DShadow) -0:84 Constant: -0:84 0.300000 -0:84 0.300000 -0:84 Constant: -0:84 1.300000 -0:84 Constant: -0:84 1 (const int) -0:84 1 (const int) -0:85 move second child to first child (temp 4-component vector of float) -0:85 's' (temp 4-component vector of float) -0:85 textureGatherOffset (global 4-component vector of float) -0:85 'samp2D' (uniform sampler2D) -0:85 Constant: -0:85 0.300000 -0:85 0.300000 -0:85 Constant: -0:85 1 (const int) -0:85 1 (const int) -0:85 Constant: -0:85 2 (const int) -0:90 Function Definition: bar234( (global void) -0:90 Function Parameters: -0:? Sequence -0:93 move second child to first child (temp 4-component vector of float) -0:93 's' (temp 4-component vector of float) -0:93 textureGatherOffset (global 4-component vector of float) -0:93 'samp2D' (uniform sampler2D) -0:93 Constant: -0:93 0.300000 -0:93 0.300000 -0:93 Constant: -0:93 1 (const int) -0:93 1 (const int) -0:94 move second child to first child (temp 4-component vector of float) -0:94 's' (temp 4-component vector of float) -0:94 textureGatherOffset (global 4-component vector of float) -0:94 'samp2DA' (uniform sampler2DArray) -0:94 Constant: -0:94 0.300000 -0:94 0.300000 -0:94 0.300000 -0:94 Constant: -0:94 1 (const int) -0:94 1 (const int) -0:95 move second child to first child (temp 4-component vector of float) -0:95 's' (temp 4-component vector of float) -0:95 textureGatherOffset (global 4-component vector of float) -0:95 'samp2DR' (uniform sampler2DRect) -0:95 Constant: -0:95 0.300000 -0:95 0.300000 -0:95 Constant: -0:95 1 (const int) -0:95 1 (const int) -0:96 move second child to first child (temp 4-component vector of float) -0:96 's' (temp 4-component vector of float) -0:96 textureGatherOffset (global 4-component vector of float) -0:96 'samp2DS' (uniform sampler2DShadow) -0:96 Constant: -0:96 0.300000 -0:96 0.300000 -0:96 Constant: -0:96 1.300000 -0:96 Constant: -0:96 1 (const int) -0:96 1 (const int) -0:97 move second child to first child (temp 4-component vector of float) -0:97 's' (temp 4-component vector of float) -0:97 textureGatherOffset (global 4-component vector of float) -0:97 'samp2D' (uniform sampler2D) -0:97 Constant: -0:97 0.300000 -0:97 0.300000 -0:97 Constant: -0:97 1 (const int) -0:97 1 (const int) -0:97 Constant: -0:97 2 (const int) -0:107 Function Definition: bar235( (global void) -0:107 Function Parameters: -0:109 Sequence -0:109 Sequence -0:109 move second child to first child (temp 3-component vector of int) -0:109 'a' (temp 3-component vector of int) -0:109 textureSize (global 3-component vector of int) -0:109 'Sca' (uniform samplerCubeArray) -0:109 Constant: -0:109 3 (const int) -0:110 Sequence -0:110 move second child to first child (temp 4-component vector of float) -0:110 'b' (temp 4-component vector of float) -0:110 texture (global 4-component vector of float) -0:110 'Sca' (uniform samplerCubeArray) -0:110 'i' (smooth in 4-component vector of float) -0:111 Sequence -0:111 move second child to first child (temp 4-component vector of int) -0:111 'c' (temp 4-component vector of int) -0:111 texture (global 4-component vector of int) -0:111 'Isca' (uniform isamplerCubeArray) -0:111 'i' (smooth in 4-component vector of float) -0:111 Constant: -0:111 0.700000 -0:112 Sequence -0:112 move second child to first child (temp 4-component vector of uint) -0:112 'd' (temp 4-component vector of uint) -0:112 texture (global 4-component vector of uint) -0:112 'Usca' (uniform usamplerCubeArray) -0:112 'i' (smooth in 4-component vector of float) -0:114 move second child to first child (temp 4-component vector of float) -0:114 'b' (temp 4-component vector of float) -0:114 textureLod (global 4-component vector of float) -0:114 'Sca' (uniform samplerCubeArray) -0:114 'i' (smooth in 4-component vector of float) -0:114 Constant: -0:114 1.700000 -0:115 move second child to first child (temp 3-component vector of int) -0:115 'a' (temp 3-component vector of int) -0:115 textureSize (global 3-component vector of int) -0:115 'Scas' (uniform samplerCubeArrayShadow) -0:115 direct index (temp int) -0:115 'a' (temp 3-component vector of int) -0:115 Constant: -0:115 0 (const int) -0:116 Sequence -0:116 move second child to first child (temp float) -0:116 'f' (temp float) -0:116 texture (global float) -0:116 'Scas' (uniform samplerCubeArrayShadow) -0:116 'i' (smooth in 4-component vector of float) -0:116 direct index (temp float) -0:116 'b' (temp 4-component vector of float) -0:116 Constant: -0:116 1 (const int) -0:117 move second child to first child (temp 4-component vector of int) -0:117 'c' (temp 4-component vector of int) -0:117 textureGrad (global 4-component vector of int) -0:117 'Isca' (uniform isamplerCubeArray) -0:117 'i' (smooth in 4-component vector of float) -0:117 Constant: -0:117 0.100000 -0:117 0.100000 -0:117 0.100000 -0:117 Constant: -0:117 0.200000 -0:117 0.200000 -0:117 0.200000 -0:129 Function Definition: bar23444( (global void) -0:129 Function Parameters: -0:? Sequence -0:132 Sequence -0:132 move second child to first child (temp float) -0:132 'a1' (temp float) -0:132 direct index (temp float) -0:132 direct index (temp 3-component vector of float) -0:132 'm43' (temp 4X3 matrix of float) -0:132 Constant: -0:132 3 (const int) -0:132 Constant: -0:132 1 (const int) -0:134 Sequence -0:134 move second child to first child (temp int) -0:134 'a2' (temp int) -0:134 Constant: -0:134 4 (const int) -0:135 add second child into first child (temp int) -0:135 'a2' (temp int) -0:135 Constant: -0:135 3 (const int) -0:136 add second child into first child (temp int) -0:136 'a2' (temp int) -0:136 Constant: -0:136 3 (const int) -0:137 Sequence -0:137 move second child to first child (temp float) -0:137 'b' (const (read only) float) -0:137 component-wise multiply (temp float) -0:137 Constant: -0:137 2.000000 -0:137 'a1' (temp float) -0:138 move second child to first child (temp float) -0:138 direct index (temp float) -0:138 'a' (global 3-component vector of float) -0:138 Constant: -0:138 0 (const int) -0:138 Constant: -0:138 -1.000000 -0:140 Constant: -0:140 0.000000 -0:141 Constant: -0:141 0.000000 -0:143 Constant: -0:143 1 (const int) -0:162 Function Definition: qux2( (global void) -0:162 Function Parameters: -0:? Sequence -0:165 imageAtomicCompSwap (global int) -0:165 'iimg2D' (layout(r32i ) uniform iimage2D) -0:165 Construct ivec2 (temp 2-component vector of int) -0:165 'i' (temp int) -0:165 'i' (temp int) -0:165 'i' (temp int) -0:165 'i' (temp int) -0:166 Sequence -0:166 move second child to first child (temp 4-component vector of int) -0:166 'pos' (temp 4-component vector of int) -0:166 imageLoad (global 4-component vector of int) -0:166 'iimg2D' (layout(r32i ) uniform iimage2D) -0:166 Construct ivec2 (temp 2-component vector of int) -0:166 'i' (temp int) -0:166 'i' (temp int) 0:? Linker Objects 0:? 'a' (global 3-component vector of float) 0:? 'b' (global float) @@ -759,8 +438,7 @@ ERROR: node is still EOpNull! 0:? 'fnop' (noperspective in float) 0:? 'gl_ClipDistance' (smooth in 4-element array of float ClipDistance) 0:? 'sampC' (uniform samplerCube) -0:? 'gl_Color' (smooth in 4-component vector of float Color) -0:? 'gl_Color' (flat in 4-component vector of float Color) +0:? 'gl_Color' (in 4-component vector of float Color) 0:? 'samp2D' (uniform sampler2D) 0:? 'samp2DS' (uniform sampler2DShadow) 0:? 'samp2DR' (uniform sampler2DRect) diff --git a/Test/baseResults/130.vert.out b/Test/baseResults/130.vert.out index 7cfeb19d8e332cfb9add095edf186706ff3bb5e7..7ca32a13aa1cf0454df152fc0ae58d61c70e5683 100644 --- a/Test/baseResults/130.vert.out +++ b/Test/baseResults/130.vert.out @@ -3,9 +3,7 @@ ERROR: 0:59: 'gl_InstanceID' : undeclared identifier ERROR: 0:59: '=' : cannot convert from 'temp float' to 'temp int' ERROR: 0:61: 'texelFetch' : no matching overloaded function found ERROR: 0:61: 'assign' : cannot convert from 'const float' to 'temp int' -ERROR: 0:75: '##' : token pasting not implemented (internal error) -ERROR: 0:75: '' : syntax error -ERROR: 6 compilation errors. No code generated. +ERROR: 4 compilation errors. No code generated. Shader version: 130 @@ -149,7 +147,8 @@ ERROR: node is still EOpNull! 0:? 'v4' (uniform 4-component vector of float) 0:? 'gl_ClipDistance' (smooth out implicitly-sized array of float ClipDistance) 0:? 'gl_TexCoord' (smooth out implicitly-sized array of 4-component vector of float TexCoord) -0:? 'abc' (global int) +0:? 'abcdef' (global int) +0:? 'qrstuv' (global int) 0:? 'gl_VertexID' (gl_VertexId int VertexId) @@ -269,23 +268,6 @@ ERROR: node is still EOpNull! 0:46 1 (const int) 0:46 Constant: 0:46 0.300000 -0:57 Function Definition: foo88( (global void) -0:57 Function Parameters: -0:? Sequence -0:61 'id' (temp int) -0:63 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) -0:64 'gl_Color' (in 4-component vector of float Color) -0:65 direct index (temp structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation}) -0:65 'gl_LightSource' (uniform 32-element array of structure{global 4-component vector of float ambient, global 4-component vector of float diffuse, global 4-component vector of float specular, global 4-component vector of float position, global 4-component vector of float halfVector, global 3-component vector of float spotDirection, global float spotExponent, global float spotCutoff, global float spotCosCutoff, global float constantAttenuation, global float linearAttenuation, global float quadraticAttenuation}) -0:65 Constant: -0:65 0 (const int) -0:66 far: direct index for structure (global float) -0:66 'gl_DepthRange' (uniform structure{global float near, global float far, global float diff}) -0:66 Constant: -0:66 1 (const int) -0:67 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord) -0:68 'gl_FogFragCoord' (smooth out float FogFragCoord) -0:69 'gl_FrontColor' (smooth out 4-component vector of float FrontColor) 0:? Linker Objects 0:? 'c' (uniform int) 0:? 'us2D' (uniform usampler2D) @@ -298,6 +280,7 @@ ERROR: node is still EOpNull! 0:? 'v4' (uniform 4-component vector of float) 0:? 'gl_ClipDistance' (smooth out 2-element array of float ClipDistance) 0:? 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord) -0:? 'abc' (global int) +0:? 'abcdef' (global int) +0:? 'qrstuv' (global int) 0:? 'gl_VertexID' (gl_VertexId int VertexId) diff --git a/Test/baseResults/140.frag.out b/Test/baseResults/140.frag.out index fbeee83a7641f0527f941cb95d6d8ebefeb77a9a..224cd30d8e7bdca7fe5db6c14a5803d8f76e919d 100644 --- a/Test/baseResults/140.frag.out +++ b/Test/baseResults/140.frag.out @@ -104,7 +104,6 @@ ERROR: node is still EOpNull! 0:? 'i' (smooth in 4-component vector of float) 0:? 'o' (out 4-component vector of float) 0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance) -0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance) 0:? 's' (smooth in structure{global float f}) 0:? 'patch' (global float) 0:? 'vl' (layout(location=3 ) smooth in 4-component vector of float) @@ -137,51 +136,6 @@ ERROR: node is still EOpNull! 0:22 'patch' (global float) 0:22 Constant: 0:22 3.100000 -0:38 Function Definition: foo( (global void) -0:38 Function Parameters: -0:40 Sequence -0:40 Sequence -0:40 move second child to first child (temp 2-component vector of float) -0:40 'r1' (temp 2-component vector of float) -0:40 modf (global 2-component vector of float) -0:40 vector swizzle (temp 2-component vector of float) -0:40 'v' (smooth in 4-component vector of float) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:40 vector swizzle (temp 2-component vector of float) -0:40 'v' (smooth in 4-component vector of float) -0:40 Sequence -0:40 Constant: -0:40 2 (const int) -0:40 Constant: -0:40 3 (const int) -0:41 Sequence -0:41 move second child to first child (temp 2-component vector of float) -0:41 'r2' (temp 2-component vector of float) -0:41 modf (global 2-component vector of float) -0:41 vector swizzle (temp 2-component vector of float) -0:41 'o' (out 4-component vector of float) -0:41 Sequence -0:41 Constant: -0:41 0 (const int) -0:41 Constant: -0:41 1 (const int) -0:41 vector swizzle (temp 2-component vector of float) -0:41 'o' (out 4-component vector of float) -0:41 Sequence -0:41 Constant: -0:41 2 (const int) -0:41 Constant: -0:41 3 (const int) -0:42 move second child to first child (temp float) -0:42 direct index (temp float) -0:42 'o' (out 4-component vector of float) -0:42 Constant: -0:42 2 (const int) -0:42 Function Call: fooi( (global float) 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'i1' (global float) @@ -199,19 +153,11 @@ ERROR: node is still EOpNull! 0:48 'i2' (global float) 0:48 Constant: 0:48 102.000000 -0:50 Function Definition: fooi( (global float) -0:50 Function Parameters: -0:52 Sequence -0:52 Branch: Return with expression -0:52 add (temp float) -0:52 'i1' (global float) -0:52 'i2' (global float) 0:? Linker Objects 0:? 'v' (smooth in 4-component vector of float) 0:? 'i' (smooth in 4-component vector of float) 0:? 'o' (out 4-component vector of float) 0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance) -0:? 'gl_ClipDistance' (smooth in 5-element array of float ClipDistance) 0:? 's' (smooth in structure{global float f}) 0:? 'patch' (global float) 0:? 'vl' (layout(location=3 ) smooth in 4-component vector of float) diff --git a/Test/baseResults/140.vert.out b/Test/baseResults/140.vert.out index 634458cd11dfb1268544b4751483f5a87ba8843a..e7f88e320750fa7512346f9c34d95fea9093a7c0 100644 --- a/Test/baseResults/140.vert.out +++ b/Test/baseResults/140.vert.out @@ -124,11 +124,8 @@ ERROR: node is still EOpNull! 0:? 'locBad' (layout(location=9 ) in 4-component vector of float) 0:? 'loc' (layout(location=9 ) in 4-component vector of float) 0:? 'gl_PointSize' (gl_PointSize float PointSize) -0:? 'gl_PointSize' (gl_PointSize float PointSize) -0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) 0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) 0:? 'gl_FogFragCoord' (smooth out float FogFragCoord) -0:? 'gl_FogFragCoord' (smooth out float FogFragCoord) 0:? 's2dr' (uniform sampler2DRect) 0:? 's2drs' (uniform sampler2DRectShadow) 0:? 'itloc2' (in 2-component vector of int) @@ -181,71 +178,6 @@ ERROR: node is still EOpNull! 0:18 'gl_TexCoord' (smooth out 1-element array of 4-component vector of float TexCoord) 0:19 'gl_FogFragCoord' (smooth out float FogFragCoord) 0:20 'gl_FrontColor' (smooth out 4-component vector of float FrontColor) -0:48 Function Definition: foo( (global void) -0:48 Function Parameters: -0:50 Sequence -0:50 Sequence -0:50 move second child to first child (temp 4-component vector of float) -0:50 'v' (temp 4-component vector of float) -0:50 textureFetch (global 4-component vector of float) -0:50 's2dr' (uniform sampler2DRect) -0:50 'itloc2' (in 2-component vector of int) -0:51 add second child into first child (temp 4-component vector of float) -0:51 'v' (temp 4-component vector of float) -0:51 Constant: -0:51 0.000000 -0:52 add second child into first child (temp 4-component vector of float) -0:52 'v' (temp 4-component vector of float) -0:52 texture (global 4-component vector of float) -0:52 's2dr' (uniform sampler2DRect) -0:52 'tloc2' (in 2-component vector of float) -0:53 add second child into first child (temp 4-component vector of float) -0:53 'v' (temp 4-component vector of float) -0:53 Constant: -0:53 0.000000 -0:54 add second child into first child (temp 4-component vector of float) -0:54 'v' (temp 4-component vector of float) -0:54 texture (global float) -0:54 's2drs' (uniform sampler2DRectShadow) -0:54 'tloc3' (in 3-component vector of float) -0:55 add second child into first child (temp 4-component vector of float) -0:55 'v' (temp 4-component vector of float) -0:55 textureProj (global 4-component vector of float) -0:55 's2dr' (uniform sampler2DRect) -0:55 'tloc3' (in 3-component vector of float) -0:56 add second child into first child (temp 4-component vector of float) -0:56 'v' (temp 4-component vector of float) -0:56 textureProj (global 4-component vector of float) -0:56 's2dr' (uniform sampler2DRect) -0:56 'tloc4' (in 4-component vector of float) -0:57 add second child into first child (temp 4-component vector of float) -0:57 'v' (temp 4-component vector of float) -0:57 textureProjGradOffset (global 4-component vector of float) -0:57 's2dr' (uniform sampler2DRect) -0:57 'tloc4' (in 4-component vector of float) -0:57 Constant: -0:57 0.000000 -0:57 0.000000 -0:57 Constant: -0:57 0.000000 -0:57 0.000000 -0:57 Constant: -0:57 1 (const int) -0:57 2 (const int) -0:58 add second child into first child (temp 4-component vector of float) -0:58 'v' (temp 4-component vector of float) -0:58 textureProjGradOffset (global float) -0:58 's2drs' (uniform sampler2DRectShadow) -0:58 'tloc4' (in 4-component vector of float) -0:58 Constant: -0:58 0.000000 -0:58 0.000000 -0:58 Constant: -0:58 0.000000 -0:58 0.000000 -0:58 Constant: -0:58 1 (const int) -0:58 2 (const int) 0:? Linker Objects 0:? 'sbuf' (uniform isamplerBuffer) 0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 offset=0 ) uniform int anonMem}) @@ -254,10 +186,7 @@ ERROR: node is still EOpNull! 0:? 'locBad' (layout(location=9 ) in 4-component vector of float) 0:? 'loc' (layout(location=9 ) in 4-component vector of float) 0:? 'gl_PointSize' (gl_PointSize float PointSize) -0:? 'gl_PointSize' (gl_PointSize float PointSize) 0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) -0:? 'gl_ClipVertex' (gl_ClipVertex 4-component vector of float ClipVertex) -0:? 'gl_FogFragCoord' (smooth out float FogFragCoord) 0:? 'gl_FogFragCoord' (smooth out float FogFragCoord) 0:? 's2dr' (uniform sampler2DRect) 0:? 's2drs' (uniform sampler2DRectShadow) diff --git a/Test/baseResults/150.frag.out b/Test/baseResults/150.frag.out index 082a8274c00717f28df55309da2f9748e051b379..143de3b5a15dc67d940776d554709a03a5f6e3ac 100644 --- a/Test/baseResults/150.frag.out +++ b/Test/baseResults/150.frag.out @@ -108,7 +108,6 @@ ERROR: node is still EOpNull! 0:49 'gl_PrimitiveID' (flat in int PrimitiveID) 0:? Linker Objects 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'foo' (smooth in 4-component vector of float) 0:? 's' (smooth in structure{global float f}) 0:? 'patch' (global float) @@ -142,93 +141,8 @@ ERROR: node is still EOpNull! 0:18 'patch' (global float) 0:18 Constant: 0:18 3.100000 -0:31 Function Definition: barWxyz( (global void) -0:31 Function Parameters: -0:33 Sequence -0:33 Sequence -0:33 move second child to first child (temp 2-component vector of int) -0:33 't11' (temp 2-component vector of int) -0:33 textureSize (global 2-component vector of int) -0:33 'sms' (uniform sampler2DMS) -0:34 Sequence -0:34 move second child to first child (temp 2-component vector of int) -0:34 't12' (temp 2-component vector of int) -0:34 textureSize (global 2-component vector of int) -0:34 'isms' (uniform isampler2DMS) -0:35 Sequence -0:35 move second child to first child (temp 2-component vector of int) -0:35 't13' (temp 2-component vector of int) -0:35 textureSize (global 2-component vector of int) -0:35 'usms' (uniform usampler2DMS) -0:36 Sequence -0:36 move second child to first child (temp 3-component vector of int) -0:36 't21' (temp 3-component vector of int) -0:36 textureSize (global 3-component vector of int) -0:36 'smsa' (uniform sampler2DMSArray) -0:37 Sequence -0:37 move second child to first child (temp 3-component vector of int) -0:37 't22' (temp 3-component vector of int) -0:37 textureSize (global 3-component vector of int) -0:37 'ismsa' (uniform isampler2DMSArray) -0:38 Sequence -0:38 move second child to first child (temp 3-component vector of int) -0:38 't23' (temp 3-component vector of int) -0:38 textureSize (global 3-component vector of int) -0:38 'usmsa' (uniform usampler2DMSArray) -0:39 Sequence -0:39 move second child to first child (temp 4-component vector of float) -0:39 't31' (temp 4-component vector of float) -0:39 textureFetch (global 4-component vector of float) -0:39 'sms' (uniform sampler2DMS) -0:39 'p2' (flat in 2-component vector of int) -0:39 'samp' (flat in int) -0:40 Sequence -0:40 move second child to first child (temp 4-component vector of int) -0:40 't32' (temp 4-component vector of int) -0:40 textureFetch (global 4-component vector of int) -0:40 'isms' (uniform isampler2DMS) -0:40 'p2' (flat in 2-component vector of int) -0:40 'samp' (flat in int) -0:41 Sequence -0:41 move second child to first child (temp 4-component vector of uint) -0:41 't33' (temp 4-component vector of uint) -0:41 textureFetch (global 4-component vector of uint) -0:41 'usms' (uniform usampler2DMS) -0:41 'p2' (flat in 2-component vector of int) -0:41 Constant: -0:41 3 (const int) -0:42 Sequence -0:42 move second child to first child (temp 4-component vector of float) -0:42 't41' (temp 4-component vector of float) -0:42 textureFetch (global 4-component vector of float) -0:42 'smsa' (uniform sampler2DMSArray) -0:42 'p3' (flat in 3-component vector of int) -0:42 'samp' (flat in int) -0:43 Sequence -0:43 move second child to first child (temp 4-component vector of int) -0:43 't42' (temp 4-component vector of int) -0:43 textureFetch (global 4-component vector of int) -0:43 'ismsa' (uniform isampler2DMSArray) -0:43 Constant: -0:43 2 (const int) -0:43 2 (const int) -0:43 2 (const int) -0:43 'samp' (flat in int) -0:44 Sequence -0:44 move second child to first child (temp 4-component vector of uint) -0:44 't43' (temp 4-component vector of uint) -0:44 textureFetch (global 4-component vector of uint) -0:44 'usmsa' (uniform usampler2DMSArray) -0:44 'p3' (flat in 3-component vector of int) -0:44 'samp' (flat in int) -0:47 Function Definition: primitiveID( (global int) -0:47 Function Parameters: -0:49 Sequence -0:49 Branch: Return with expression -0:49 'gl_PrimitiveID' (flat in int PrimitiveID) 0:? Linker Objects 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'foo' (smooth in 4-component vector of float) 0:? 's' (smooth in structure{global float f}) 0:? 'patch' (global float) diff --git a/Test/baseResults/150.geom.out b/Test/baseResults/150.geom.out index 48b7925fc4d0410d0b7c65bbf24f9eab3c0f360f..dc5a41a27b9383a4646b97f4cb2efeefd050184a 100644 --- a/Test/baseResults/150.geom.out +++ b/Test/baseResults/150.geom.out @@ -255,39 +255,11 @@ ERROR: node is still EOpNull! 0:37 'gl_Layer' (layout(stream=0 ) out int Layer) 0:37 Constant: 0:37 2 (const int) -0:67 Function Definition: foo(i1; (global void) -0:67 Function Parameters: -0:67 'a' (in int) -0:69 Sequence -0:69 move second child to first child (temp 4-component vector of float) -0:69 a: direct index for structure (layout(stream=6 ) out 4-component vector of float) -0:69 'ouuaa6' (layout(stream=6 ) out block{layout(stream=6 ) out 4-component vector of float a}) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1.000000 -0:69 1.000000 -0:69 1.000000 -0:69 1.000000 0:107 Sequence 0:107 move second child to first child (temp float) 0:107 'summ' (global float) 0:107 Constant: 0:107 11332.000000 -0:127 Function Definition: fooe1( (global void) -0:127 Function Parameters: -0:129 Sequence -0:129 move second child to first child (temp int) -0:129 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex) -0:129 Constant: -0:129 15 (const int) -0:134 Function Definition: fooe2( (global void) -0:134 Function Parameters: -0:136 Sequence -0:136 move second child to first child (temp int) -0:136 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex) -0:136 Constant: -0:136 15 (const int) 0:? Linker Objects 0:? 'fromV' (in 4-element array of block{in 3-component vector of float color}) 0:? 'toF' (layout(stream=0 ) out block{layout(stream=0 ) out 3-component vector of float color}) diff --git a/Test/baseResults/150.tesc.out b/Test/baseResults/150.tesc.out index 1736bf0e3ffd280759909f3ed7867b2e36952579..21fade77b967c962701f34c58736f17d0f6d98c8 100644 --- a/Test/baseResults/150.tesc.out +++ b/Test/baseResults/150.tesc.out @@ -910,8 +910,10 @@ ERROR: node is still EOpNull! Linked tessellation control stage: +ERROR: Linking tessellation control stage: can't handle multiple entry points per stage ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( +ERROR: Linking tessellation control stage: can't handle multiple entry points per stage ERROR: Linking tessellation control stage: Contradictory layout vertices values ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( @@ -921,6 +923,7 @@ ERROR: Linking tessellation control stage: Types must match: gl_out: "out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" versus "out implicitly-sized array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance}" ERROR: Linking tessellation control stage: Types must match: outa: "global 4-element array of int" versus "global 1-element array of int" +ERROR: Linking tessellation control stage: can't handle multiple entry points per stage ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( ERROR: Linking tessellation control stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: @@ -934,8 +937,10 @@ ERROR: Linking tessellation control stage: Types must match: Linked tessellation evaluation stage: +ERROR: Linking tessellation evaluation stage: can't handle multiple entry points per stage ERROR: Linking tessellation evaluation stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( +ERROR: Linking tessellation evaluation stage: can't handle multiple entry points per stage ERROR: Linking tessellation evaluation stage: Contradictory input layout primitives ERROR: Linking tessellation evaluation stage: Contradictory input vertex spacing ERROR: Linking tessellation evaluation stage: Contradictory triangle ordering @@ -1184,35 +1189,6 @@ vertices = 4 0:56 Barrier (global void) 0:59 Branch: Return 0:61 Barrier (global void) -0:67 Function Definition: foo( (global void) -0:67 Function Parameters: -0:69 Sequence -0:69 gl_PointSize: direct index for structure (out float PointSize) -0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) -0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) -0:69 Constant: -0:69 4 (const int) -0:69 Constant: -0:69 1 (const int) -0:71 Barrier (global void) -0:91 Function Definition: foop( (global void) -0:91 Function Parameters: -0:? Sequence -0:95 multiply second child into first child (temp 3-component vector of float) -0:95 'pv3' (noContraction temp 3-component vector of float) -0:95 'pv3' (noContraction temp 3-component vector of float) -0:96 move second child to first child (temp 3-component vector of float) -0:96 'pv3' (noContraction temp 3-component vector of float) -0:96 fma (global 3-component vector of float) -0:96 'pv3' (noContraction temp 3-component vector of float) -0:96 'pv3' (noContraction temp 3-component vector of float) -0:96 'pv3' (noContraction temp 3-component vector of float) -0:97 move second child to first child (temp double) -0:97 'd' (noContraction temp double) -0:97 fma (global double) -0:97 'd' (noContraction temp double) -0:97 'd' (noContraction temp double) -0:97 'd' (noContraction temp double) 0:8 Function Definition: main( (global void) 0:8 Function Parameters: 0:15 Function Definition: main( (global void) @@ -1274,41 +1250,6 @@ vertices = 4 0:26 indirect index (temp block{out 4-component vector of float Position gl_Position}) 0:26 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position}) 0:26 'gl_InvocationID' (in int InvocationID) -0:34 Function Definition: foo( (global void) -0:34 Function Parameters: -0:36 Sequence -0:36 Test condition and select (temp void) -0:36 Condition -0:36 logical-or (temp bool) -0:36 Compare Not Equal (temp bool) -0:36 Constant: -0:36 -0.625000 -0:36 -0.500000 -0:36 -0.375000 -0:36 -0.250000 -0:36 -0.375000 -0:36 -0.250000 -0:36 -0.125000 -0:36 0.000000 -0:36 direct index (layout(location=0 ) temp 2X4 matrix of double) -0:36 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double) -0:36 Constant: -0:36 0 (const int) -0:37 Compare Not Equal (temp bool) -0:37 Constant: -0:37 0.375000 -0:37 0.500000 -0:37 0.625000 -0:37 0.750000 -0:37 0.625000 -0:37 0.750000 -0:37 0.875000 -0:37 -0.625000 -0:37 direct index (layout(location=12 ) temp 2X4 matrix of double) -0:37 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double) -0:37 Constant: -0:37 0 (const int) -0:36 true case is null 0:? Linker Objects 0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:? 'outa' (global 4-element array of int) diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out index 2a3341ac7483d07fff3a987c65d511ac52e19736..cca6abd7efb4baa618284ac82c2502486f900096 100644 --- a/Test/baseResults/300.frag.out +++ b/Test/baseResults/300.frag.out @@ -28,7 +28,7 @@ ERROR: 0:102: 'arrays of arrays' : not supported for this version or the enabled ERROR: 0:103: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:100: 'arrays of arrays' : not supported for this version or the enabled extensions ERROR: 0:100: 'array-of-array of block' : not supported with this profile: es -ERROR: 0:111: 'variable indexing fragment shader ouput array' : not supported with this profile: es +ERROR: 0:111: 'variable indexing fragment shader output array' : not supported with this profile: es ERROR: 0:119: '==' : can't use with samplers or structs containing samplers ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers ERROR: 0:121: '==' : can't use with samplers or structs containing samplers @@ -592,131 +592,6 @@ ERROR: node is still EOpNull! 0:96 'c4D' (smooth temp lowp 4-component vector of float) 0:97 arc hyp. tangent (global lowp 3-component vector of float) 0:97 'c3D' (smooth in lowp 3-component vector of float) -0:108 Function Definition: foo( (global void) -0:108 Function Parameters: -0:110 Sequence -0:110 move second child to first child (temp lowp 4-component vector of float) -0:110 direct index (temp lowp 4-component vector of float) -0:110 'colors' (out 4-element array of lowp 4-component vector of float) -0:110 Constant: -0:110 2 (const int) -0:110 'c4D' (smooth temp lowp 4-component vector of float) -0:111 move second child to first child (temp lowp 4-component vector of float) -0:111 indirect index (temp lowp 4-component vector of float) -0:111 'colors' (out 4-element array of lowp 4-component vector of float) -0:111 'ic1D' (flat in mediump int) -0:111 'c4D' (smooth temp lowp 4-component vector of float) -0:117 Function Definition: foo13(struct-s-i1-s211; (global void) -0:117 Function Parameters: -0:117 'inSt2' (in structure{global mediump int i, global lowp sampler2D s}) -0:119 Sequence -0:119 Test condition and select (temp void) -0:119 Condition -0:119 Compare Equal (temp bool) -0:119 'st1' (uniform structure{global mediump int i, global lowp sampler2D s}) -0:119 'st2' (uniform structure{global mediump int i, global lowp sampler2D s}) -0:119 true case is null -0:120 Test condition and select (temp void) -0:120 Condition -0:120 Compare Not Equal (temp bool) -0:120 'st1' (uniform structure{global mediump int i, global lowp sampler2D s}) -0:120 'st2' (uniform structure{global mediump int i, global lowp sampler2D s}) -0:120 true case is null -0:121 Constant: -0:121 false (const bool) -0:122 move second child to first child (temp structure{global mediump int i, global lowp sampler2D s}) -0:122 'inSt2' (in structure{global mediump int i, global lowp sampler2D s}) -0:122 'st1' (uniform structure{global mediump int i, global lowp sampler2D s}) -0:123 Compare Equal (temp bool) -0:123 'inSt2' (in structure{global mediump int i, global lowp sampler2D s}) -0:123 'st1' (uniform structure{global mediump int i, global lowp sampler2D s}) -0:126 Function Definition: foo23( (global void) -0:126 Function Parameters: -0:128 Sequence -0:128 textureOffset (global lowp float) -0:128 's2DShadow' (uniform lowp sampler2DShadow) -0:128 'c3D' (smooth in lowp 3-component vector of float) -0:128 Constant: -0:128 -8 (const int) -0:128 7 (const int) -0:128 'c1D' (smooth in lowp float) -0:129 textureOffset (global lowp float) -0:129 's2DShadow' (uniform lowp sampler2DShadow) -0:129 'c3D' (smooth in lowp 3-component vector of float) -0:129 Constant: -0:129 -9 (const int) -0:129 8 (const int) -0:129 'c1D' (smooth in lowp float) -0:132 Function Definition: foo324( (global void) -0:132 Function Parameters: -0:134 Sequence -0:134 Sequence -0:134 move second child to first child (temp lowp float) -0:134 'p' (temp lowp float) -0:134 Constant: -0:134 210.712306 -0:135 add second child into first child (temp lowp float) -0:135 'p' (temp lowp float) -0:135 Constant: -0:135 0.389418 -0:136 add second child into first child (temp lowp float) -0:136 'p' (temp lowp float) -0:136 Constant: -0:136 5.000000 -0:137 add second child into first child (temp lowp float) -0:137 'p' (temp lowp float) -0:137 Constant: -0:137 13.000000 -0:138 Sequence -0:138 move second child to first child (temp lowp 3-component vector of float) -0:138 'c3' (temp lowp 3-component vector of float) -0:138 Constant: -0:138 -15.000000 -0:138 -2.000000 -0:138 39.000000 -0:139 add second child into first child (temp lowp 3-component vector of float) -0:139 'c3' (temp lowp 3-component vector of float) -0:139 Constant: -0:139 -1.000000 -0:139 -2.000000 -0:139 -3.000000 -0:140 add second child into first child (temp lowp 3-component vector of float) -0:140 'c3' (temp lowp 3-component vector of float) -0:140 Constant: -0:140 1.000000 -0:140 2.000000 -0:140 3.000000 -0:141 Sequence -0:141 move second child to first child (temp lowp 2-component vector of float) -0:141 'c2' (temp lowp 2-component vector of float) -0:141 Constant: -0:141 1.000000 -0:141 -3.000000 -0:142 add second child into first child (temp lowp 2-component vector of float) -0:142 'c2' (temp lowp 2-component vector of float) -0:142 Constant: -0:142 1.000000 -0:142 -3.000000 -0:143 add second child into first child (temp lowp 2-component vector of float) -0:143 'c2' (temp lowp 2-component vector of float) -0:143 Constant: -0:143 3.000000 -0:143 -8.544004 -0:144 add second child into first child (temp lowp 2-component vector of float) -0:144 'c2' (temp lowp 2-component vector of float) -0:144 Constant: -0:144 0.000000 -0:144 0.000000 -0:145 Sequence -0:145 move second child to first child (temp lowp 3X2 matrix of float) -0:145 'm32' (temp lowp 3X2 matrix of float) -0:145 Constant: -0:145 10.000000 -0:145 15.000000 -0:145 14.000000 -0:145 21.000000 -0:145 22.000000 -0:145 33.000000 0:? Linker Objects 0:? 's2D' (uniform lowp sampler2D) 0:? 's3D' (uniform lowp sampler3D) diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out index 66a06517d363c900baad0a89b58c4f032ec13003..5f060cba8e6d0f0f5873f3d833a32bf8c506b63e 100644 --- a/Test/baseResults/300.vert.out +++ b/Test/baseResults/300.vert.out @@ -9,7 +9,7 @@ ERROR: 0:12: '' : vertex input cannot be further qualified ERROR: 0:13: '' : interpolation qualifiers must appear before storage and precision qualifiers ERROR: 0:14: '' : in/out must appear before const ERROR: 0:15: '' : precision qualifier must appear as last qualifier -ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective) +ERROR: 0:16: '' : can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD) ERROR: 0:17: 'sample' : Reserved word. ERROR: 0:17: '' : can only have one auxiliary qualifier (centroid, patch, and sample) ERROR: 0:18: 'uniform' : too many storage qualifiers @@ -308,9 +308,9 @@ ERROR: node is still EOpNull! 0:? 'badsize2' (global implicitly-sized array of highp float) 0:? 'ubInst' (layout(column_major shared ) uniform implicitly-sized array of block{layout(column_major shared ) uniform implicitly-sized array of highp int a}) 0:? 'okayA' (global 2-element array of highp float) -0:? 'newV' (smooth out highp 3-component vector of float) -0:? 'invIn' (in highp 4-component vector of float) -0:? 's2' (smooth out structure{global highp 3-component vector of float c, global highp float f}) +0:? 'newV' (invariant smooth out highp 3-component vector of float) +0:? 'invIn' (invariant in highp 4-component vector of float) +0:? 's2' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f}) 0:? 's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f}) 0:? 'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f}) 0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23}) @@ -447,132 +447,6 @@ ERROR: node is still EOpNull! 0:68 Constant: 0:68 3.000000 0:68 4.000000 -0:71 Function Definition: newVFun( (global void) -0:71 Function Parameters: -0:73 Sequence -0:73 move second child to first child (temp highp 3-component vector of float) -0:73 'newV' (smooth out highp 3-component vector of float) -0:73 'v3' (in highp 3-component vector of float) -0:118 Function Definition: foo23( (global void) -0:118 Function Parameters: -0:120 Sequence -0:120 Sequence -0:120 move second child to first child (temp highp 2-component vector of int) -0:120 'x1' (temp highp 2-component vector of int) -0:120 textureSize (global highp 2-component vector of int, operation at lowp) -0:120 's2D' (uniform lowp sampler2D) -0:120 Constant: -0:120 2 (const int) -0:121 Constant: -0:121 0.000000 -0:122 Sequence -0:122 move second child to first child (temp highp 3-component vector of int) -0:122 'x3' (temp highp 3-component vector of int) -0:122 textureSize (global highp 3-component vector of int, operation at lowp) -0:122 's2DAS' (uniform lowp sampler2DArrayShadow) -0:122 Constant: -0:122 -1 (const int) -0:123 Constant: -0:123 0.000000 -0:124 Sequence -0:124 move second child to first child (temp highp 4-component vector of float) -0:124 'x4' (temp highp 4-component vector of float) -0:124 texture (global lowp 4-component vector of float, operation at highp) -0:124 's2D' (uniform lowp sampler2D) -0:124 'c2D' (in highp 2-component vector of float) -0:125 Constant: -0:125 0.000000 -0:126 Sequence -0:126 move second child to first child (temp highp 4-component vector of float) -0:126 'x5' (temp highp 4-component vector of float) -0:126 textureProjOffset (global lowp 4-component vector of float) -0:126 's3D' (uniform lowp sampler3D) -0:126 Constant: -0:126 0.200000 -0:126 0.200000 -0:126 0.200000 -0:126 0.200000 -0:126 Constant: -0:126 1 (const int) -0:126 1 (const int) -0:126 1 (const int) -0:127 Constant: -0:127 0.000000 -0:128 Sequence -0:128 move second child to first child (temp highp float) -0:128 'x6' (temp highp float) -0:128 textureProjGradOffset (global lowp float, operation at highp) -0:128 's2DS' (uniform lowp sampler2DShadow) -0:128 'invIn' (invariant in highp 4-component vector of float) -0:128 Constant: -0:128 4.200000 -0:128 4.200000 -0:128 Constant: -0:128 5.300000 -0:128 5.300000 -0:128 Constant: -0:128 1 (const int) -0:128 1 (const int) -0:137 Function Definition: foo2349( (global void) -0:137 Function Parameters: -0:139 Sequence -0:139 Sequence -0:139 move second child to first child (temp 3-element array of highp float) -0:139 'x' (temp 3-element array of highp float) -0:139 Constant: -0:139 1.000000 -0:139 2.000000 -0:139 3.000000 -0:140 Sequence -0:140 move second child to first child (temp 3-element array of highp float) -0:140 'y' (temp 3-element array of highp float) -0:140 'x' (temp 3-element array of highp float) -0:141 Sequence -0:141 move second child to first child (temp 3-element array of highp float) -0:141 'z' (temp 3-element array of highp float) -0:141 'x' (temp 3-element array of highp float) -0:143 move second child to first child (temp 3-element array of highp float) -0:143 'w' (temp 3-element array of highp float) -0:143 'y' (temp 3-element array of highp float) -0:155 Function Definition: gggf(f1; (global highp int) -0:155 Function Parameters: -0:155 'f' (in highp float) -0:155 Sequence -0:155 Branch: Return with expression -0:155 Constant: -0:155 2 (const int) -0:158 Function Definition: agggf(f1; (global highp int) -0:158 Function Parameters: -0:158 'f' (in highp float) -0:158 Sequence -0:158 Branch: Return with expression -0:158 Constant: -0:158 2 (const int) -0:178 Function Definition: fooDeeparray( (global void) -0:178 Function Parameters: -0:181 Sequence -0:181 Sequence -0:180 move second child to first child (temp 3-element array of highp float) -0:180 'x' (temp 3-element array of highp float) -0:180 Constant: -0:180 1.000000 -0:180 2.000000 -0:180 3.000000 -0:181 move second child to first child (temp 4-element array of highp float) -0:181 'y' (temp 4-element array of highp float) -0:181 Constant: -0:181 1.000000 -0:181 2.000000 -0:181 3.000000 -0:181 4.000000 -0:183 move second child to first child (temp 3-element array of highp float) -0:183 'xp' (temp 3-element array of highp float) -0:183 'x' (temp 3-element array of highp float) -0:184 move second child to first child (temp 4-element array of highp float) -0:184 'yp' (temp 4-element array of highp float) -0:184 'y' (temp 4-element array of highp float) -0:185 'xp' (temp 3-element array of highp float) -0:186 'yp' (temp 4-element array of highp float) 0:? Linker Objects 0:? 'm43' (uniform highp 4X3 matrix of float) 0:? 'm33' (uniform highp 3X3 matrix of float) @@ -592,9 +466,9 @@ ERROR: node is still EOpNull! 0:? 'badsize2' (global 1-element array of highp float) 0:? 'ubInst' (layout(column_major shared ) uniform 1-element array of block{layout(column_major shared ) uniform 1-element array of highp int a}) 0:? 'okayA' (global 2-element array of highp float) -0:? 'newV' (smooth out highp 3-component vector of float) -0:? 'invIn' (in highp 4-component vector of float) -0:? 's2' (smooth out structure{global highp 3-component vector of float c, global highp float f}) +0:? 'newV' (invariant smooth out highp 3-component vector of float) +0:? 'invIn' (invariant in highp 4-component vector of float) +0:? 's2' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f}) 0:? 's3' (invariant smooth out structure{global highp 3-component vector of float c, global highp float f}) 0:? 'a' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform highp float f}) 0:? 'anon@0' (layout(column_major shared ) uniform block{layout(column_major shared ) uniform bool b23}) diff --git a/Test/baseResults/300scope.vert.out b/Test/baseResults/300scope.vert.out index 2a9a945d01d2739581ff59344a93857fb5d33473..e340cf6aab5cff3e4b7cf82194f07f06ab56d62f 100644 --- a/Test/baseResults/300scope.vert.out +++ b/Test/baseResults/300scope.vert.out @@ -131,6 +131,8 @@ ERROR: node is still EOpNull! Linked vertex stage: +ERROR: Linking vertex stage: No function definition (body) found: + g( Shader version: 300 ERROR: node is still EOpNull! @@ -151,16 +153,6 @@ ERROR: node is still EOpNull! 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' (in highp int) -0:25 Function Definition: cos(f1; (global highp float) -0:25 Function Parameters: -0:25 'x' (in highp float) -0:27 Sequence -0:27 Branch: Return -0:29 Function Definition: radians(b1; (global bool) -0:29 Function Parameters: -0:29 'x' (in bool) -0:31 Sequence -0:31 Branch: Return 0:36 Function Definition: main( (global void) 0:36 Function Parameters: 0:? Sequence diff --git a/Test/baseResults/310.comp.out b/Test/baseResults/310.comp.out index 9a5e4e89f4c6dde38af418e536a427a1f94745d7..a5be10e13eb2e4a9464ac25008252084e5025196 100644 --- a/Test/baseResults/310.comp.out +++ b/Test/baseResults/310.comp.out @@ -536,340 +536,6 @@ ERROR: node is still EOpNull! 0:36 Constant: 0:36 1 (const uint) 0:36 'gl_LocalInvocationIndex' (in highp uint LocalInvocationIndex) -0:59 Function Definition: foo( (global void) -0:59 Function Parameters: -0:61 Sequence -0:61 move second child to first child (temp highp float) -0:61 direct index (layout(column_major shared ) temp highp float) -0:61 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:61 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) -0:61 Constant: -0:61 1 (const int) -0:61 Constant: -0:61 2 (const int) -0:61 Constant: -0:61 4.700000 -0:62 array length (temp int) -0:62 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:62 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values}) -0:62 Constant: -0:62 1 (const int) -0:63 Pre-Increment (temp highp 4-component vector of float) -0:63 's' (shared highp 4-component vector of float) -0:84 Function Definition: qux( (global void) -0:84 Function Parameters: -0:86 Sequence -0:86 Sequence -0:86 move second child to first child (temp highp int) -0:86 'i' (temp highp int) -0:86 Constant: -0:86 4 (const int) -0:87 imageAtomicCompSwap (global highp int) -0:87 'iimg2D' (layout(r32i ) uniform highp iimage2D) -0:87 Construct ivec2 (temp highp 2-component vector of int) -0:87 'i' (temp highp int) -0:87 'i' (temp highp int) -0:87 'i' (temp highp int) -0:87 'i' (temp highp int) -0:88 imageAtomicAdd (global highp uint) -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) -0:88 Convert int to uint (temp highp uint) -0:88 'i' (temp highp int) -0:89 imageAtomicMin (global highp int) -0:89 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D) -0:89 Construct ivec2 (temp highp 2-component vector of int) -0:89 'i' (temp highp int) -0:89 'i' (temp highp int) -0:89 'i' (temp highp int) -0:90 Constant: -0:90 0.000000 -0:91 Sequence -0:91 move second child to first child (temp highp 4-component vector of int) -0:91 'pos' (temp highp 4-component vector of int) -0:91 imageLoad (global highp 4-component vector of int) -0:91 'iimg2D' (layout(r32i ) uniform highp iimage2D) -0:91 Construct ivec2 (temp highp 2-component vector of int) -0:91 'i' (temp highp int) -0:91 'i' (temp highp int) -0:92 imageStore (global highp void) -0:92 'ii2da' (writeonly uniform highp iimage2DArray) -0:92 Construct ivec3 (temp 3-component vector of int) -0:92 'i' (temp highp int) -0:92 'i' (temp highp int) -0:92 'i' (temp highp int) -0:92 Constant: -0:92 0 (const int) -0:92 0 (const int) -0:92 0 (const int) -0:92 0 (const int) -0:93 imageLoad (global mediump 4-component vector of float) -0:93 'img2Drgba' (layout(rgba32f ) readonly uniform mediump image2D) -0:93 Construct ivec2 (temp mediump 2-component vector of int) -0:93 'i' (temp highp int) -0:93 'i' (temp highp int) -0:94 imageLoad (global highp 4-component vector of int) -0:94 'ii2da' (writeonly uniform highp iimage2DArray) -0:94 Construct ivec3 (temp highp 3-component vector of int) -0:94 'i' (temp highp int) -0:94 'i' (temp highp int) -0:94 'i' (temp highp int) -0:100 Function Definition: passr(iI21; (global void) -0:100 Function Parameters: -0:100 'image' (coherent readonly in highp iimage2D) -0:107 Function Definition: passrc( (global void) -0:107 Function Parameters: -0:109 Sequence -0:109 Function Call: passr(iI21; (global void) -0:109 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D) -0:110 Function Call: passr(iI21; (global void) -0:110 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D) -0:111 Function Call: passr(iI21; (global void) -0:111 'iimg2D' (layout(r32i ) uniform highp iimage2D) -0:123 Function Definition: func(au1; (global highp uint) -0:123 Function Parameters: -0:123 'c' (in highp atomic_uint) -0:125 Sequence -0:125 Branch: Return with expression -0:125 AtomicCounterIncrement (global highp uint) -0:125 'c' (in highp atomic_uint) -0:128 Function Definition: func2(au1; (global highp uint) -0:128 Function Parameters: -0:128 'c' (out highp atomic_uint) -0:130 Sequence -0:130 Branch: Return with expression -0:130 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:131 Branch: Return with expression -0:131 AtomicCounter (global highp uint) -0:131 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:134 Function Definition: mainAC( (global void) -0:134 Function Parameters: -0:? Sequence -0:137 Sequence -0:137 move second child to first child (temp highp uint) -0:137 'val' (temp highp uint) -0:137 AtomicCounter (global highp uint) -0:137 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:138 AtomicCounterDecrement (global highp uint) -0:138 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:146 Function Definition: opac( (global void) -0:146 Function Parameters: -0:? Sequence -0:149 indirect index (temp highp int) -0:149 'a' (temp 3-element array of highp int) -0:149 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint) -0:150 direct index (layout(binding=2 offset=4 ) temp highp atomic_uint) -0:150 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint) -0:150 Constant: -0:150 2 (const int) -0:151 indirect index (layout(binding=2 offset=4 ) temp highp atomic_uint) -0:151 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint) -0:151 'i' (uniform highp int) -0:157 Function Definition: atoms( (global void) -0:157 Function Parameters: -0:159 Sequence -0:159 Sequence -0:159 move second child to first child (temp highp int) -0:159 'origi' (temp highp int) -0:159 AtomicAdd (global highp int) -0:159 'atomi' (shared highp int) -0:159 Constant: -0:159 3 (const int) -0:160 Sequence -0:160 move second child to first child (temp highp uint) -0:160 'origu' (temp highp uint) -0:160 AtomicAnd (global highp uint) -0:160 'atomu' (shared highp uint) -0:160 Constant: -0:160 7 (const uint) -0:161 move second child to first child (temp highp int) -0:161 'origi' (temp highp int) -0:161 AtomicExchange (global highp int) -0:161 'atomi' (shared highp int) -0:161 Constant: -0:161 4 (const int) -0:162 move second child to first child (temp highp uint) -0:162 'origu' (temp highp uint) -0:162 AtomicCompSwap (global highp uint) -0:162 'atomu' (shared highp uint) -0:162 Constant: -0:162 10 (const uint) -0:162 Constant: -0:162 8 (const uint) -0:191 Function Definition: foowo( (global void) -0:191 Function Parameters: -0:? Sequence -0:194 move second child to first child (temp highp float) -0:194 'g' (temp highp float) -0:194 direct index (layout(column_major shared ) temp highp float) -0:194 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:194 '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}) -0:194 Constant: -0:194 1 (const int) -0:194 Constant: -0:194 2 (const int) -0:195 Sequence -0:195 move second child to first child (temp highp float) -0:195 'f' (temp highp float) -0:195 direct index (layout(column_major shared ) temp highp float) -0:195 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:195 '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}) -0:195 Constant: -0:195 1 (const int) -0:195 Constant: -0:195 2 (const int) -0:196 Pre-Increment (temp highp float) -0:196 direct index (layout(column_major shared ) temp highp float) -0:196 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:196 '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}) -0:196 Constant: -0:196 1 (const int) -0:196 Constant: -0:196 2 (const int) -0:197 Post-Decrement (temp highp float) -0:197 direct index (layout(column_major shared ) temp highp float) -0:197 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:197 '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}) -0:197 Constant: -0:197 1 (const int) -0:197 Constant: -0:197 2 (const int) -0:198 add (temp highp float) -0:198 'f' (temp highp float) -0:198 direct index (layout(column_major shared ) temp highp float) -0:198 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:198 '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}) -0:198 Constant: -0:198 1 (const int) -0:198 Constant: -0:198 2 (const int) -0:199 subtract (temp highp float) -0:199 direct index (layout(column_major shared ) temp highp float) -0:199 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:199 '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}) -0:199 Constant: -0:199 1 (const int) -0:199 Constant: -0:199 2 (const int) -0:199 'f' (temp highp float) -0:201 Test condition and select (temp highp float) -0:201 Condition -0:201 'b' (temp bool) -0:201 true case -0:201 'f' (temp highp float) -0:201 false case -0:201 direct index (layout(column_major shared ) temp highp float) -0:201 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:201 '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}) -0:201 Constant: -0:201 1 (const int) -0:201 Constant: -0:201 2 (const int) -0:202 Test condition and select (temp highp float) -0:202 Condition -0:202 'b' (temp bool) -0:202 true case -0:202 direct index (layout(column_major shared ) temp highp float) -0:202 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:202 '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}) -0:202 Constant: -0:202 1 (const int) -0:202 Constant: -0:202 2 (const int) -0:202 false case -0:202 'f' (temp highp float) -0:203 Test condition and select (temp void) -0:203 Condition -0:203 Compare Equal (temp bool) -0:203 'f' (temp highp float) -0:203 direct index (layout(column_major shared ) temp highp float) -0:203 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:203 '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}) -0:203 Constant: -0:203 1 (const int) -0:203 Constant: -0:203 2 (const int) -0:203 true case -0:204 Pre-Increment (temp highp float) -0:204 'f' (temp highp float) -0:205 Test condition and select (temp void) -0:205 Condition -0:205 Compare Greater Than or Equal (temp bool) -0:205 'f' (temp highp float) -0:205 direct index (layout(column_major shared ) temp highp float) -0:205 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:205 '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}) -0:205 Constant: -0:205 1 (const int) -0:205 Constant: -0:205 2 (const int) -0:205 true case -0:206 Pre-Increment (temp highp float) -0:206 'f' (temp highp float) -0:207 move second child to first child (temp highp float) -0:207 'f' (temp highp float) -0:207 direct index (temp highp float) -0:207 Construct vec3 (temp highp 3-component vector of float) -0:207 direct index (layout(column_major shared ) temp highp float) -0:207 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:207 '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}) -0:207 Constant: -0:207 1 (const int) -0:207 Constant: -0:207 2 (const int) -0:207 Constant: -0:207 0 (const int) -0:208 Bitwise not (temp highp int) -0:208 value: direct index for structure (layout(column_major shared ) buffer highp int) -0:208 '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}) -0:208 Constant: -0:208 0 (const int) -0:209 move second child to first child (temp highp float) -0:209 direct index (layout(column_major shared ) temp highp float) -0:209 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:209 '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}) -0:209 Constant: -0:209 1 (const int) -0:209 Constant: -0:209 2 (const int) -0:209 Constant: -0:209 3.400000 -0:218 Function Definition: foomultio( (global void) -0:218 Function Parameters: -0:? Sequence -0:221 move second child to first child (temp highp float) -0:221 'g' (temp highp float) -0:221 direct index (layout(column_major shared ) temp highp float) -0:221 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:221 '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}) -0:221 Constant: -0:221 1 (const int) -0:221 Constant: -0:221 2 (const int) -0:222 Bitwise not (temp highp int) -0:222 value: direct index for structure (layout(column_major shared ) buffer highp int) -0:222 '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}) -0:222 Constant: -0:222 0 (const int) -0:223 move second child to first child (temp highp float) -0:223 direct index (layout(column_major shared ) temp highp float) -0:223 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float) -0:223 '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}) -0:223 Constant: -0:223 1 (const int) -0:223 Constant: -0:223 2 (const int) -0:223 Constant: -0:223 3.400000 -0:224 move second child to first child (temp highp int) -0:224 value: direct index for structure (layout(column_major shared ) buffer highp int) -0:224 '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}) -0:224 Constant: -0:224 0 (const int) -0:224 Constant: -0:224 2 (const int) 0:? Linker Objects 0:? 'gl_WorkGroupSize' (const highp 3-component vector of uint WorkGroupSize) 0:? 2 (const uint) diff --git a/Test/baseResults/310.frag.out b/Test/baseResults/310.frag.out index 6cfd3f44318c3e7e3e15491881dbb9f0b6da9dcf..34cae953bd24df06c86480497ccf41365b3bc299 100644 --- a/Test/baseResults/310.frag.out +++ b/Test/baseResults/310.frag.out @@ -963,7 +963,6 @@ ERROR: node is still EOpNull! 0:? 'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float) 0:? 'arrayedInst' (in 4-element array of block{in mediump float f}) 0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth) 0:? 'inf' (smooth in mediump 2-component vector of float) 0:? 'ing' (smooth in mediump 2-component vector of float) 0:? 'offsets' (uniform 4-element array of mediump 2-component vector of int) @@ -1126,677 +1125,6 @@ ERROR: node is still EOpNull! 0:34 0.100000 0:34 Construct ivec2 (temp highp 2-component vector of int) 0:34 'i' (uniform mediump int) -0:38 Function Definition: foo23( (global void) -0:38 Function Parameters: -0:? Sequence -0:42 textureProjGradOffset (global highp 4-component vector of uint) -0:42 'usamp2d' (uniform highp usampler2D) -0:42 'outp' (out mediump 4-component vector of float) -0:42 Constant: -0:42 0.000000 -0:42 0.000000 -0:42 Constant: -0:42 0.000000 -0:42 0.000000 -0:42 Convert float to int (temp highp 2-component vector of int) -0:42 'c2D' (smooth in mediump 2-component vector of float) -0:43 textureProjGradOffset (global highp 4-component vector of uint) -0:43 'usamp2d' (uniform highp usampler2D) -0:43 'outp' (out mediump 4-component vector of float) -0:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 Constant: -0:43 0.000000 -0:43 0.000000 -0:43 Constant: -0:43 3 (const int) -0:43 4 (const int) -0:44 textureProjGradOffset (global highp 4-component vector of uint) -0:44 'usamp2d' (uniform highp usampler2D) -0:44 'outp' (out mediump 4-component vector of float) -0:44 Constant: -0:44 0.000000 -0:44 0.000000 -0:44 Constant: -0:44 0.000000 -0:44 0.000000 -0:44 Constant: -0:44 15 (const int) -0:44 16 (const int) -0:45 textureProjGradOffset (global highp 4-component vector of uint) -0:45 'usamp2d' (uniform highp usampler2D) -0:45 'outp' (out mediump 4-component vector of float) -0:45 Constant: -0:45 0.000000 -0:45 0.000000 -0:45 Constant: -0:45 0.000000 -0:45 0.000000 -0:45 Constant: -0:45 -10 (const int) -0:45 20 (const int) -0:47 Test condition and select (temp void) -0:47 Condition -0:47 'gl_HelperInvocation' (in bool HelperInvocation) -0:47 true case -0:48 Pre-Increment (temp mediump 4-component vector of float) -0:48 'outp' (out mediump 4-component vector of float) -0:50 Sequence -0:50 move second child to first child (temp mediump int) -0:50 'sum' (temp mediump int) -0:50 Constant: -0:50 32 (const int) -0:58 move second child to first child (temp bool) -0:58 'b1' (temp bool) -0:58 mix (global bool) -0:58 'b2' (temp bool) -0:58 'b3' (temp bool) -0:58 'b' (temp bool) -0:59 Sequence -0:59 move second child to first child (temp mediump 3-component vector of uint) -0:59 'um3' (temp mediump 3-component vector of uint) -0:59 mix (global mediump 3-component vector of uint) -0:59 Construct uvec3 (temp mediump 3-component vector of uint) -0:59 Convert int to uint (temp mediump uint) -0:59 'i' (uniform mediump int) -0:59 Construct uvec3 (temp mediump 3-component vector of uint) -0:59 Convert int to uint (temp mediump uint) -0:59 'i' (uniform mediump int) -0:59 Construct bvec3 (temp 3-component vector of bool) -0:59 'b' (temp bool) -0:60 Sequence -0:60 move second child to first child (temp mediump 4-component vector of int) -0:60 'im4' (temp mediump 4-component vector of int) -0:60 mix (global mediump 4-component vector of int) -0:60 Construct ivec4 (temp mediump 4-component vector of int) -0:60 'i' (uniform mediump int) -0:60 Construct ivec4 (temp mediump 4-component vector of int) -0:60 'i' (uniform mediump int) -0:60 Construct bvec4 (temp 4-component vector of bool) -0:60 'b' (temp bool) -0:98 Function Definition: foots( (global void) -0:98 Function Parameters: -0:100 Sequence -0:100 Sequence -0:100 move second child to first child (temp highp 2-component vector of int) -0:100 'v2' (temp highp 2-component vector of int) -0:100 textureSize (global highp 2-component vector of int) -0:100 's1' (layout(binding=3 ) uniform highp sampler2D) -0:100 Constant: -0:100 2 (const int) -0:101 Sequence -0:101 move second child to first child (temp highp 3-component vector of int) -0:101 'v3' (temp highp 3-component vector of int) -0:101 textureSize (global highp 3-component vector of int) -0:101 'isamp2DA' (uniform highp isampler2DArray) -0:101 Constant: -0:101 3 (const int) -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, operation at mediump) -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) -0:103 'i2D' (layout(binding=2 ) writeonly uniform highp image2D) -0:104 move second child to first child (temp highp 3-component vector of int) -0:104 'v3' (temp highp 3-component vector of int) -0:104 imageQuerySize (global highp 3-component vector of int, operation at mediump) -0:104 'i3D' (layout(binding=4 ) readonly uniform mediump image3D) -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, operation at mediump) -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, operation at mediump) -0:106 'i2DA' (layout(binding=6 ) uniform mediump image2DArray) -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, operation at mediump) -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 -0:167 Sequence -0:167 move second child to first child (temp mediump 4-component vector of float) -0:167 'v' (temp mediump 4-component vector of float) -0:167 add (temp mediump 4-component vector of float) -0:167 v: direct index for structure (in mediump 4-component vector of float) -0:167 'inbinst' (in block{in mediump int a, in mediump 4-component vector of float v, in structure{global mediump int b} s}) -0:167 Constant: -0:167 1 (const int) -0:167 vAnon: direct index for structure (layout(location=13 ) centroid in mediump 4-component vector of float) -0:167 'anon@0' (in block{layout(location=12 ) in mediump int aAnon, layout(location=13 ) centroid in mediump 4-component vector of float vAnon}) -0:167 Constant: -0:167 1 (const uint) -0:168 vector scale second child into first child (temp mediump 4-component vector of float) -0:168 'v' (temp mediump 4-component vector of float) -0:168 f: direct index for structure (in mediump float) -0:168 direct index (temp block{in mediump float f}) -0:168 'arrayedInst' (in 4-element array of block{in mediump float f}) -0:168 Constant: -0:168 2 (const int) -0:168 Constant: -0:168 0 (const int) -0:169 vector scale second child into first child (temp mediump 4-component vector of float) -0:169 'v' (temp mediump 4-component vector of float) -0:169 f: direct index for structure (in mediump float) -0:169 indirect index (temp block{in mediump float f}) -0:169 'arrayedInst' (in 4-element array of block{in mediump float f}) -0:169 'i' (uniform mediump int) -0:169 Constant: -0:169 0 (const int) -0:179 Function Definition: foo_IO( (global void) -0:179 Function Parameters: -0:181 Sequence -0:181 move second child to first child (temp highp float) -0:181 'gl_FragDepth' (gl_FragDepth highp float FragDepth) -0:181 Constant: -0:181 0.200000 -0:182 'gl_Layer' (flat in highp int Layer) -0:183 'gl_PrimitiveID' (flat in highp int PrimitiveID) -0:184 Sequence -0:184 move second child to first child (temp bool) -0:184 'f' (temp bool) -0:184 'gl_FrontFacing' (gl_FrontFacing bool Face) -0:191 Function Definition: foo_GS( (global void) -0:191 Function Parameters: -0:193 Sequence -0:193 Sequence -0:193 move second child to first child (temp highp int) -0:193 'l' (temp highp int) -0:193 'gl_Layer' (flat in highp int Layer) -0:194 Sequence -0:194 move second child to first child (temp highp int) -0:194 'p' (temp highp int) -0:194 'gl_PrimitiveID' (flat in highp int PrimitiveID) -0:207 Function Definition: pfooBad( (global void) -0:207 Function Parameters: -0:? Sequence -0:210 move second child to first child (temp mediump 2-component vector of float) -0:210 'h' (noContraction temp mediump 2-component vector of float) -0:210 fma (global mediump 2-component vector of float) -0:210 'inf' (smooth in mediump 2-component vector of float) -0:210 'ing' (smooth in mediump 2-component vector of float) -0:210 'h' (noContraction temp mediump 2-component vector of float) -0:211 textureGatherOffset (global highp 4-component vector of float) -0:211 direct index (temp highp sampler2D) -0:211 'sArray' (uniform 4-element array of highp sampler2D) -0:211 Constant: -0:211 0 (const int) -0:211 Constant: -0:211 0.100000 -0:211 0.100000 -0:211 Convert float to int (temp highp 2-component vector of int) -0:211 'inf' (smooth in mediump 2-component vector of float) -0:212 textureGatherOffsets (global highp 4-component vector of float) -0:212 direct index (temp highp sampler2D) -0:212 'sArray' (uniform 4-element array of highp sampler2D) -0:212 Constant: -0:212 0 (const int) -0:212 Constant: -0:212 0.100000 -0:212 0.100000 -0:212 Constant: -0:212 0 (const int) -0:212 0 (const int) -0:212 0 (const int) -0:212 0 (const int) -0:212 0 (const int) -0:212 0 (const int) -0:212 0 (const int) -0:212 0 (const int) -0:217 Function Definition: pfoo( (global void) -0:217 Function Parameters: -0:? Sequence -0:220 move second child to first child (temp mediump 2-component vector of float) -0:220 'h' (noContraction temp mediump 2-component vector of float) -0:220 fma (global mediump 2-component vector of float) -0:220 'inf' (smooth in mediump 2-component vector of float) -0:220 'ing' (smooth in mediump 2-component vector of float) -0:220 'h' (noContraction temp mediump 2-component vector of float) -0:221 textureGatherOffset (global highp 4-component vector of float) -0:221 direct index (temp highp sampler2D) -0:221 'sArray' (uniform 4-element array of highp sampler2D) -0:221 Constant: -0:221 0 (const int) -0:221 Constant: -0:221 0.100000 -0:221 0.100000 -0:221 Convert float to int (temp highp 2-component vector of int) -0:221 'inf' (smooth in mediump 2-component vector of float) -0:222 textureGatherOffsets (global highp 4-component vector of float) -0:222 direct index (temp highp sampler2D) -0:222 'sArray' (uniform 4-element array of highp sampler2D) -0:222 Constant: -0:222 0 (const int) -0:222 Constant: -0:222 0.100000 -0:222 0.100000 -0:222 Constant: -0:222 0 (const int) -0:222 0 (const int) -0:222 0 (const int) -0:222 0 (const int) -0:222 0 (const int) -0:222 0 (const int) -0:222 0 (const int) -0:222 0 (const int) -0:223 textureGatherOffsets (global highp 4-component vector of float) -0:223 direct index (temp highp sampler2D) -0:223 'sArray' (uniform 4-element array of highp sampler2D) -0:223 Constant: -0:223 0 (const int) -0:223 Constant: -0:223 0.100000 -0:223 0.100000 -0:223 'offsets' (uniform 4-element array of mediump 2-component vector of int) -0:248 Function Definition: CAT( (global void) -0:248 Function Parameters: -0:250 Sequence -0:250 Sequence -0:250 move second child to first child (temp highp 4-component vector of float) -0:250 'b4' (temp highp 4-component vector of float) -0:250 texture (global highp 4-component vector of float) -0:250 'CA4' (uniform highp samplerCubeArray) -0:250 Constant: -0:250 0.500000 -0:250 0.500000 -0:250 0.500000 -0:250 0.500000 -0:250 Constant: -0:250 0.240000 -0:251 Sequence -0:251 move second child to first child (temp highp 4-component vector of int) -0:251 'b6' (temp highp 4-component vector of int) -0:251 texture (global highp 4-component vector of int) -0:251 'CA6' (uniform highp isamplerCubeArray) -0:251 Constant: -0:251 0.500000 -0:251 0.500000 -0:251 0.500000 -0:251 0.500000 -0:251 Constant: -0:251 0.260000 -0:252 Sequence -0:252 move second child to first child (temp highp 4-component vector of uint) -0:252 'b7' (temp highp 4-component vector of uint) -0:252 texture (global highp 4-component vector of uint) -0:252 'CA7' (uniform highp usamplerCubeArray) -0:252 Constant: -0:252 0.500000 -0:252 0.500000 -0:252 0.500000 -0:252 0.500000 -0:252 Constant: -0:252 0.270000 -0:255 Function Definition: badSample( (global void) -0:255 Function Parameters: -0:257 Sequence -0:257 Sequence -0:257 move second child to first child (temp lowp int) -0:257 'a1' (temp lowp int) -0:257 'gl_SampleID' (flat in lowp int SampleId) -0:258 Sequence -0:258 move second child to first child (temp mediump 2-component vector of float) -0:258 'a2' (temp mediump 2-component vector of float) -0:258 'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition) -0:259 Sequence -0:259 move second child to first child (temp highp int) -0:259 'a3' (temp highp int) -0:259 direct index (flat temp highp int SampleMaskIn) -0:259 'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn) -0:259 Constant: -0:259 0 (const int) -0:260 move second child to first child (temp highp int) -0:260 direct index (temp highp int SampleMaskIn) -0:260 'gl_SampleMask' (out 1-element array of highp int SampleMaskIn) -0:260 Constant: -0:260 0 (const int) -0:260 'a3' (temp highp int) -0:261 Sequence -0:261 move second child to first child (temp mediump int) -0:261 'n' (temp mediump int) -0:261 'gl_NumSamples' (uniform lowp int) -0:268 Function Definition: goodSample( (global void) -0:268 Function Parameters: -0:270 Sequence -0:270 Sequence -0:270 move second child to first child (temp lowp int) -0:270 'a1' (temp lowp int) -0:270 'gl_SampleID' (flat in lowp int SampleId) -0:271 Sequence -0:271 move second child to first child (temp mediump 2-component vector of float) -0:271 'a2' (temp mediump 2-component vector of float) -0:271 'gl_SamplePosition' (smooth in mediump 2-component vector of float SamplePosition) -0:272 Sequence -0:272 move second child to first child (temp highp int) -0:272 'a3' (temp highp int) -0:272 direct index (flat temp highp int SampleMaskIn) -0:272 'gl_SampleMaskIn' (flat in 1-element array of highp int SampleMaskIn) -0:272 Constant: -0:272 0 (const int) -0:273 move second child to first child (temp highp int) -0:273 direct index (temp highp int SampleMaskIn) -0:273 'gl_SampleMask' (out 1-element array of highp int SampleMaskIn) -0:273 Constant: -0:273 0 (const int) -0:273 'a3' (temp highp int) -0:274 Sequence -0:274 move second child to first child (temp mediump int) -0:274 'n1' (temp mediump int) -0:274 Constant: -0:274 4 (const int) -0:275 Sequence -0:275 move second child to first child (temp mediump int) -0:275 'n2' (temp mediump int) -0:275 'gl_NumSamples' (uniform lowp int) -0:283 Function Definition: badImageAtom( (global void) -0:283 Function Parameters: -0:? Sequence -0:289 imageAtomicAdd (global highp int) -0:289 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:289 'P' (uniform mediump 2-component vector of int) -0:289 'dati' (temp mediump int) -0:290 imageAtomicAdd (global highp uint) -0:290 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:290 'P' (uniform mediump 2-component vector of int) -0:290 'datu' (temp mediump uint) -0:291 imageAtomicMin (global highp int) -0:291 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:291 'P' (uniform mediump 2-component vector of int) -0:291 'dati' (temp mediump int) -0:292 imageAtomicMin (global highp uint) -0:292 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:292 'P' (uniform mediump 2-component vector of int) -0:292 'datu' (temp mediump uint) -0:293 imageAtomicMax (global highp int) -0:293 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:293 'P' (uniform mediump 2-component vector of int) -0:293 'dati' (temp mediump int) -0:294 imageAtomicMax (global highp uint) -0:294 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:294 'P' (uniform mediump 2-component vector of int) -0:294 'datu' (temp mediump uint) -0:295 imageAtomicAnd (global highp int) -0:295 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:295 'P' (uniform mediump 2-component vector of int) -0:295 'dati' (temp mediump int) -0:296 imageAtomicAnd (global highp uint) -0:296 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:296 'P' (uniform mediump 2-component vector of int) -0:296 'datu' (temp mediump uint) -0:297 imageAtomicOr (global highp int) -0:297 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:297 'P' (uniform mediump 2-component vector of int) -0:297 'dati' (temp mediump int) -0:298 imageAtomicOr (global highp uint) -0:298 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:298 'P' (uniform mediump 2-component vector of int) -0:298 'datu' (temp mediump uint) -0:299 imageAtomicXor (global highp int) -0:299 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:299 'P' (uniform mediump 2-component vector of int) -0:299 'dati' (temp mediump int) -0:300 imageAtomicXor (global highp uint) -0:300 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:300 'P' (uniform mediump 2-component vector of int) -0:300 'datu' (temp mediump uint) -0:301 imageAtomicExchange (global highp int) -0:301 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:301 'P' (uniform mediump 2-component vector of int) -0:301 'dati' (temp mediump int) -0:302 imageAtomicExchange (global highp uint) -0:302 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:302 'P' (uniform mediump 2-component vector of int) -0:302 'datu' (temp mediump uint) -0:303 imageAtomicExchange (global highp float) -0:303 'im2Df' (layout(r32f ) uniform highp image2D) -0:303 'P' (uniform mediump 2-component vector of int) -0:303 'datf' (temp mediump float) -0:304 imageAtomicCompSwap (global highp int) -0:304 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:304 'P' (uniform mediump 2-component vector of int) -0:304 Constant: -0:304 3 (const int) -0:304 'dati' (temp mediump int) -0:305 imageAtomicCompSwap (global highp uint) -0:305 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:305 'P' (uniform mediump 2-component vector of int) -0:305 Constant: -0:305 5 (const uint) -0:305 'datu' (temp mediump uint) -0:316 Function Definition: goodImageAtom( (global void) -0:316 Function Parameters: -0:? Sequence -0:322 imageAtomicAdd (global highp int) -0:322 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:322 'P' (uniform mediump 2-component vector of int) -0:322 'dati' (temp mediump int) -0:323 imageAtomicAdd (global highp uint) -0:323 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:323 'P' (uniform mediump 2-component vector of int) -0:323 'datu' (temp mediump uint) -0:324 imageAtomicMin (global highp int) -0:324 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:324 'P' (uniform mediump 2-component vector of int) -0:324 'dati' (temp mediump int) -0:325 imageAtomicMin (global highp uint) -0:325 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:325 'P' (uniform mediump 2-component vector of int) -0:325 'datu' (temp mediump uint) -0:326 imageAtomicMax (global highp int) -0:326 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:326 'P' (uniform mediump 2-component vector of int) -0:326 'dati' (temp mediump int) -0:327 imageAtomicMax (global highp uint) -0:327 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:327 'P' (uniform mediump 2-component vector of int) -0:327 'datu' (temp mediump uint) -0:328 imageAtomicAnd (global highp int) -0:328 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:328 'P' (uniform mediump 2-component vector of int) -0:328 'dati' (temp mediump int) -0:329 imageAtomicAnd (global highp uint) -0:329 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:329 'P' (uniform mediump 2-component vector of int) -0:329 'datu' (temp mediump uint) -0:330 imageAtomicOr (global highp int) -0:330 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:330 'P' (uniform mediump 2-component vector of int) -0:330 'dati' (temp mediump int) -0:331 imageAtomicOr (global highp uint) -0:331 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:331 'P' (uniform mediump 2-component vector of int) -0:331 'datu' (temp mediump uint) -0:332 imageAtomicXor (global highp int) -0:332 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:332 'P' (uniform mediump 2-component vector of int) -0:332 'dati' (temp mediump int) -0:333 imageAtomicXor (global highp uint) -0:333 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:333 'P' (uniform mediump 2-component vector of int) -0:333 'datu' (temp mediump uint) -0:334 imageAtomicExchange (global highp int) -0:334 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:334 'P' (uniform mediump 2-component vector of int) -0:334 'dati' (temp mediump int) -0:335 imageAtomicExchange (global highp uint) -0:335 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:335 'P' (uniform mediump 2-component vector of int) -0:335 'datu' (temp mediump uint) -0:336 imageAtomicExchange (global highp float) -0:336 'im2Df' (layout(r32f ) uniform highp image2D) -0:336 'P' (uniform mediump 2-component vector of int) -0:336 'datf' (temp mediump float) -0:337 imageAtomicCompSwap (global highp int) -0:337 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:337 'P' (uniform mediump 2-component vector of int) -0:337 Constant: -0:337 3 (const int) -0:337 'dati' (temp mediump int) -0:338 imageAtomicCompSwap (global highp uint) -0:338 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:338 'P' (uniform mediump 2-component vector of int) -0:338 Constant: -0:338 5 (const uint) -0:338 'datu' (temp mediump uint) -0:340 imageAtomicMax (global highp int) -0:340 'badIm2Di' (layout(rgba16i ) uniform highp iimage2D) -0:340 'P' (uniform mediump 2-component vector of int) -0:340 'dati' (temp mediump int) -0:341 imageAtomicMax (global highp uint) -0:341 'badIm2Du' (layout(rgba8ui ) uniform highp uimage2D) -0:341 'P' (uniform mediump 2-component vector of int) -0:341 'datu' (temp mediump uint) -0:342 imageAtomicExchange (global highp float) -0:342 'badIm2Df' (layout(rgba32f ) uniform highp image2D) -0:342 'P' (uniform mediump 2-component vector of int) -0:342 'datf' (temp mediump float) -0:353 Function Definition: badInterp( (global void) -0:353 Function Parameters: -0:355 Sequence -0:355 interpolateAtCentroid (global mediump 2-component vector of float) -0:355 'colorfc' (centroid flat in mediump 2-component vector of float) -0:356 interpolateAtSample (global mediump 2-component vector of float) -0:356 'colorfc' (centroid flat in mediump 2-component vector of float) -0:356 Constant: -0:356 1 (const int) -0:357 interpolateAtOffset (global mediump 2-component vector of float) -0:357 'colorfc' (centroid flat in mediump 2-component vector of float) -0:357 Constant: -0:357 0.200000 -0:357 0.200000 -0:369 Function Definition: interp( (global void) -0:369 Function Parameters: -0:? Sequence -0:376 move second child to first child (temp mediump 2-component vector of float) -0:376 'res2' (temp mediump 2-component vector of float) -0:376 interpolateAtCentroid (global mediump 2-component vector of float) -0:376 'colorfc' (centroid flat in mediump 2-component vector of float) -0:377 move second child to first child (temp mediump 4-component vector of float) -0:377 'res4' (temp mediump 4-component vector of float) -0:377 interpolateAtCentroid (global mediump 4-component vector of float) -0:377 'colorSampIn' (smooth sample in mediump 4-component vector of float) -0:378 move second child to first child (temp mediump 4-component vector of float) -0:378 'res4' (temp mediump 4-component vector of float) -0:378 interpolateAtCentroid (global mediump 4-component vector of float) -0:378 'colorfsi' (flat sample in mediump 4-component vector of float) -0:379 move second child to first child (temp mediump float) -0:379 'res' (temp mediump float) -0:379 interpolateAtCentroid (global mediump float) -0:379 'scalarIn' (smooth in mediump float) -0:380 'res3' (temp mediump 3-component vector of float) -0:381 move second child to first child (temp mediump 3-component vector of float) -0:381 'res3' (temp mediump 3-component vector of float) -0:381 interpolateAtCentroid (global mediump 3-component vector of float) -0:381 direct index (smooth sample temp mediump 3-component vector of float) -0:381 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) -0:381 Constant: -0:381 2 (const int) -0:382 move second child to first child (temp mediump 2-component vector of float) -0:382 'res2' (temp mediump 2-component vector of float) -0:382 interpolateAtCentroid (global mediump 2-component vector of float) -0:382 vector swizzle (temp mediump 2-component vector of float) -0:382 direct index (smooth sample temp mediump 3-component vector of float) -0:382 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) -0:382 Constant: -0:382 2 (const int) -0:382 Sequence -0:382 Constant: -0:382 0 (const int) -0:382 Constant: -0:382 1 (const int) -0:384 'res3' (temp mediump 3-component vector of float) -0:385 move second child to first child (temp mediump 3-component vector of float) -0:385 'res3' (temp mediump 3-component vector of float) -0:385 interpolateAtSample (global mediump 3-component vector of float) -0:385 indirect index (smooth sample temp mediump 3-component vector of float) -0:385 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) -0:385 'i' (uniform mediump int) -0:385 Constant: -0:385 0 (const int) -0:386 move second child to first child (temp mediump 2-component vector of float) -0:386 'res2' (temp mediump 2-component vector of float) -0:386 interpolateAtSample (global mediump 2-component vector of float) -0:386 vector swizzle (temp mediump 2-component vector of float) -0:386 direct index (smooth sample temp mediump 3-component vector of float) -0:386 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) -0:386 Constant: -0:386 2 (const int) -0:386 Sequence -0:386 Constant: -0:386 0 (const int) -0:386 Constant: -0:386 1 (const int) -0:386 Constant: -0:386 2 (const int) -0:387 move second child to first child (temp mediump float) -0:387 'res' (temp mediump float) -0:387 interpolateAtSample (global mediump float) -0:387 'scalarIn' (smooth in mediump float) -0:387 Constant: -0:387 1 (const int) -0:389 'res3' (temp mediump 3-component vector of float) -0:390 move second child to first child (temp mediump 3-component vector of float) -0:390 'res3' (temp mediump 3-component vector of float) -0:390 interpolateAtOffset (global mediump 3-component vector of float) -0:390 direct index (smooth sample temp mediump 3-component vector of float) -0:390 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) -0:390 Constant: -0:390 2 (const int) -0:390 Constant: -0:390 0.200000 -0:390 0.200000 -0:391 move second child to first child (temp mediump 2-component vector of float) -0:391 'res2' (temp mediump 2-component vector of float) -0:391 interpolateAtOffset (global mediump 2-component vector of float) -0:391 vector swizzle (temp mediump 2-component vector of float) -0:391 direct index (smooth sample temp mediump 3-component vector of float) -0:391 'sampInArray' (smooth sample in 4-element array of mediump 3-component vector of float) -0:391 Constant: -0:391 2 (const int) -0:391 Sequence -0:391 Constant: -0:391 0 (const int) -0:391 Constant: -0:391 1 (const int) -0:391 Constant: -0:391 0.200000 -0:391 0.200000 -0:392 move second child to first child (temp mediump float) -0:392 'res' (temp mediump float) -0:392 interpolateAtOffset (global mediump float) -0:392 add (temp mediump float) -0:392 'scalarIn' (smooth in mediump float) -0:392 'scalarIn' (smooth in mediump float) -0:392 Constant: -0:392 0.200000 -0:392 0.200000 -0:393 move second child to first child (temp mediump float) -0:393 'res' (temp mediump float) -0:393 interpolateAtOffset (global mediump float) -0:393 'scalarIn' (smooth in mediump float) -0:393 Constant: -0:393 0.200000 -0:393 0.200000 -0:396 move second child to first child (temp mediump float) -0:396 'res' (temp mediump float) -0:396 interpolateAtCentroid (global mediump float) -0:396 'f' (temp mediump float) -0:397 move second child to first child (temp mediump 4-component vector of float) -0:397 'res4' (temp mediump 4-component vector of float) -0:397 interpolateAtSample (global mediump 4-component vector of float) -0:397 'outp' (out mediump 4-component vector of float) -0:397 Constant: -0:397 0 (const int) -0:427 Function Definition: blendFoo( (temp void) -0:427 Function Parameters: -0:428 Function Definition: blendFoo(vf3; (global void) -0:428 Function Parameters: -0:428 'v' (in mediump 3-component vector of float) 0:? Linker Objects 0:? 'gl_FragCoord' (smooth in mediump 4-component vector of float) 0:? 'v3' (layout(location=2 ) smooth in mediump 3-component vector of float) @@ -1844,7 +1172,6 @@ ERROR: node is still EOpNull! 0:? 'aliased' (layout(location=13 ) smooth in mediump 4-component vector of float) 0:? 'arrayedInst' (in 4-element array of block{in mediump float f}) 0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth highp float FragDepth) 0:? 'inf' (smooth in mediump 2-component vector of float) 0:? 'ing' (smooth in mediump 2-component vector of float) 0:? 'offsets' (uniform 4-element array of mediump 2-component vector of int) diff --git a/Test/baseResults/310.geom.out b/Test/baseResults/310.geom.out index 888c14233f742fd402ebbfefb427c9d9fa899e19..def6b7ab310aa4ba5e402691aeee36720a76a9af 100644 --- a/Test/baseResults/310.geom.out +++ b/Test/baseResults/310.geom.out @@ -250,74 +250,6 @@ ERROR: node is still EOpNull! 0:52 'gl_Layer' (layout(stream=0 ) out highp int Layer) 0:52 Constant: 0:52 2 (const int) -0:63 Function Definition: foo(i1; (global void) -0:63 Function Parameters: -0:63 'a' (in highp int) -0:65 Sequence -0:65 move second child to first child (temp mediump 4-component vector of float) -0:65 a: direct index for structure (layout(stream=0 ) out mediump 4-component vector of float) -0:65 'ouuaa6' (layout(stream=0 ) out block{layout(stream=0 ) out mediump 4-component vector of float a}) -0:65 Constant: -0:65 0 (const int) -0:65 Constant: -0:65 1.000000 -0:65 1.000000 -0:65 1.000000 -0:65 1.000000 -0:114 Function Definition: fooe1( (global void) -0:114 Function Parameters: -0:116 Sequence -0:116 'gl_ViewportIndex' (temp float) -0:117 'gl_MaxViewports' (temp float) -0:118 Constant: -0:118 4 (const int) -0:119 Sequence -0:119 move second child to first child (temp highp int) -0:119 'inv' (temp highp int) -0:119 'gl_InvocationID' (in highp int InvocationID) -0:134 Function Definition: notHere( (global void) -0:134 Function Parameters: -0:136 Sequence -0:136 'gl_MaxGeometryVaryingComponents' (temp float) -0:137 'gl_VerticesIn' (temp float) -0:140 Function Definition: pointSize1( (global void) -0:140 Function Parameters: -0:142 Sequence -0:142 Sequence -0:142 move second child to first child (temp highp float) -0:142 'ps' (temp highp float) -0:142 gl_PointSize: direct index for structure (in highp float PointSize) -0:142 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:142 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:142 Constant: -0:142 3 (const int) -0:142 Constant: -0:142 1 (const int) -0:143 move second child to first child (temp highp float) -0:143 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize) -0:143 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize}) -0:143 Constant: -0:143 1 (const uint) -0:143 'ps' (temp highp float) -0:148 Function Definition: pointSize2( (global void) -0:148 Function Parameters: -0:150 Sequence -0:150 Sequence -0:150 move second child to first child (temp highp float) -0:150 'ps' (temp highp float) -0:150 gl_PointSize: direct index for structure (in highp float PointSize) -0:150 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:150 'gl_in' (in 4-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:150 Constant: -0:150 3 (const int) -0:150 Constant: -0:150 1 (const int) -0:151 move second child to first child (temp highp float) -0:151 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize highp float PointSize) -0:151 'anon@1' (layout(stream=0 ) out block{layout(stream=0 ) gl_Position highp 4-component vector of float Position gl_Position, layout(stream=0 ) gl_PointSize highp float PointSize gl_PointSize}) -0:151 Constant: -0:151 1 (const uint) -0:151 'ps' (temp highp float) 0:? Linker Objects 0:? 'fromV' (in 4-element array of block{in mediump 3-component vector of float color}) 0:? 'nonBlockUnsized' (in 4-element array of mediump 4-component vector of float) diff --git a/Test/baseResults/310.tesc.out b/Test/baseResults/310.tesc.out index 24e3d209594a570019cc43ebff89d44464491c58..ab27198f61e9d442fce03fa594bb813633a10dbc 100644 --- a/Test/baseResults/310.tesc.out +++ b/Test/baseResults/310.tesc.out @@ -514,172 +514,6 @@ ERROR: node is still EOpNull! 0:58 Barrier (global void) 0:61 Branch: Return 0:63 Barrier (global void) -0:69 Function Definition: foo( (global void) -0:69 Function Parameters: -0:71 Sequence -0:71 gl_Position: direct index for structure (out highp 4-component vector of float Position) -0:71 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:71 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:71 Constant: -0:71 4 (const int) -0:71 Constant: -0:71 0 (const int) -0:73 Barrier (global void) -0:92 Function Definition: foop( (global void) -0:92 Function Parameters: -0:? Sequence -0:95 move second child to first child (temp highp float) -0:95 'd' (noContraction temp highp float) -0:95 fma (global highp float) -0:95 'd' (noContraction temp highp float) -0:95 'd' (noContraction temp highp float) -0:95 'd' (noContraction temp highp float) -0:112 Function Definition: pointSize2( (global void) -0:112 Function Parameters: -0:114 Sequence -0:114 Sequence -0:114 move second child to first child (temp highp float) -0:114 'ps' (temp highp float) -0:114 gl_PointSize: direct index for structure (in highp float PointSize) -0:114 direct index (temp block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:114 'gl_in' (in 32-element array of block{in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize}) -0:114 Constant: -0:114 1 (const int) -0:114 Constant: -0:114 1 (const int) -0:115 move second child to first child (temp highp float) -0:115 gl_PointSize: direct index for structure (out highp float PointSize) -0:115 indirect index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:115 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:115 'gl_InvocationID' (in highp int InvocationID) -0:115 Constant: -0:115 1 (const int) -0:115 'ps' (temp highp float) -0:122 Function Definition: goodfoop( (global void) -0:122 Function Parameters: -0:? Sequence -0:126 multiply second child into first child (temp highp 3-component vector of float) -0:126 'pv3' (noContraction temp highp 3-component vector of float) -0:126 'pv3' (noContraction temp highp 3-component vector of float) -0:127 move second child to first child (temp highp 3-component vector of float) -0:127 'pv3' (noContraction temp highp 3-component vector of float) -0:127 fma (global highp 3-component vector of float) -0:127 'pv3' (noContraction temp highp 3-component vector of float) -0:127 'pv3' (noContraction temp highp 3-component vector of float) -0:127 'pv3' (noContraction temp highp 3-component vector of float) -0:128 move second child to first child (temp highp float) -0:128 'd' (noContraction temp highp float) -0:128 fma (global highp float) -0:128 'd' (noContraction temp highp float) -0:128 'd' (noContraction temp highp float) -0:128 'd' (noContraction temp highp float) -0:131 Function Definition: bbBad( (global void) -0:131 Function Parameters: -0:133 Sequence -0:133 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox) -0:138 Function Definition: bb( (global void) -0:138 Function Parameters: -0:140 Sequence -0:140 move second child to first child (temp highp 4-component vector of float) -0:140 direct index (patch temp highp 4-component vector of float BoundingBox) -0:140 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox) -0:140 Constant: -0:140 0 (const int) -0:140 Constant: -0:140 0.000000 -0:140 0.000000 -0:140 0.000000 -0:140 0.000000 -0:141 move second child to first child (temp highp 4-component vector of float) -0:141 direct index (patch temp highp 4-component vector of float BoundingBox) -0:141 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox) -0:141 Constant: -0:141 1 (const int) -0:141 Constant: -0:141 1.000000 -0:141 1.000000 -0:141 1.000000 -0:141 1.000000 -0:142 move second child to first child (temp highp 4-component vector of float) -0:142 direct index (patch temp highp 4-component vector of float BoundingBox) -0:142 'gl_BoundingBoxOES' (patch out 2-element array of highp 4-component vector of float BoundingBox) -0:142 Constant: -0:142 2 (const int) -0:142 Constant: -0:142 2.000000 -0:142 2.000000 -0:142 2.000000 -0:142 2.000000 -0:153 Function Definition: outputtingOutparam(i1; (global void) -0:153 Function Parameters: -0:153 'a' (out highp int) -0:155 Sequence -0:155 move second child to first child (temp highp int) -0:155 'a' (out highp int) -0:155 Constant: -0:155 2 (const int) -0:158 Function Definition: outputting( (global void) -0:158 Function Parameters: -0:160 Sequence -0:160 move second child to first child (temp highp int) -0:160 indirect index (temp highp int) -0:160 'outa' (out 4-element array of highp int) -0:160 'gl_InvocationID' (in highp int InvocationID) -0:160 Constant: -0:160 2 (const int) -0:161 move second child to first child (temp highp int) -0:161 direct index (temp highp int) -0:161 'outa' (out 4-element array of highp int) -0:161 Constant: -0:161 1 (const int) -0:161 Constant: -0:161 2 (const int) -0:162 move second child to first child (temp highp 4-component vector of float) -0:162 gl_Position: direct index for structure (out highp 4-component vector of float Position) -0:162 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:162 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:162 Constant: -0:162 0 (const int) -0:162 Constant: -0:162 0 (const int) -0:162 Constant: -0:162 1.000000 -0:162 1.000000 -0:162 1.000000 -0:162 1.000000 -0:163 direct index (temp highp int) -0:163 'outa' (out 4-element array of highp int) -0:163 Constant: -0:163 1 (const int) -0:164 direct index (temp block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:164 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) -0:164 Constant: -0:164 0 (const int) -0:165 Function Call: outputtingOutparam(i1; (global void) -0:165 direct index (temp highp int) -0:165 'outa' (out 4-element array of highp int) -0:165 Constant: -0:165 0 (const int) -0:166 Function Call: outputtingOutparam(i1; (global void) -0:166 indirect index (temp highp int) -0:166 'outa' (out 4-element array of highp int) -0:166 'gl_InvocationID' (in highp int InvocationID) -0:167 move second child to first child (temp highp float) -0:167 f: direct index for structure (out highp float) -0:167 direct index (patch temp block{out highp float f}) -0:167 'patchIName' (patch out 4-element array of block{out highp float f}) -0:167 Constant: -0:167 1 (const int) -0:167 Constant: -0:167 0 (const int) -0:167 Constant: -0:167 3.140000 -0:168 move second child to first child (temp highp int) -0:168 indirect index (temp highp int) -0:168 'outa' (out 4-element array of highp int) -0:168 'gl_InvocationID' (in highp int InvocationID) -0:168 Constant: -0:168 2 (const int) 0:? Linker Objects 0:? 'gl_out' (out 4-element array of block{out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize}) 0:? 'outa' (out 4-element array of highp int) diff --git a/Test/baseResults/310.tese.out b/Test/baseResults/310.tese.out index aacfedbd6ef7058bed6765656876692cacd8541b..62894ec79786e3f3bdec4c35949127394dfc37d7 100644 --- a/Test/baseResults/310.tese.out +++ b/Test/baseResults/310.tese.out @@ -274,19 +274,6 @@ ERROR: node is still EOpNull! 0:48 Constant: 0:48 0.000000 0:48 'cd' (temp highp float) -0:117 Function Definition: pointSize2( (global void) -0:117 Function Parameters: -0:? Sequence -0:120 move second child to first child (temp highp float) -0:120 gl_PointSize: direct index for structure (gl_PointSize highp float PointSize) -0:120 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize}) -0:120 Constant: -0:120 1 (const uint) -0:120 'ps' (temp highp float) -0:125 Function Definition: bbbad( (global void) -0:125 Function Parameters: -0:127 Sequence -0:127 'gl_BoundingBoxOES' (temp float) 0:? Linker Objects 0:? 'patchIn' (patch in highp 4-component vector of float) 0:? 'patchOut' (patch out highp 4-component vector of float) diff --git a/Test/baseResults/310.vert.out b/Test/baseResults/310.vert.out index 84a50e89c95ecb8ccf4903fa3018a09ce82bf9eb..d0dfedf218e70f0b0d29358eb0b0c30ddba19456 100644 --- a/Test/baseResults/310.vert.out +++ b/Test/baseResults/310.vert.out @@ -1158,693 +1158,6 @@ ERROR: node is still EOpNull! 0:48 'v4' (temp mediump 4-component vector of float) 0:48 UnpackSnorm4x8 (global mediump 4-component vector of float, operation at highp) 0:48 'u1' (temp highp uint) -0:60 Function Definition: foo( (global void) -0:60 Function Parameters: -0:? Sequence -0:63 move second child to first child (temp highp 2-component vector of int) -0:63 'v2' (temp highp 2-component vector of int) -0:63 textureSize (global highp 2-component vector of int) -0:63 's2dms' (uniform highp sampler2DMS) -0:64 move second child to first child (temp highp 2-component vector of int) -0:64 'v2' (temp highp 2-component vector of int) -0:64 textureSize (global highp 2-component vector of int) -0:64 'us2dms' (uniform highp usampler2DMS) -0:65 Sequence -0:65 move second child to first child (temp highp 4-component vector of float) -0:65 'v4' (temp highp 4-component vector of float) -0:65 textureFetch (global highp 4-component vector of float) -0:65 's2dms' (uniform highp sampler2DMS) -0:65 'v2' (temp highp 2-component vector of int) -0:65 Constant: -0:65 2 (const int) -0:66 Sequence -0:66 move second child to first child (temp highp 4-component vector of int) -0:66 'iv4' (temp highp 4-component vector of int) -0:66 textureFetch (global highp 4-component vector of int) -0:66 'is2dms' (uniform highp isampler2DMS) -0:66 'v2' (temp highp 2-component vector of int) -0:66 Constant: -0:66 2 (const int) -0:67 Constant: -0:67 0.000000 -0:69 frexp (global highp float) -0:69 'f' (temp highp float) -0:69 'ini' (in highp int) -0:114 Function Definition: foo_IO( (global void) -0:114 Function Parameters: -0:116 Sequence -0:116 Sequence -0:116 move second child to first child (temp highp int) -0:116 'sum' (temp highp int) -0:116 add (temp highp int) -0:116 'gl_VertexID' (gl_VertexId highp int VertexId) -0:117 'gl_InstanceID' (gl_InstanceId highp int InstanceId) -0:118 move second child to first child (temp highp 4-component vector of float) -0:118 gl_Position: direct index for structure (gl_Position highp 4-component vector of float Position) -0:118 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, }) -0:118 Constant: -0:118 0 (const uint) -0:118 Constant: -0:118 1.000000 -0:118 1.000000 -0:118 1.000000 -0:118 1.000000 -0:119 gl_PointSize: direct index for structure (gl_PointSize highp void PointSize) -0:119 'anon@1' (out block{gl_Position highp 4-component vector of float Position gl_Position, }) -0:119 Constant: -0:119 1 (const uint) -0:153 Function Definition: pfooBad( (global void) -0:153 Function Parameters: -0:? Sequence -0:156 move second child to first child (temp highp 2-component vector of float) -0:156 'h' (noContraction temp highp 2-component vector of float) -0:156 fma (global highp 2-component vector of float) -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 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: -0:157 1 (const int) -0:158 indirect index (layout(binding=0 offset=0 ) temp highp atomic_uint) -0:158 'auArray' (layout(binding=0 offset=0 ) uniform 2-element array of highp atomic_uint) -0:158 add (temp highp int) -0:158 'sIndex' (uniform highp int) -0:158 Constant: -0:158 1 (const int) -0:159 direct index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i}) -0:159 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i}) -0:159 Constant: -0:159 1 (const int) -0:160 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i}) -0:160 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i}) -0:160 Constant: -0:160 2 (const int) -0:161 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i}) -0:161 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i}) -0:161 add (temp highp int) -0:161 'sIndex' (uniform highp int) -0:161 Constant: -0:161 1 (const int) -0:162 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i}) -0:162 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i}) -0:162 'sIndex' (uniform highp int) -0:163 direct index (writeonly temp highp image2D) -0:163 'iArray' (writeonly uniform 5-element array of highp image2D) -0:163 Constant: -0:163 2 (const int) -0:164 indirect index (writeonly temp highp image2D) -0:164 'iArray' (writeonly uniform 5-element array of highp image2D) -0:164 component-wise multiply (temp highp int) -0:164 'sIndex' (uniform highp int) -0:164 Constant: -0:164 2 (const int) -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 lowp 2-component vector of int) -0:165 'inf' (in highp 2-component vector of float) -0:166 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) -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: -0:166 0.100000 -0:166 0.100000 -0:166 Constant: -0:166 0 (const int) -0:166 0 (const int) -0:166 0 (const int) -0:166 0 (const int) -0:166 0 (const int) -0:166 0 (const int) -0:166 0 (const int) -0:166 0 (const int) -0:171 Function Definition: pfoo( (global void) -0:171 Function Parameters: -0:? Sequence -0:174 move second child to first child (temp highp 2-component vector of float) -0:174 'h' (noContraction temp highp 2-component vector of float) -0:174 fma (global highp 2-component vector of float) -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 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: -0:175 1 (const int) -0:176 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) uniform highp int i}) -0:176 'ubInst' (layout(column_major shared ) uniform 4-element array of block{layout(column_major shared ) uniform highp int i}) -0:176 add (temp highp int) -0:176 'sIndex' (uniform highp int) -0:176 Constant: -0:176 1 (const int) -0:177 indirect index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp int i}) -0:177 'bbInst' (layout(column_major shared ) buffer 4-element array of block{layout(column_major shared ) buffer highp int i}) -0:177 subtract (temp highp int) -0:177 'sIndex' (uniform highp int) -0:177 Constant: -0:177 2 (const int) -0:178 direct index (writeonly temp highp image2D) -0:178 'iArray' (writeonly uniform 5-element array of highp image2D) -0:178 Constant: -0:178 2 (const int) -0:179 indirect index (writeonly temp highp image2D) -0:179 'iArray' (writeonly uniform 5-element array of highp image2D) -0:179 subtract (temp highp int) -0:179 'sIndex' (uniform highp int) -0:179 Constant: -0:179 2 (const int) -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 lowp 2-component vector of int) -0:180 'inf' (in highp 2-component vector of float) -0:181 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) -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: -0:181 0.100000 -0:181 0.100000 -0:181 Constant: -0:181 0 (const int) -0:181 0 (const int) -0:181 0 (const int) -0:181 0 (const int) -0:181 0 (const int) -0:181 0 (const int) -0:181 0 (const int) -0:181 0 (const int) -0:182 textureGatherOffsets (global lowp 4-component vector of float, operation at highp) -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: -0:182 0.100000 -0:182 0.100000 -0:182 'offsets' (uniform 4-element array of highp 2-component vector of int) -0:220 Function Definition: bufferT( (global void) -0:220 Function Parameters: -0:222 Sequence -0:222 Sequence -0:222 move second child to first child (temp highp int) -0:222 's1' (temp highp int) -0:222 textureSize (global highp int) -0:222 'bufSamp1' (uniform highp samplerBuffer) -0:223 Sequence -0:223 move second child to first child (temp highp int) -0:223 's2' (temp highp int) -0:223 textureSize (global highp int) -0:223 'bufSamp2' (uniform highp isamplerBuffer) -0:224 Sequence -0:224 move second child to first child (temp highp int) -0:224 's3' (temp highp int) -0:224 textureSize (global highp int) -0:224 'bufSamp3' (uniform highp usamplerBuffer) -0:226 Sequence -0:226 move second child to first child (temp highp int) -0:226 's4' (temp highp int) -0:226 imageQuerySize (global highp int) -0:226 'bufSamp4' (writeonly uniform highp imageBuffer) -0:227 Sequence -0:227 move second child to first child (temp highp int) -0:227 's5' (temp highp int) -0:227 imageQuerySize (global highp int) -0:227 'bufSamp5' (writeonly uniform highp iimageBuffer) -0:228 Sequence -0:228 move second child to first child (temp highp int) -0:228 's6' (temp highp int) -0:228 imageQuerySize (global highp int) -0:228 'bufSamp6' (writeonly uniform highp uimageBuffer) -0:230 Sequence -0:230 move second child to first child (temp highp 4-component vector of float) -0:230 'f1' (temp highp 4-component vector of float) -0:230 textureFetch (global highp 4-component vector of float) -0:230 'bufSamp1' (uniform highp samplerBuffer) -0:230 's1' (temp highp int) -0:231 Sequence -0:231 move second child to first child (temp highp 4-component vector of int) -0:231 'f2' (temp highp 4-component vector of int) -0:231 textureFetch (global highp 4-component vector of int) -0:231 'bufSamp2' (uniform highp isamplerBuffer) -0:231 's2' (temp highp int) -0:232 Sequence -0:232 move second child to first child (temp highp 4-component vector of uint) -0:232 'f3' (temp highp 4-component vector of uint) -0:232 textureFetch (global highp 4-component vector of uint) -0:232 'bufSamp3' (uniform highp usamplerBuffer) -0:232 's3' (temp highp int) -0:279 Function Definition: CAT( (global void) -0:279 Function Parameters: -0:281 Sequence -0:281 Sequence -0:281 move second child to first child (temp highp 3-component vector of int) -0:281 's4' (temp highp 3-component vector of int) -0:281 textureSize (global highp 3-component vector of int) -0:281 'CA4' (uniform highp samplerCubeArray) -0:281 Constant: -0:281 1 (const int) -0:282 Sequence -0:282 move second child to first child (temp highp 3-component vector of int) -0:282 's5' (temp highp 3-component vector of int) -0:282 textureSize (global highp 3-component vector of int) -0:282 'CA5' (uniform highp samplerCubeArrayShadow) -0:282 Constant: -0:282 1 (const int) -0:283 Sequence -0:283 move second child to first child (temp highp 3-component vector of int) -0:283 's6' (temp highp 3-component vector of int) -0:283 textureSize (global highp 3-component vector of int) -0:283 'CA6' (uniform highp isamplerCubeArray) -0:283 Constant: -0:283 1 (const int) -0:284 Sequence -0:284 move second child to first child (temp highp 3-component vector of int) -0:284 's7' (temp highp 3-component vector of int) -0:284 textureSize (global highp 3-component vector of int) -0:284 'CA7' (uniform highp usamplerCubeArray) -0:284 Constant: -0:284 1 (const int) -0:286 Sequence -0:286 move second child to first child (temp highp 4-component vector of float) -0:286 't4' (temp highp 4-component vector of float) -0:286 texture (global highp 4-component vector of float) -0:286 'CA4' (uniform highp samplerCubeArray) -0:286 Constant: -0:286 0.500000 -0:286 0.500000 -0:286 0.500000 -0:286 0.500000 -0:287 Sequence -0:287 move second child to first child (temp highp float) -0:287 't5' (temp highp float) -0:287 texture (global highp float) -0:287 'CA5' (uniform highp samplerCubeArrayShadow) -0:287 Constant: -0:287 0.500000 -0:287 0.500000 -0:287 0.500000 -0:287 0.500000 -0:287 Constant: -0:287 3.000000 -0:288 Sequence -0:288 move second child to first child (temp highp 4-component vector of int) -0:288 't6' (temp highp 4-component vector of int) -0:288 texture (global highp 4-component vector of int) -0:288 'CA6' (uniform highp isamplerCubeArray) -0:288 Constant: -0:288 0.500000 -0:288 0.500000 -0:288 0.500000 -0:288 0.500000 -0:289 Sequence -0:289 move second child to first child (temp highp 4-component vector of uint) -0:289 't7' (temp highp 4-component vector of uint) -0:289 texture (global highp 4-component vector of uint) -0:289 'CA7' (uniform highp usamplerCubeArray) -0:289 Constant: -0:289 0.500000 -0:289 0.500000 -0:289 0.500000 -0:289 0.500000 -0:291 Sequence -0:291 move second child to first child (temp highp 4-component vector of float) -0:291 'L4' (temp highp 4-component vector of float) -0:291 textureLod (global highp 4-component vector of float) -0:291 'CA4' (uniform highp samplerCubeArray) -0:291 Constant: -0:291 0.500000 -0:291 0.500000 -0:291 0.500000 -0:291 0.500000 -0:291 Constant: -0:291 0.240000 -0:292 Sequence -0:292 move second child to first child (temp highp 4-component vector of int) -0:292 'L6' (temp highp 4-component vector of int) -0:292 textureLod (global highp 4-component vector of int) -0:292 'CA6' (uniform highp isamplerCubeArray) -0:292 Constant: -0:292 0.500000 -0:292 0.500000 -0:292 0.500000 -0:292 0.500000 -0:292 Constant: -0:292 0.260000 -0:293 Sequence -0:293 move second child to first child (temp highp 4-component vector of uint) -0:293 'L7' (temp highp 4-component vector of uint) -0:293 textureLod (global highp 4-component vector of uint) -0:293 'CA7' (uniform highp usamplerCubeArray) -0:293 Constant: -0:293 0.500000 -0:293 0.500000 -0:293 0.500000 -0:293 0.500000 -0:293 Constant: -0:293 0.270000 -0:295 Sequence -0:295 move second child to first child (temp highp 4-component vector of float) -0:295 'g4' (temp highp 4-component vector of float) -0:295 textureGrad (global highp 4-component vector of float) -0:295 'CA4' (uniform highp samplerCubeArray) -0:295 Constant: -0:295 0.500000 -0:295 0.500000 -0:295 0.500000 -0:295 0.500000 -0:295 Constant: -0:295 0.100000 -0:295 0.100000 -0:295 0.100000 -0:295 Constant: -0:295 0.200000 -0:295 0.200000 -0:295 0.200000 -0:296 Sequence -0:296 move second child to first child (temp highp 4-component vector of int) -0:296 'g6' (temp highp 4-component vector of int) -0:296 textureGrad (global highp 4-component vector of int) -0:296 'CA6' (uniform highp isamplerCubeArray) -0:296 Constant: -0:296 0.500000 -0:296 0.500000 -0:296 0.500000 -0:296 0.500000 -0:296 Constant: -0:296 0.100000 -0:296 0.100000 -0:296 0.100000 -0:296 Constant: -0:296 0.200000 -0:296 0.200000 -0:296 0.200000 -0:297 Sequence -0:297 move second child to first child (temp highp 4-component vector of uint) -0:297 'g7' (temp highp 4-component vector of uint) -0:297 textureGrad (global highp 4-component vector of uint) -0:297 'CA7' (uniform highp usamplerCubeArray) -0:297 Constant: -0:297 0.500000 -0:297 0.500000 -0:297 0.500000 -0:297 0.500000 -0:297 Constant: -0:297 0.100000 -0:297 0.100000 -0:297 0.100000 -0:297 Constant: -0:297 0.200000 -0:297 0.200000 -0:297 0.200000 -0:299 Sequence -0:299 move second child to first child (temp highp 4-component vector of float) -0:299 'gath4' (temp highp 4-component vector of float) -0:299 textureGather (global highp 4-component vector of float) -0:299 'CA4' (uniform highp samplerCubeArray) -0:299 Constant: -0:299 0.500000 -0:299 0.500000 -0:299 0.500000 -0:299 0.500000 -0:300 Sequence -0:300 move second child to first child (temp highp 4-component vector of float) -0:300 'gathC4' (temp highp 4-component vector of float) -0:300 textureGather (global highp 4-component vector of float) -0:300 'CA4' (uniform highp samplerCubeArray) -0:300 Constant: -0:300 0.500000 -0:300 0.500000 -0:300 0.500000 -0:300 0.500000 -0:300 Constant: -0:300 2 (const int) -0:301 Sequence -0:301 move second child to first child (temp highp 4-component vector of int) -0:301 'gath6' (temp highp 4-component vector of int) -0:301 textureGather (global highp 4-component vector of int) -0:301 'CA6' (uniform highp isamplerCubeArray) -0:301 Constant: -0:301 0.500000 -0:301 0.500000 -0:301 0.500000 -0:301 0.500000 -0:302 Sequence -0:302 move second child to first child (temp highp 4-component vector of int) -0:302 'gathC6' (temp highp 4-component vector of int) -0:302 textureGather (global highp 4-component vector of int) -0:302 'CA6' (uniform highp isamplerCubeArray) -0:302 Constant: -0:302 0.500000 -0:302 0.500000 -0:302 0.500000 -0:302 0.500000 -0:302 Constant: -0:302 1 (const int) -0:303 Sequence -0:303 move second child to first child (temp highp 4-component vector of uint) -0:303 'gath7' (temp highp 4-component vector of uint) -0:303 textureGather (global highp 4-component vector of uint) -0:303 'CA7' (uniform highp usamplerCubeArray) -0:303 Constant: -0:303 0.500000 -0:303 0.500000 -0:303 0.500000 -0:303 0.500000 -0:304 Sequence -0:304 move second child to first child (temp highp 4-component vector of uint) -0:304 'gathC7' (temp highp 4-component vector of uint) -0:304 textureGather (global highp 4-component vector of uint) -0:304 'CA7' (uniform highp usamplerCubeArray) -0:304 Constant: -0:304 0.500000 -0:304 0.500000 -0:304 0.500000 -0:304 0.500000 -0:304 Constant: -0:304 0 (const int) -0:306 Sequence -0:306 move second child to first child (temp highp 4-component vector of float) -0:306 'gath5' (temp highp 4-component vector of float) -0:306 textureGather (global highp 4-component vector of float) -0:306 'CA5' (uniform highp samplerCubeArrayShadow) -0:306 Constant: -0:306 0.500000 -0:306 0.500000 -0:306 0.500000 -0:306 0.500000 -0:306 Constant: -0:306 2.500000 -0:308 Sequence -0:308 move second child to first child (temp highp 3-component vector of int) -0:308 's1' (temp highp 3-component vector of int) -0:308 imageQuerySize (global highp 3-component vector of int) -0:308 'CA1' (writeonly uniform highp imageCubeArray) -0:309 Sequence -0:309 move second child to first child (temp highp 3-component vector of int) -0:309 's2' (temp highp 3-component vector of int) -0:309 imageQuerySize (global highp 3-component vector of int) -0:309 'CA2' (writeonly uniform highp iimageCubeArray) -0:310 Sequence -0:310 move second child to first child (temp highp 3-component vector of int) -0:310 's3' (temp highp 3-component vector of int) -0:310 imageQuerySize (global highp 3-component vector of int) -0:310 'CA3' (writeonly uniform highp uimageCubeArray) -0:312 imageStore (global highp void) -0:312 'CA1' (writeonly uniform highp imageCubeArray) -0:312 's3' (temp highp 3-component vector of int) -0:312 Constant: -0:312 1.000000 -0:312 1.000000 -0:312 1.000000 -0:312 1.000000 -0:313 imageStore (global highp void) -0:313 'CA2' (writeonly uniform highp iimageCubeArray) -0:313 's3' (temp highp 3-component vector of int) -0:313 Constant: -0:313 1 (const int) -0:313 1 (const int) -0:313 1 (const int) -0:313 1 (const int) -0:314 imageStore (global highp void) -0:314 'CA3' (writeonly uniform highp uimageCubeArray) -0:314 's3' (temp highp 3-component vector of int) -0:314 Constant: -0:314 1 (const uint) -0:314 1 (const uint) -0:314 1 (const uint) -0:314 1 (const uint) -0:316 Sequence -0:316 move second child to first child (temp highp 4-component vector of float) -0:316 'cl1' (temp highp 4-component vector of float) -0:316 imageLoad (global highp 4-component vector of float) -0:316 'rCA1' (layout(rgba16f ) readonly uniform highp imageCubeArray) -0:316 's3' (temp highp 3-component vector of int) -0:317 Sequence -0:317 move second child to first child (temp highp 4-component vector of int) -0:317 'cl2' (temp highp 4-component vector of int) -0:317 imageLoad (global highp 4-component vector of int) -0:317 'rCA2' (layout(rgba32i ) readonly uniform highp iimageCubeArray) -0:317 's3' (temp highp 3-component vector of int) -0:318 Sequence -0:318 move second child to first child (temp highp 4-component vector of uint) -0:318 'cl3' (temp highp 4-component vector of uint) -0:318 imageLoad (global highp 4-component vector of uint) -0:318 'rCA3' (layout(r32ui ) readonly uniform highp uimageCubeArray) -0:318 's3' (temp highp 3-component vector of int) -0:343 Function Definition: MSA( (global void) -0:343 Function Parameters: -0:345 Sequence -0:345 Sequence -0:345 move second child to first child (temp highp 4-component vector of float) -0:345 'tf' (temp highp 4-component vector of float) -0:345 textureFetch (global highp 4-component vector of float) -0:345 'samp2DMSA' (uniform highp sampler2DMSArray) -0:345 Constant: -0:345 5 (const int) -0:345 5 (const int) -0:345 5 (const int) -0:345 Constant: -0:345 2 (const int) -0:346 Sequence -0:346 move second child to first child (temp highp 4-component vector of int) -0:346 'tfi' (temp highp 4-component vector of int) -0:346 textureFetch (global highp 4-component vector of int) -0:346 'samp2DMSAi' (uniform highp isampler2DMSArray) -0:346 Constant: -0:346 5 (const int) -0:346 5 (const int) -0:346 5 (const int) -0:346 Constant: -0:346 2 (const int) -0:347 Sequence -0:347 move second child to first child (temp highp 4-component vector of uint) -0:347 'tfu' (temp highp 4-component vector of uint) -0:347 textureFetch (global highp 4-component vector of uint) -0:347 'samp2DMSAu' (uniform highp usampler2DMSArray) -0:347 Constant: -0:347 5 (const int) -0:347 5 (const int) -0:347 5 (const int) -0:347 Constant: -0:347 2 (const int) -0:349 Sequence -0:349 move second child to first child (temp highp 3-component vector of int) -0:349 'tfs' (temp highp 3-component vector of int) -0:349 textureSize (global highp 3-component vector of int) -0:349 'samp2DMSA' (uniform highp sampler2DMSArray) -0:350 Sequence -0:350 move second child to first child (temp highp 3-component vector of int) -0:350 'tfsi' (temp highp 3-component vector of int) -0:350 textureSize (global highp 3-component vector of int) -0:350 'samp2DMSAi' (uniform highp isampler2DMSArray) -0:352 Sequence -0:352 move second child to first child (temp highp 3-component vector of int) -0:352 'tfsu' (temp highp 3-component vector of int) -0:352 textureSize (global highp 3-component vector of int) -0:352 'samp2DMSAu' (uniform highp usampler2DMSArray) -0:364 Function Definition: goodImageAtom( (global void) -0:364 Function Parameters: -0:? Sequence -0:370 imageAtomicAdd (global highp int) -0:370 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:370 'P' (uniform highp 2-component vector of int) -0:370 'dati' (temp highp int) -0:371 imageAtomicAdd (global highp uint) -0:371 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:371 'P' (uniform highp 2-component vector of int) -0:371 'datu' (temp highp uint) -0:372 imageAtomicMin (global highp int) -0:372 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:372 'P' (uniform highp 2-component vector of int) -0:372 'dati' (temp highp int) -0:373 imageAtomicMin (global highp uint) -0:373 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:373 'P' (uniform highp 2-component vector of int) -0:373 'datu' (temp highp uint) -0:374 imageAtomicMax (global highp int) -0:374 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:374 'P' (uniform highp 2-component vector of int) -0:374 'dati' (temp highp int) -0:375 imageAtomicMax (global highp uint) -0:375 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:375 'P' (uniform highp 2-component vector of int) -0:375 'datu' (temp highp uint) -0:376 imageAtomicAnd (global highp int) -0:376 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:376 'P' (uniform highp 2-component vector of int) -0:376 'dati' (temp highp int) -0:377 imageAtomicAnd (global highp uint) -0:377 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:377 'P' (uniform highp 2-component vector of int) -0:377 'datu' (temp highp uint) -0:378 imageAtomicOr (global highp int) -0:378 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:378 'P' (uniform highp 2-component vector of int) -0:378 'dati' (temp highp int) -0:379 imageAtomicOr (global highp uint) -0:379 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:379 'P' (uniform highp 2-component vector of int) -0:379 'datu' (temp highp uint) -0:380 imageAtomicXor (global highp int) -0:380 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:380 'P' (uniform highp 2-component vector of int) -0:380 'dati' (temp highp int) -0:381 imageAtomicXor (global highp uint) -0:381 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:381 'P' (uniform highp 2-component vector of int) -0:381 'datu' (temp highp uint) -0:382 imageAtomicExchange (global highp int) -0:382 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:382 'P' (uniform highp 2-component vector of int) -0:382 'dati' (temp highp int) -0:383 imageAtomicExchange (global highp uint) -0:383 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:383 'P' (uniform highp 2-component vector of int) -0:383 'datu' (temp highp uint) -0:384 imageAtomicExchange (global highp float) -0:384 'im2Df' (layout(r32f ) uniform highp image2D) -0:384 'P' (uniform highp 2-component vector of int) -0:384 'datf' (temp highp float) -0:385 imageAtomicCompSwap (global highp int) -0:385 'im2Di' (layout(r32i ) uniform highp iimage2D) -0:385 'P' (uniform highp 2-component vector of int) -0:385 Constant: -0:385 3 (const int) -0:385 'dati' (temp highp int) -0:386 imageAtomicCompSwap (global highp uint) -0:386 'im2Du' (layout(r32ui ) uniform highp uimage2D) -0:386 'P' (uniform highp 2-component vector of int) -0:386 Constant: -0:386 5 (const uint) -0:386 'datu' (temp highp uint) -0:398 Function Definition: badInterp( (global void) -0:398 Function Parameters: -0:400 Sequence -0:400 Constant: -0:400 0.000000 -0:401 Constant: -0:401 0.000000 -0:402 Constant: -0:402 0.000000 0:? Linker Objects 0:? 's' (shared highp 4-component vector of float) 0:? 'v' (buffer highp 4-component vector of float) diff --git a/Test/baseResults/310AofA.vert.out b/Test/baseResults/310AofA.vert.out index 83f105ca1af70e95f8118cc5156ffdcea732dd12..6b69e71e8ec4dc0ff09888a2a996c1a6253027b2 100644 --- a/Test/baseResults/310AofA.vert.out +++ b/Test/baseResults/310AofA.vert.out @@ -5,7 +5,7 @@ ERROR: 0:23: '' : array size required ERROR: 0:28: '[]' : only outermost dimension of an array of arrays can be implicitly sized ERROR: 0:40: '' : array size required ERROR: 0:48: 'constructor' : constructing non-array constituent from array argument -ERROR: 0:49: 'constructior' : array constructor argument not correct type to construct array element +ERROR: 0:49: 'constructor' : array constructor argument not correct type to construct array element ERROR: 0:62: '[' : array index out of range '4' ERROR: 0:78: 'assign' : cannot convert from 'global 4-element array of 7-element array of highp float' to 'global 5-element array of 7-element array of highp float' ERROR: 0:79: 'assign' : cannot convert from 'global 4-element array of 7-element array of highp float' to 'global implicitly-sized array of 7-element array of highp float' @@ -359,277 +359,6 @@ ERROR: node is still EOpNull! 0:13 1 (const uint) 0:13 2 (const uint) 0:13 'd' (temp 3-element array of 2-element array of highp int) -0:44 Function Definition: foo(f1[5][7]; (global 4-element array of 7-element array of highp float) -0:44 Function Parameters: -0:44 'a' (in 5-element array of 7-element array of highp float) -0:? Sequence -0:47 move second child to first child (temp 7-element array of highp float) -0:47 'r' (temp 7-element array of highp float) -0:47 direct index (temp 7-element array of highp float) -0:47 'a' (in 5-element array of 7-element array of highp float) -0:47 Constant: -0:47 2 (const int) -0:48 Constant: -0:48 0.000000 -0:49 Constant: -0:49 0.000000 -0:50 Branch: Return with expression -0:50 Construct float (temp 4-element array of 7-element array of float) -0:50 direct index (temp 7-element array of highp float) -0:50 'a' (in 5-element array of 7-element array of highp float) -0:50 Constant: -0:50 0 (const int) -0:50 direct index (temp 7-element array of highp float) -0:50 'a' (in 5-element array of 7-element array of highp float) -0:50 Constant: -0:50 1 (const int) -0:50 'r' (temp 7-element array of highp float) -0:50 direct index (temp 7-element array of highp float) -0:50 'a' (in 5-element array of 7-element array of highp float) -0:50 Constant: -0:50 3 (const int) -0:51 Branch: Return with expression -0:51 Construct float (temp 4-element array of 7-element array of float) -0:51 direct index (temp 7-element array of highp float) -0:51 'a' (in 5-element array of 7-element array of highp float) -0:51 Constant: -0:51 0 (const int) -0:51 direct index (temp 7-element array of highp float) -0:51 'a' (in 5-element array of 7-element array of highp float) -0:51 Constant: -0:51 1 (const int) -0:51 'r' (temp 7-element array of highp float) -0:51 direct index (temp 7-element array of highp float) -0:51 'a' (in 5-element array of 7-element array of highp float) -0:51 Constant: -0:51 3 (const int) -0:52 Branch: Return with expression -0:52 Construct float (temp 4-element array of 7-element array of float) -0:52 direct index (temp 7-element array of highp float) -0:52 'a' (in 5-element array of 7-element array of highp float) -0:52 Constant: -0:52 0 (const int) -0:52 direct index (temp 7-element array of highp float) -0:52 'a' (in 5-element array of 7-element array of highp float) -0:52 Constant: -0:52 1 (const int) -0:52 direct index (temp 7-element array of highp float) -0:52 'a' (in 5-element array of 7-element array of highp float) -0:52 Constant: -0:52 2 (const int) -0:52 direct index (temp 7-element array of highp float) -0:52 'a' (in 5-element array of 7-element array of highp float) -0:52 Constant: -0:52 3 (const int) -0:55 Function Definition: bar(f1[5][7]; (global void) -0:55 Function Parameters: -0:55 '' (in 5-element array of 7-element array of highp float) -0:57 Function Definition: foo2( (global void) -0:57 Function Parameters: -0:? Sequence -0:? Sequence -0:62 move second child to first child (temp highp float) -0:62 direct index (temp highp float) -0:62 direct index (temp 2-element array of highp float) -0:62 direct index (temp 4-element array of 2-element array of highp float) -0:62 'gu' (temp 3-element array of 4-element array of 2-element array of highp float) -0:62 Constant: -0:62 2 (const int) -0:62 Constant: -0:62 4 (const int) -0:62 Constant: -0:62 1 (const int) -0:62 Constant: -0:62 4.000000 -0:64 Sequence -0:64 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float) -0:64 'ca4' (temp 3-element array of 2-element array of highp 4-component vector of float) -0:66 Constant: -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 1.000000 -0:66 1.000000 -0:66 1.000000 -0:66 1.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 1.000000 -0:66 1.000000 -0:66 1.000000 -0:66 1.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 0.000000 -0:66 1.000000 -0:66 1.000000 -0:66 1.000000 -0:66 1.000000 -0:67 Sequence -0:67 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float) -0:67 'caim' (temp 3-element array of 2-element array of highp 4-component vector of float) -0:69 Constant: -0:69 4.000000 -0:69 4.000000 -0:69 4.000000 -0:69 4.000000 -0:69 2.000000 -0:69 2.000000 -0:69 2.000000 -0:69 2.000000 -0:69 4.000000 -0:69 4.000000 -0:69 4.000000 -0:69 4.000000 -0:69 2.000000 -0:69 2.000000 -0:69 2.000000 -0:69 2.000000 -0:69 4.000000 -0:69 4.000000 -0:69 4.000000 -0:69 4.000000 -0:69 2.000000 -0:69 2.000000 -0:69 2.000000 -0:69 2.000000 -0:70 Sequence -0:70 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float) -0:70 'caim2' (temp 3-element array of 2-element array of highp 4-component vector of float) -0:72 Constant: -0:72 4.000000 -0:72 4.000000 -0:72 4.000000 -0:72 4.000000 -0:72 2.000000 -0:72 2.000000 -0:72 2.000000 -0:72 2.000000 -0:72 4.000000 -0:72 4.000000 -0:72 4.000000 -0:72 4.000000 -0:72 2.000000 -0:72 2.000000 -0:72 2.000000 -0:72 2.000000 -0:72 4.000000 -0:72 4.000000 -0:72 4.000000 -0:72 4.000000 -0:72 2.000000 -0:72 2.000000 -0:72 2.000000 -0:72 2.000000 -0:73 Sequence -0:73 move second child to first child (temp 3-element array of 2-element array of highp 4-component vector of float) -0:73 'caim3' (temp 3-element array of 2-element array of highp 4-component vector of float) -0:75 Constant: -0:75 4.000000 -0:75 4.000000 -0:75 4.000000 -0:75 4.000000 -0:75 2.000000 -0:75 2.000000 -0:75 2.000000 -0:75 2.000000 -0:75 4.000000 -0:75 4.000000 -0:75 4.000000 -0:75 4.000000 -0:75 2.000000 -0:75 2.000000 -0:75 2.000000 -0:75 2.000000 -0:75 4.000000 -0:75 4.000000 -0:75 4.000000 -0:75 4.000000 -0:75 2.000000 -0:75 2.000000 -0:75 2.000000 -0:75 2.000000 -0:77 move second child to first child (temp 4-element array of 7-element array of highp float) -0:77 'g4' (global 4-element array of 7-element array of highp float) -0:77 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float) -0:77 'g5' (global 5-element array of 7-element array of highp float) -0:78 'g5' (global 5-element array of 7-element array of highp float) -0:79 'gu' (global 1-element array of 7-element array of highp float) -0:81 Constant: -0:81 0.000000 -0:82 Function Call: bar(f1[5][7]; (global void) -0:82 'g5' (global 5-element array of 7-element array of highp float) -0:84 Test condition and select (temp void) -0:84 Condition -0:84 Compare Equal (temp bool) -0:84 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float) -0:84 'g5' (global 5-element array of 7-element array of highp float) -0:84 'g4' (global 4-element array of 7-element array of highp float) -0:84 true case is null -0:86 Test condition and select (temp void) -0:86 Condition -0:86 Constant: -0:86 false (const bool) -0:86 true case is null -0:90 move second child to first child (temp highp float) -0:90 direct index (temp highp float) -0:90 direct index (temp 7-element array of highp float) -0:90 'u' (temp 5-element array of 7-element array of highp float) -0:90 Constant: -0:90 5 (const int) -0:90 Constant: -0:90 2 (const int) -0:90 Constant: -0:90 5.000000 -0:91 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of highp float) -0:91 'u' (temp 5-element array of 7-element array of highp float) -0:94 direct index (layout(column_major shared ) temp highp 4-component vector of float) -0:94 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float) -0:94 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:94 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 1 (const int) -0:94 Constant: -0:94 -1 (const int) -0:95 move second child to first child (temp highp 4-component vector of float) -0:95 direct index (layout(column_major shared ) temp highp 4-component vector of float) -0:95 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float) -0:95 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:95 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 1 (const int) -0:95 Constant: -0:95 4.300000 -0:95 4.300000 -0:95 4.300000 -0:95 4.300000 -0:96 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float) -0:96 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:96 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) -0:96 Constant: -0:96 1 (const int) -0:96 Constant: -0:96 1 (const int) -0:98 Constant: -0:98 7 (const int) -0:99 array length (temp int) -0:99 v: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float) -0:99 direct index (layout(column_major shared ) temp block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) -0:99 'name3' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer highp float u, layout(column_major shared ) buffer implicitly-sized array of 7-element array of highp 4-component vector of float v}) -0:99 Constant: -0:99 0 (const int) -0:99 Constant: -0:99 1 (const int) 0:? Linker Objects 0:? 'name' (layout(column_major shared ) buffer 3-element array of block{layout(column_major shared ) buffer implicitly-sized array of highp float u, layout(column_major shared ) buffer implicitly-sized array of highp 4-component vector of float v}) 0:? 'uname' (layout(column_major shared ) uniform 3-element array of block{layout(column_major shared ) uniform highp float u, layout(column_major shared ) uniform 1-element array of highp 4-component vector of float v}) diff --git a/Test/baseResults/330.frag.out b/Test/baseResults/330.frag.out index 904ad3edf38cc1ce0e78c24bfeab6102891535ab..d3c54fcf7331cd2af22c3f0d5063550870be40c3 100644 --- a/Test/baseResults/330.frag.out +++ b/Test/baseResults/330.frag.out @@ -152,31 +152,6 @@ ERROR: node is still EOpNull! 0:12 'buffer' (temp int) 0:12 Constant: 0:12 4 (const int) -0:21 Function Definition: foo( (global void) -0:21 Function Parameters: -0:23 Sequence -0:23 Sequence -0:23 move second child to first child (temp 4-component vector of float) -0:23 'c' (temp 4-component vector of float) -0:23 gl_Color: direct index for structure (in 4-component vector of float Color) -0:23 'anon@0' (in block{in 4-component vector of float Color gl_Color, }) -0:23 Constant: -0:23 2 (const uint) -0:24 move second child to first child (temp 4-component vector of float) -0:24 'outVar' (layout(location=0 index=0 ) out 4-component vector of float) -0:24 'inVar' (smooth in 4-component vector of float) -0:133 Function Definition: qlod( (global void) -0:133 Function Parameters: -0:? Sequence -0:140 'lod' (temp 2-component vector of float) -0:141 'lod' (temp 2-component vector of float) -0:147 Function Definition: fooKeyMem( (global void) -0:147 Function Parameters: -0:149 Sequence -0:149 precise: direct index for structure (global int) -0:149 'KeyMem' (global structure{global int precise}) -0:149 Constant: -0:149 0 (const int) 0:? Linker Objects 0:? 'inVar' (smooth in 4-component vector of float) 0:? 'outVar' (layout(location=0 index=0 ) out 4-component vector of float) diff --git a/Test/baseResults/400.frag.out b/Test/baseResults/400.frag.out index 33a8c9ab05f73617d43bdbbf06c0fe3757a0b551..aea4e49b3d5dde791c4106f610a4be0cc8c0dc0c 100644 --- a/Test/baseResults/400.frag.out +++ b/Test/baseResults/400.frag.out @@ -481,8 +481,6 @@ ERROR: node is still EOpNull! 0:? 'vl2' (layout(location=6 ) smooth in 4-component vector of float) 0:? 'uv3' (layout(location=3 ) uniform 3-component vector of float) 0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'u2drs' (uniform sampler2DRectShadow) 0:? 'patchIn' (smooth patch in 4-component vector of float) @@ -644,312 +642,6 @@ ERROR: node is still EOpNull! 0:27 move second child to first child (temp 4-component vector of float) 0:27 'c' (temp 4-component vector of float) 0:27 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:47 Function Definition: foo23( (global void) -0:47 Function Parameters: -0:? Sequence -0:51 textureProjGradOffset (global float) -0:51 'u2drs' (uniform sampler2DRectShadow) -0:51 'outp' (out 4-component vector of float) -0:51 Constant: -0:51 0.000000 -0:51 0.000000 -0:51 Constant: -0:51 0.000000 -0:51 0.000000 -0:51 Convert float to int (temp 2-component vector of int) -0:51 'c2D' (smooth in 2-component vector of float) -0:52 textureProjGradOffset (global float) -0:52 'u2drs' (uniform sampler2DRectShadow) -0:52 'outp' (out 4-component vector of float) -0:52 Constant: -0:52 0.000000 -0:52 0.000000 -0:52 Constant: -0:52 0.000000 -0:52 0.000000 -0:52 Constant: -0:52 3 (const int) -0:52 4 (const int) -0:53 textureProjGradOffset (global float) -0:53 'u2drs' (uniform sampler2DRectShadow) -0:53 'outp' (out 4-component vector of float) -0:53 Constant: -0:53 0.000000 -0:53 0.000000 -0:53 Constant: -0:53 0.000000 -0:53 0.000000 -0:53 Constant: -0:53 15 (const int) -0:53 16 (const int) -0:54 textureProjGradOffset (global float) -0:54 'u2drs' (uniform sampler2DRectShadow) -0:54 'outp' (out 4-component vector of float) -0:54 Constant: -0:54 0.000000 -0:54 0.000000 -0:54 Constant: -0:54 0.000000 -0:54 0.000000 -0:54 Constant: -0:54 -10 (const int) -0:54 20 (const int) -0:60 Function Definition: foo24( (global void) -0:60 Function Parameters: -0:? Sequence -0:63 move second child to first child (temp 3-component vector of double) -0:63 'df' (temp 3-component vector of double) -0:63 modf (global 3-component vector of double) -0:63 Convert float to double (temp 3-component vector of double) -0:63 vector swizzle (temp 3-component vector of float) -0:63 'outp' (out 4-component vector of float) -0:63 Sequence -0:63 Constant: -0:63 0 (const int) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 2 (const int) -0:63 'di' (temp 3-component vector of double) -0:71 Function Definition: foodc1( (global void) -0:71 Function Parameters: -0:73 Sequence -0:73 Sequence -0:73 move second child to first child (temp 2-component vector of float) -0:73 'v2' (temp 2-component vector of float) -0:73 dPdxFine (global 2-component vector of float) -0:73 'in2' (smooth in 2-component vector of float) -0:74 Sequence -0:74 move second child to first child (temp 3-component vector of float) -0:74 'v3' (temp 3-component vector of float) -0:74 dPdyCoarse (global 3-component vector of float) -0:74 'in3' (smooth in 3-component vector of float) -0:75 Sequence -0:75 move second child to first child (temp 4-component vector of float) -0:75 'v4' (temp 4-component vector of float) -0:75 add (temp 4-component vector of float) -0:75 fwidthCoarse (global 4-component vector of float) -0:75 'in4' (smooth in 4-component vector of float) -0:75 fwidthFine (global 4-component vector of float) -0:75 'in4' (smooth in 4-component vector of float) -0:80 Function Definition: foodc2( (global void) -0:80 Function Parameters: -0:82 Sequence -0:82 Sequence -0:82 move second child to first child (temp 2-component vector of float) -0:82 'v2' (temp 2-component vector of float) -0:82 dPdxFine (global 2-component vector of float) -0:82 'in2' (smooth in 2-component vector of float) -0:83 Sequence -0:83 move second child to first child (temp 3-component vector of float) -0:83 'v3' (temp 3-component vector of float) -0:83 dPdyCoarse (global 3-component vector of float) -0:83 'in3' (smooth in 3-component vector of float) -0:84 Sequence -0:84 move second child to first child (temp 4-component vector of float) -0:84 'v4' (temp 4-component vector of float) -0:84 add (temp 4-component vector of float) -0:84 fwidthCoarse (global 4-component vector of float) -0:84 'in4' (smooth in 4-component vector of float) -0:84 fwidthFine (global 4-component vector of float) -0:84 'in4' (smooth in 4-component vector of float) -0:89 move second child to first child (temp 2-component vector of float) -0:89 'v2' (temp 2-component vector of float) -0:89 frexp (global 2-component vector of float) -0:89 'v2' (temp 2-component vector of float) -0:89 'i2' (temp 2-component vector of int) -0:90 move second child to first child (temp 3-component vector of float) -0:90 'v3' (temp 3-component vector of float) -0:90 ldexp (global 3-component vector of float) -0:90 'v3' (temp 3-component vector of float) -0:90 'i3' (temp 3-component vector of int) -0:92 move second child to first child (temp uint) -0:92 'u1' (temp uint) -0:92 PackUnorm4x8 (global uint) -0:92 'v4' (temp 4-component vector of float) -0:93 move second child to first child (temp uint) -0:93 'u1' (temp uint) -0:93 PackSnorm4x8 (global uint) -0:93 'v4' (temp 4-component vector of float) -0:94 move second child to first child (temp 4-component vector of float) -0:94 'v4' (temp 4-component vector of float) -0:94 UnpackUnorm4x8 (global 4-component vector of float) -0:94 'u1' (temp uint) -0:95 move second child to first child (temp 4-component vector of float) -0:95 'v4' (temp 4-component vector of float) -0:95 UnpackSnorm4x8 (global 4-component vector of float) -0:95 'u1' (temp uint) -0:99 move second child to first child (temp double) -0:99 'd' (temp double) -0:99 PackDouble2x32 (global double) -0:99 'u2' (temp 2-component vector of uint) -0:100 move second child to first child (temp 2-component vector of uint) -0:100 'u2' (temp 2-component vector of uint) -0:100 UnpackDouble2x32 (global 2-component vector of uint) -0:100 'd' (temp double) -0:117 Function Definition: interp( (global void) -0:117 Function Parameters: -0:119 Sequence -0:119 interpolateAtCentroid (global 2-component vector of float) -0:119 'colorfc' (centroid flat in 2-component vector of float) -0:120 interpolateAtCentroid (global 4-component vector of float) -0:120 'colorSampIn' (smooth sample in 4-component vector of float) -0:121 interpolateAtCentroid (global 4-component vector of float) -0:121 'colorfsi' (noperspective in 4-component vector of float) -0:122 interpolateAtCentroid (global float) -0:122 'scalarIn' (smooth in float) -0:123 Constant: -0:123 0.000000 -0:124 interpolateAtCentroid (global 3-component vector of float) -0:124 direct index (smooth sample temp 3-component vector of float) -0:124 'sampInArray' (smooth sample in 4-element array of 3-component vector of float) -0:124 Constant: -0:124 2 (const int) -0:125 interpolateAtCentroid (global 2-component vector of float) -0:125 vector swizzle (temp 2-component vector of float) -0:125 direct index (smooth sample temp 3-component vector of float) -0:125 'sampInArray' (smooth sample in 4-element array of 3-component vector of float) -0:125 Constant: -0:125 2 (const int) -0:125 Sequence -0:125 Constant: -0:125 0 (const int) -0:125 Constant: -0:125 1 (const int) -0:127 Constant: -0:127 0.000000 -0:128 interpolateAtSample (global 3-component vector of float) -0:128 indirect index (smooth sample temp 3-component vector of float) -0:128 'sampInArray' (smooth sample in 4-element array of 3-component vector of float) -0:128 'i' (flat in int) -0:128 Constant: -0:128 0 (const int) -0:129 interpolateAtSample (global float) -0:129 x: direct index for structure (global float) -0:129 's1' (smooth in structure{global float x}) -0:129 Constant: -0:129 0 (const int) -0:129 Constant: -0:129 2 (const int) -0:130 interpolateAtSample (global float) -0:130 'scalarIn' (smooth in float) -0:130 Constant: -0:130 1 (const int) -0:132 Constant: -0:132 0.000000 -0:133 interpolateAtOffset (global 3-component vector of float) -0:133 direct index (smooth sample temp 3-component vector of float) -0:133 'sampInArray' (smooth sample in 4-element array of 3-component vector of float) -0:133 Constant: -0:133 2 (const int) -0:133 Constant: -0:133 0.200000 -0:133 0.200000 -0:134 interpolateAtOffset (global 2-component vector of float) -0:134 vector swizzle (temp 2-component vector of float) -0:134 direct index (smooth sample temp 3-component vector of float) -0:134 'sampInArray' (smooth sample in 4-element array of 3-component vector of float) -0:134 Constant: -0:134 2 (const int) -0:134 Sequence -0:134 Constant: -0:134 0 (const int) -0:134 Constant: -0:134 1 (const int) -0:134 Constant: -0:134 0.200000 -0:134 0.200000 -0:135 interpolateAtOffset (global float) -0:135 add (temp float) -0:135 'scalarIn' (smooth in float) -0:135 'scalarIn' (smooth in float) -0:135 Constant: -0:135 0.200000 -0:135 0.200000 -0:136 interpolateAtOffset (global float) -0:136 x: direct index for structure (global float) -0:136 's2' (sample temp structure{global float x}) -0:136 Constant: -0:136 0 (const int) -0:136 Constant: -0:136 0.200000 -0:136 0.200000 -0:139 interpolateAtCentroid (global float) -0:139 'f' (temp float) -0:140 interpolateAtSample (global 4-component vector of float) -0:140 'outp' (out 4-component vector of float) -0:140 Constant: -0:140 0 (const int) -0:161 Function Definition: qlod( (global void) -0:161 Function Parameters: -0:? Sequence -0:168 move second child to first child (temp 2-component vector of float) -0:168 'lod' (temp 2-component vector of float) -0:168 textureQueryLod (global 2-component vector of float) -0:168 'samp1D' (uniform sampler1D) -0:168 'pf' (temp float) -0:169 move second child to first child (temp 2-component vector of float) -0:169 'lod' (temp 2-component vector of float) -0:169 textureQueryLod (global 2-component vector of float) -0:169 'isamp2D' (uniform isampler2D) -0:169 'pf2' (temp 2-component vector of float) -0:170 move second child to first child (temp 2-component vector of float) -0:170 'lod' (temp 2-component vector of float) -0:170 textureQueryLod (global 2-component vector of float) -0:170 'usamp3D' (uniform usampler3D) -0:170 'pf3' (temp 3-component vector of float) -0:171 move second child to first child (temp 2-component vector of float) -0:171 'lod' (temp 2-component vector of float) -0:171 textureQueryLod (global 2-component vector of float) -0:171 'sampCube' (uniform samplerCube) -0:171 'pf3' (temp 3-component vector of float) -0:172 move second child to first child (temp 2-component vector of float) -0:172 'lod' (temp 2-component vector of float) -0:172 textureQueryLod (global 2-component vector of float) -0:172 'isamp1DA' (uniform isampler1DArray) -0:172 'pf' (temp float) -0:173 move second child to first child (temp 2-component vector of float) -0:173 'lod' (temp 2-component vector of float) -0:173 textureQueryLod (global 2-component vector of float) -0:173 'usamp2DA' (uniform usampler2DArray) -0:173 'pf2' (temp 2-component vector of float) -0:174 move second child to first child (temp 2-component vector of float) -0:174 'lod' (temp 2-component vector of float) -0:174 textureQueryLod (global 2-component vector of float) -0:174 'isampCubeA' (uniform isamplerCubeArray) -0:174 'pf3' (temp 3-component vector of float) -0:176 move second child to first child (temp 2-component vector of float) -0:176 'lod' (temp 2-component vector of float) -0:176 textureQueryLod (global 2-component vector of float) -0:176 'samp1Ds' (uniform sampler1DShadow) -0:176 'pf' (temp float) -0:177 move second child to first child (temp 2-component vector of float) -0:177 'lod' (temp 2-component vector of float) -0:177 textureQueryLod (global 2-component vector of float) -0:177 'samp2Ds' (uniform sampler2DShadow) -0:177 'pf2' (temp 2-component vector of float) -0:178 move second child to first child (temp 2-component vector of float) -0:178 'lod' (temp 2-component vector of float) -0:178 textureQueryLod (global 2-component vector of float) -0:178 'sampCubes' (uniform samplerCubeShadow) -0:178 'pf3' (temp 3-component vector of float) -0:179 move second child to first child (temp 2-component vector of float) -0:179 'lod' (temp 2-component vector of float) -0:179 textureQueryLod (global 2-component vector of float) -0:179 'samp1DAs' (uniform sampler1DArrayShadow) -0:179 'pf' (temp float) -0:180 move second child to first child (temp 2-component vector of float) -0:180 'lod' (temp 2-component vector of float) -0:180 textureQueryLod (global 2-component vector of float) -0:180 'samp2DAs' (uniform sampler2DArrayShadow) -0:180 'pf2' (temp 2-component vector of float) -0:181 move second child to first child (temp 2-component vector of float) -0:181 'lod' (temp 2-component vector of float) -0:181 textureQueryLod (global 2-component vector of float) -0:181 'sampCubeAs' (uniform samplerCubeArrayShadow) -0:181 'pf3' (temp 3-component vector of float) -0:183 'lod' (temp 2-component vector of float) -0:184 'lod' (temp 2-component vector of float) 0:? Linker Objects 0:? 'c2D' (smooth in 2-component vector of float) 0:? 'i' (flat in int) @@ -962,8 +654,6 @@ ERROR: node is still EOpNull! 0:? 'vl2' (layout(location=6 ) smooth in 4-component vector of float) 0:? 'uv3' (layout(location=3 ) uniform 3-component vector of float) 0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'anon@0' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, smooth in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'u2drs' (uniform sampler2DRectShadow) 0:? 'patchIn' (smooth patch in 4-component vector of float) diff --git a/Test/baseResults/400.geom.out b/Test/baseResults/400.geom.out index 16117e62a23ff003549c73859b52b2361535676a..86e2b8ffa6b5a467ef6305ce75b382d902eb62e6 100644 --- a/Test/baseResults/400.geom.out +++ b/Test/baseResults/400.geom.out @@ -1070,981 +1070,6 @@ ERROR: node is still EOpNull! 0:9 move second child to first child (temp int) 0:9 'id' (temp int) 0:9 'gl_InvocationID' (in int InvocationID) -0:23 Function Definition: foo( (global void) -0:23 Function Parameters: -0:25 Sequence -0:25 Constant: -0:25 1 (const int) -0:26 gl_Position: direct index for structure (in 4-component vector of float Position) -0:26 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) -0:26 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) -0:26 Constant: -0:26 1 (const int) -0:26 Constant: -0:26 0 (const int) -0:34 Function Definition: foo2( (global void) -0:34 Function Parameters: -0:36 Sequence -0:36 Constant: -0:36 1 (const int) -0:37 Constant: -0:37 3 (const int) -0:46 Function Definition: foo3( (global void) -0:46 Function Parameters: -0:48 Sequence -0:48 Constant: -0:48 3 (const int) -0:49 Constant: -0:49 3 (const int) -0:50 Constant: -0:50 3 (const int) -0:51 Constant: -0:51 3 (const int) -0:75 Function Definition: bits( (global void) -0:75 Function Parameters: -0:? Sequence -0:78 move second child to first child (temp 2-component vector of uint) -0:78 'u2' (temp 2-component vector of uint) -0:78 addCarry (global 2-component vector of uint) -0:78 'u2' (temp 2-component vector of uint) -0:78 'u2' (temp 2-component vector of uint) -0:78 'u2' (temp 2-component vector of uint) -0:80 move second child to first child (temp uint) -0:80 'u1' (temp uint) -0:80 subBorrow (global uint) -0:80 'u1' (temp uint) -0:80 'u1' (temp uint) -0:80 'u1' (temp uint) -0:82 uMulExtended (global void) -0:82 'u4' (temp 4-component vector of uint) -0:82 'u4' (temp 4-component vector of uint) -0:82 'u4' (temp 4-component vector of uint) -0:82 'u4' (temp 4-component vector of uint) -0:84 iMulExtended (global void) -0:84 'i4' (temp 4-component vector of int) -0:84 'i4' (temp 4-component vector of int) -0:84 'i4' (temp 4-component vector of int) -0:84 'i4' (temp 4-component vector of int) -0:86 move second child to first child (temp int) -0:86 'i1' (temp int) -0:86 bitfieldExtract (global int) -0:86 'i1' (temp int) -0:86 Constant: -0:86 4 (const int) -0:86 Constant: -0:86 5 (const int) -0:88 move second child to first child (temp 3-component vector of uint) -0:88 'u3' (temp 3-component vector of uint) -0:88 bitfieldExtract (global 3-component vector of uint) -0:88 'u3' (temp 3-component vector of uint) -0:88 Constant: -0:88 4 (const int) -0:88 Constant: -0:88 5 (const int) -0:90 move second child to first child (temp 3-component vector of int) -0:90 'i3' (temp 3-component vector of int) -0:90 bitfieldInsert (global 3-component vector of int) -0:90 'i3' (temp 3-component vector of int) -0:90 'i3' (temp 3-component vector of int) -0:90 Constant: -0:90 4 (const int) -0:90 Constant: -0:90 5 (const int) -0:91 move second child to first child (temp uint) -0:91 'u1' (temp uint) -0:91 bitfieldInsert (global uint) -0:91 'u1' (temp uint) -0:91 'u1' (temp uint) -0:91 Constant: -0:91 4 (const int) -0:91 Constant: -0:91 5 (const int) -0:93 move second child to first child (temp 2-component vector of int) -0:93 'i2' (temp 2-component vector of int) -0:93 bitFieldReverse (global 2-component vector of int) -0:93 'i2' (temp 2-component vector of int) -0:94 move second child to first child (temp 4-component vector of uint) -0:94 'u4' (temp 4-component vector of uint) -0:94 bitFieldReverse (global 4-component vector of uint) -0:94 'u4' (temp 4-component vector of uint) -0:95 move second child to first child (temp int) -0:95 'i1' (temp int) -0:95 bitCount (global int) -0:95 'i1' (temp int) -0:96 move second child to first child (temp 3-component vector of int) -0:96 'i3' (temp 3-component vector of int) -0:96 bitCount (global 3-component vector of int) -0:96 'u3' (temp 3-component vector of uint) -0:97 move second child to first child (temp 2-component vector of int) -0:97 'i2' (temp 2-component vector of int) -0:97 findLSB (global 2-component vector of int) -0:97 'i2' (temp 2-component vector of int) -0:98 move second child to first child (temp 4-component vector of int) -0:98 'i4' (temp 4-component vector of int) -0:98 findLSB (global 4-component vector of int) -0:98 'u4' (temp 4-component vector of uint) -0:99 move second child to first child (temp int) -0:99 'i1' (temp int) -0:99 findMSB (global int) -0:99 'i1' (temp int) -0:100 move second child to first child (temp 2-component vector of int) -0:100 'i2' (temp 2-component vector of int) -0:100 findMSB (global 2-component vector of int) -0:100 'u2' (temp 2-component vector of uint) -0:108 Function Definition: qlod( (global void) -0:108 Function Parameters: -0:? Sequence -0:115 'lod' (temp 2-component vector of float) -0:116 'lod' (temp 2-component vector of float) -0:119 Function Definition: doubles( (global void) -0:119 Function Parameters: -0:? Sequence -0:131 move second child to first child (temp double) -0:131 'doublev' (temp double) -0:131 Constant: -0:131 1.702939 -0:132 move second child to first child (temp 2-component vector of double) -0:132 'dvec2v' (temp 2-component vector of double) -0:132 Constant: -0:132 1.643168 -0:132 1.643168 -0:133 move second child to first child (temp 3-component vector of double) -0:133 'dvec3v' (temp 3-component vector of double) -0:133 Constant: -0:133 1.414214 -0:133 1.414214 -0:133 1.414214 -0:134 move second child to first child (temp 4-component vector of double) -0:134 'dvec4v' (temp 4-component vector of double) -0:134 Constant: -0:134 1.449138 -0:134 1.449138 -0:134 1.449138 -0:134 1.449138 -0:136 add second child into first child (temp double) -0:136 'doublev' (temp double) -0:136 inverse sqrt (global double) -0:136 'doublev' (temp double) -0:137 add second child into first child (temp 2-component vector of double) -0:137 'dvec2v' (temp 2-component vector of double) -0:137 inverse sqrt (global 2-component vector of double) -0:137 'dvec2v' (temp 2-component vector of double) -0:138 add second child into first child (temp 3-component vector of double) -0:138 'dvec3v' (temp 3-component vector of double) -0:138 inverse sqrt (global 3-component vector of double) -0:138 'dvec3v' (temp 3-component vector of double) -0:139 add second child into first child (temp 4-component vector of double) -0:139 'dvec4v' (temp 4-component vector of double) -0:139 inverse sqrt (global 4-component vector of double) -0:139 'dvec4v' (temp 4-component vector of double) -0:141 add second child into first child (temp double) -0:141 'doublev' (temp double) -0:141 Absolute value (global double) -0:141 'doublev' (temp double) -0:142 add second child into first child (temp 2-component vector of double) -0:142 'dvec2v' (temp 2-component vector of double) -0:142 Absolute value (global 2-component vector of double) -0:142 'dvec2v' (temp 2-component vector of double) -0:143 add second child into first child (temp 3-component vector of double) -0:143 'dvec3v' (temp 3-component vector of double) -0:143 Absolute value (global 3-component vector of double) -0:143 'dvec3v' (temp 3-component vector of double) -0:144 add second child into first child (temp 4-component vector of double) -0:144 'dvec4v' (temp 4-component vector of double) -0:144 Absolute value (global 4-component vector of double) -0:144 'dvec4v' (temp 4-component vector of double) -0:146 add second child into first child (temp double) -0:146 'doublev' (temp double) -0:146 Sign (global double) -0:146 'doublev' (temp double) -0:147 add second child into first child (temp 2-component vector of double) -0:147 'dvec2v' (temp 2-component vector of double) -0:147 Sign (global 2-component vector of double) -0:147 'dvec2v' (temp 2-component vector of double) -0:148 add second child into first child (temp 3-component vector of double) -0:148 'dvec3v' (temp 3-component vector of double) -0:148 Sign (global 3-component vector of double) -0:148 'dvec3v' (temp 3-component vector of double) -0:149 add second child into first child (temp 4-component vector of double) -0:149 'dvec4v' (temp 4-component vector of double) -0:149 Sign (global 4-component vector of double) -0:149 'dvec4v' (temp 4-component vector of double) -0:151 add second child into first child (temp double) -0:151 'doublev' (temp double) -0:151 Floor (global double) -0:151 'doublev' (temp double) -0:152 add second child into first child (temp 2-component vector of double) -0:152 'dvec2v' (temp 2-component vector of double) -0:152 Floor (global 2-component vector of double) -0:152 'dvec2v' (temp 2-component vector of double) -0:153 add second child into first child (temp 3-component vector of double) -0:153 'dvec3v' (temp 3-component vector of double) -0:153 Floor (global 3-component vector of double) -0:153 'dvec3v' (temp 3-component vector of double) -0:154 add second child into first child (temp 4-component vector of double) -0:154 'dvec4v' (temp 4-component vector of double) -0:154 Floor (global 4-component vector of double) -0:154 'dvec4v' (temp 4-component vector of double) -0:156 add second child into first child (temp double) -0:156 'doublev' (temp double) -0:156 trunc (global double) -0:156 'doublev' (temp double) -0:157 add second child into first child (temp 2-component vector of double) -0:157 'dvec2v' (temp 2-component vector of double) -0:157 trunc (global 2-component vector of double) -0:157 'dvec2v' (temp 2-component vector of double) -0:158 add second child into first child (temp 3-component vector of double) -0:158 'dvec3v' (temp 3-component vector of double) -0:158 trunc (global 3-component vector of double) -0:158 'dvec3v' (temp 3-component vector of double) -0:159 add second child into first child (temp 4-component vector of double) -0:159 'dvec4v' (temp 4-component vector of double) -0:159 trunc (global 4-component vector of double) -0:159 'dvec4v' (temp 4-component vector of double) -0:161 add second child into first child (temp double) -0:161 'doublev' (temp double) -0:161 round (global double) -0:161 'doublev' (temp double) -0:162 add second child into first child (temp 2-component vector of double) -0:162 'dvec2v' (temp 2-component vector of double) -0:162 round (global 2-component vector of double) -0:162 'dvec2v' (temp 2-component vector of double) -0:163 add second child into first child (temp 3-component vector of double) -0:163 'dvec3v' (temp 3-component vector of double) -0:163 round (global 3-component vector of double) -0:163 'dvec3v' (temp 3-component vector of double) -0:164 add second child into first child (temp 4-component vector of double) -0:164 'dvec4v' (temp 4-component vector of double) -0:164 round (global 4-component vector of double) -0:164 'dvec4v' (temp 4-component vector of double) -0:166 add second child into first child (temp double) -0:166 'doublev' (temp double) -0:166 roundEven (global double) -0:166 'doublev' (temp double) -0:167 add second child into first child (temp 2-component vector of double) -0:167 'dvec2v' (temp 2-component vector of double) -0:167 roundEven (global 2-component vector of double) -0:167 'dvec2v' (temp 2-component vector of double) -0:168 add second child into first child (temp 3-component vector of double) -0:168 'dvec3v' (temp 3-component vector of double) -0:168 roundEven (global 3-component vector of double) -0:168 'dvec3v' (temp 3-component vector of double) -0:169 add second child into first child (temp 4-component vector of double) -0:169 'dvec4v' (temp 4-component vector of double) -0:169 roundEven (global 4-component vector of double) -0:169 'dvec4v' (temp 4-component vector of double) -0:171 add second child into first child (temp double) -0:171 'doublev' (temp double) -0:171 Ceiling (global double) -0:171 'doublev' (temp double) -0:172 add second child into first child (temp 2-component vector of double) -0:172 'dvec2v' (temp 2-component vector of double) -0:172 Ceiling (global 2-component vector of double) -0:172 'dvec2v' (temp 2-component vector of double) -0:173 add second child into first child (temp 3-component vector of double) -0:173 'dvec3v' (temp 3-component vector of double) -0:173 Ceiling (global 3-component vector of double) -0:173 'dvec3v' (temp 3-component vector of double) -0:174 add second child into first child (temp 4-component vector of double) -0:174 'dvec4v' (temp 4-component vector of double) -0:174 Ceiling (global 4-component vector of double) -0:174 'dvec4v' (temp 4-component vector of double) -0:176 add second child into first child (temp double) -0:176 'doublev' (temp double) -0:176 Fraction (global double) -0:176 'doublev' (temp double) -0:177 add second child into first child (temp 2-component vector of double) -0:177 'dvec2v' (temp 2-component vector of double) -0:177 Fraction (global 2-component vector of double) -0:177 'dvec2v' (temp 2-component vector of double) -0:178 add second child into first child (temp 3-component vector of double) -0:178 'dvec3v' (temp 3-component vector of double) -0:178 Fraction (global 3-component vector of double) -0:178 'dvec3v' (temp 3-component vector of double) -0:179 add second child into first child (temp 4-component vector of double) -0:179 'dvec4v' (temp 4-component vector of double) -0:179 Fraction (global 4-component vector of double) -0:179 'dvec4v' (temp 4-component vector of double) -0:181 add second child into first child (temp double) -0:181 'doublev' (temp double) -0:181 mod (global double) -0:181 'doublev' (temp double) -0:181 'doublev' (temp double) -0:182 add second child into first child (temp 2-component vector of double) -0:182 'dvec2v' (temp 2-component vector of double) -0:182 mod (global 2-component vector of double) -0:182 'dvec2v' (temp 2-component vector of double) -0:182 'doublev' (temp double) -0:183 add second child into first child (temp 3-component vector of double) -0:183 'dvec3v' (temp 3-component vector of double) -0:183 mod (global 3-component vector of double) -0:183 'dvec3v' (temp 3-component vector of double) -0:183 'doublev' (temp double) -0:184 add second child into first child (temp 4-component vector of double) -0:184 'dvec4v' (temp 4-component vector of double) -0:184 mod (global 4-component vector of double) -0:184 'dvec4v' (temp 4-component vector of double) -0:184 'doublev' (temp double) -0:185 add second child into first child (temp 2-component vector of double) -0:185 'dvec2v' (temp 2-component vector of double) -0:185 mod (global 2-component vector of double) -0:185 'dvec2v' (temp 2-component vector of double) -0:185 'dvec2v' (temp 2-component vector of double) -0:186 add second child into first child (temp 3-component vector of double) -0:186 'dvec3v' (temp 3-component vector of double) -0:186 mod (global 3-component vector of double) -0:186 'dvec3v' (temp 3-component vector of double) -0:186 'dvec3v' (temp 3-component vector of double) -0:187 add second child into first child (temp 4-component vector of double) -0:187 'dvec4v' (temp 4-component vector of double) -0:187 mod (global 4-component vector of double) -0:187 'dvec4v' (temp 4-component vector of double) -0:187 'dvec4v' (temp 4-component vector of double) -0:189 add second child into first child (temp double) -0:189 'doublev' (temp double) -0:189 modf (global double) -0:189 'doublev' (temp double) -0:189 'doublev' (temp double) -0:190 add second child into first child (temp 2-component vector of double) -0:190 'dvec2v' (temp 2-component vector of double) -0:190 modf (global 2-component vector of double) -0:190 'dvec2v' (temp 2-component vector of double) -0:190 'dvec2v' (temp 2-component vector of double) -0:191 add second child into first child (temp 3-component vector of double) -0:191 'dvec3v' (temp 3-component vector of double) -0:191 modf (global 3-component vector of double) -0:191 'dvec3v' (temp 3-component vector of double) -0:191 'dvec3v' (temp 3-component vector of double) -0:192 add second child into first child (temp 4-component vector of double) -0:192 'dvec4v' (temp 4-component vector of double) -0:192 modf (global 4-component vector of double) -0:192 'dvec4v' (temp 4-component vector of double) -0:192 'dvec4v' (temp 4-component vector of double) -0:194 add second child into first child (temp double) -0:194 'doublev' (temp double) -0:194 min (global double) -0:194 'doublev' (temp double) -0:194 'doublev' (temp double) -0:195 add second child into first child (temp 2-component vector of double) -0:195 'dvec2v' (temp 2-component vector of double) -0:195 min (global 2-component vector of double) -0:195 'dvec2v' (temp 2-component vector of double) -0:195 'doublev' (temp double) -0:196 add second child into first child (temp 3-component vector of double) -0:196 'dvec3v' (temp 3-component vector of double) -0:196 min (global 3-component vector of double) -0:196 'dvec3v' (temp 3-component vector of double) -0:196 'doublev' (temp double) -0:197 add second child into first child (temp 4-component vector of double) -0:197 'dvec4v' (temp 4-component vector of double) -0:197 min (global 4-component vector of double) -0:197 'dvec4v' (temp 4-component vector of double) -0:197 'doublev' (temp double) -0:198 add second child into first child (temp 2-component vector of double) -0:198 'dvec2v' (temp 2-component vector of double) -0:198 min (global 2-component vector of double) -0:198 'dvec2v' (temp 2-component vector of double) -0:198 'dvec2v' (temp 2-component vector of double) -0:199 add second child into first child (temp 3-component vector of double) -0:199 'dvec3v' (temp 3-component vector of double) -0:199 min (global 3-component vector of double) -0:199 'dvec3v' (temp 3-component vector of double) -0:199 'dvec3v' (temp 3-component vector of double) -0:200 add second child into first child (temp 4-component vector of double) -0:200 'dvec4v' (temp 4-component vector of double) -0:200 min (global 4-component vector of double) -0:200 'dvec4v' (temp 4-component vector of double) -0:200 'dvec4v' (temp 4-component vector of double) -0:202 add second child into first child (temp double) -0:202 'doublev' (temp double) -0:202 max (global double) -0:202 'doublev' (temp double) -0:202 'doublev' (temp double) -0:203 add second child into first child (temp 2-component vector of double) -0:203 'dvec2v' (temp 2-component vector of double) -0:203 max (global 2-component vector of double) -0:203 'dvec2v' (temp 2-component vector of double) -0:203 'doublev' (temp double) -0:204 add second child into first child (temp 3-component vector of double) -0:204 'dvec3v' (temp 3-component vector of double) -0:204 max (global 3-component vector of double) -0:204 'dvec3v' (temp 3-component vector of double) -0:204 'doublev' (temp double) -0:205 add second child into first child (temp 4-component vector of double) -0:205 'dvec4v' (temp 4-component vector of double) -0:205 max (global 4-component vector of double) -0:205 'dvec4v' (temp 4-component vector of double) -0:205 'doublev' (temp double) -0:206 add second child into first child (temp 2-component vector of double) -0:206 'dvec2v' (temp 2-component vector of double) -0:206 max (global 2-component vector of double) -0:206 'dvec2v' (temp 2-component vector of double) -0:206 'dvec2v' (temp 2-component vector of double) -0:207 add second child into first child (temp 3-component vector of double) -0:207 'dvec3v' (temp 3-component vector of double) -0:207 max (global 3-component vector of double) -0:207 'dvec3v' (temp 3-component vector of double) -0:207 'dvec3v' (temp 3-component vector of double) -0:208 add second child into first child (temp 4-component vector of double) -0:208 'dvec4v' (temp 4-component vector of double) -0:208 max (global 4-component vector of double) -0:208 'dvec4v' (temp 4-component vector of double) -0:208 'dvec4v' (temp 4-component vector of double) -0:210 add second child into first child (temp double) -0:210 'doublev' (temp double) -0:210 clamp (global double) -0:210 'doublev' (temp double) -0:210 'doublev' (temp double) -0:210 'doublev' (temp double) -0:211 add second child into first child (temp 2-component vector of double) -0:211 'dvec2v' (temp 2-component vector of double) -0:211 clamp (global 2-component vector of double) -0:211 'dvec2v' (temp 2-component vector of double) -0:211 'doublev' (temp double) -0:211 'doublev' (temp double) -0:212 add second child into first child (temp 3-component vector of double) -0:212 'dvec3v' (temp 3-component vector of double) -0:212 clamp (global 3-component vector of double) -0:212 'dvec3v' (temp 3-component vector of double) -0:212 'doublev' (temp double) -0:212 'doublev' (temp double) -0:213 add second child into first child (temp 4-component vector of double) -0:213 'dvec4v' (temp 4-component vector of double) -0:213 clamp (global 4-component vector of double) -0:213 'dvec4v' (temp 4-component vector of double) -0:213 'doublev' (temp double) -0:213 'doublev' (temp double) -0:214 add second child into first child (temp 2-component vector of double) -0:214 'dvec2v' (temp 2-component vector of double) -0:214 clamp (global 2-component vector of double) -0:214 'dvec2v' (temp 2-component vector of double) -0:214 'dvec2v' (temp 2-component vector of double) -0:214 'dvec2v' (temp 2-component vector of double) -0:215 add second child into first child (temp 3-component vector of double) -0:215 'dvec3v' (temp 3-component vector of double) -0:215 clamp (global 3-component vector of double) -0:215 'dvec3v' (temp 3-component vector of double) -0:215 'dvec3v' (temp 3-component vector of double) -0:215 'dvec3v' (temp 3-component vector of double) -0:216 add second child into first child (temp 4-component vector of double) -0:216 'dvec4v' (temp 4-component vector of double) -0:216 clamp (global 4-component vector of double) -0:216 'dvec4v' (temp 4-component vector of double) -0:216 'dvec4v' (temp 4-component vector of double) -0:216 'dvec4v' (temp 4-component vector of double) -0:218 add second child into first child (temp double) -0:218 'doublev' (temp double) -0:218 mix (global double) -0:218 'doublev' (temp double) -0:218 'doublev' (temp double) -0:218 'doublev' (temp double) -0:219 add second child into first child (temp 2-component vector of double) -0:219 'dvec2v' (temp 2-component vector of double) -0:219 mix (global 2-component vector of double) -0:219 'dvec2v' (temp 2-component vector of double) -0:219 'dvec2v' (temp 2-component vector of double) -0:219 'doublev' (temp double) -0:220 add second child into first child (temp 3-component vector of double) -0:220 'dvec3v' (temp 3-component vector of double) -0:220 mix (global 3-component vector of double) -0:220 'dvec3v' (temp 3-component vector of double) -0:220 'dvec3v' (temp 3-component vector of double) -0:220 'doublev' (temp double) -0:221 add second child into first child (temp 4-component vector of double) -0:221 'dvec4v' (temp 4-component vector of double) -0:221 mix (global 4-component vector of double) -0:221 'dvec4v' (temp 4-component vector of double) -0:221 'dvec4v' (temp 4-component vector of double) -0:221 'doublev' (temp double) -0:222 add second child into first child (temp 2-component vector of double) -0:222 'dvec2v' (temp 2-component vector of double) -0:222 mix (global 2-component vector of double) -0:222 'dvec2v' (temp 2-component vector of double) -0:222 'dvec2v' (temp 2-component vector of double) -0:222 'dvec2v' (temp 2-component vector of double) -0:223 add second child into first child (temp 3-component vector of double) -0:223 'dvec3v' (temp 3-component vector of double) -0:223 mix (global 3-component vector of double) -0:223 'dvec3v' (temp 3-component vector of double) -0:223 'dvec3v' (temp 3-component vector of double) -0:223 'dvec3v' (temp 3-component vector of double) -0:224 add second child into first child (temp 4-component vector of double) -0:224 'dvec4v' (temp 4-component vector of double) -0:224 mix (global 4-component vector of double) -0:224 'dvec4v' (temp 4-component vector of double) -0:224 'dvec4v' (temp 4-component vector of double) -0:224 'dvec4v' (temp 4-component vector of double) -0:225 add second child into first child (temp double) -0:225 'doublev' (temp double) -0:225 mix (global double) -0:225 'doublev' (temp double) -0:225 'doublev' (temp double) -0:225 'boolv' (temp bool) -0:226 add second child into first child (temp 2-component vector of double) -0:226 'dvec2v' (temp 2-component vector of double) -0:226 mix (global 2-component vector of double) -0:226 'dvec2v' (temp 2-component vector of double) -0:226 'dvec2v' (temp 2-component vector of double) -0:226 'bvec2v' (temp 2-component vector of bool) -0:227 add second child into first child (temp 3-component vector of double) -0:227 'dvec3v' (temp 3-component vector of double) -0:227 mix (global 3-component vector of double) -0:227 'dvec3v' (temp 3-component vector of double) -0:227 'dvec3v' (temp 3-component vector of double) -0:227 'bvec3v' (temp 3-component vector of bool) -0:228 add second child into first child (temp 4-component vector of double) -0:228 'dvec4v' (temp 4-component vector of double) -0:228 mix (global 4-component vector of double) -0:228 'dvec4v' (temp 4-component vector of double) -0:228 'dvec4v' (temp 4-component vector of double) -0:228 'bvec4v' (temp 4-component vector of bool) -0:230 add second child into first child (temp double) -0:230 'doublev' (temp double) -0:230 step (global double) -0:230 'doublev' (temp double) -0:230 'doublev' (temp double) -0:231 add second child into first child (temp 2-component vector of double) -0:231 'dvec2v' (temp 2-component vector of double) -0:231 step (global 2-component vector of double) -0:231 'dvec2v' (temp 2-component vector of double) -0:231 'dvec2v' (temp 2-component vector of double) -0:232 add second child into first child (temp 3-component vector of double) -0:232 'dvec3v' (temp 3-component vector of double) -0:232 step (global 3-component vector of double) -0:232 'dvec3v' (temp 3-component vector of double) -0:232 'dvec3v' (temp 3-component vector of double) -0:233 add second child into first child (temp 4-component vector of double) -0:233 'dvec4v' (temp 4-component vector of double) -0:233 step (global 4-component vector of double) -0:233 'dvec4v' (temp 4-component vector of double) -0:233 'dvec4v' (temp 4-component vector of double) -0:234 add second child into first child (temp 2-component vector of double) -0:234 'dvec2v' (temp 2-component vector of double) -0:234 step (global 2-component vector of double) -0:234 'doublev' (temp double) -0:234 'dvec2v' (temp 2-component vector of double) -0:235 add second child into first child (temp 3-component vector of double) -0:235 'dvec3v' (temp 3-component vector of double) -0:235 step (global 3-component vector of double) -0:235 'doublev' (temp double) -0:235 'dvec3v' (temp 3-component vector of double) -0:236 add second child into first child (temp 4-component vector of double) -0:236 'dvec4v' (temp 4-component vector of double) -0:236 step (global 4-component vector of double) -0:236 'doublev' (temp double) -0:236 'dvec4v' (temp 4-component vector of double) -0:238 add second child into first child (temp double) -0:238 'doublev' (temp double) -0:238 smoothstep (global double) -0:238 'doublev' (temp double) -0:238 'doublev' (temp double) -0:238 'doublev' (temp double) -0:239 add second child into first child (temp 2-component vector of double) -0:239 'dvec2v' (temp 2-component vector of double) -0:239 smoothstep (global 2-component vector of double) -0:239 'dvec2v' (temp 2-component vector of double) -0:239 'dvec2v' (temp 2-component vector of double) -0:239 'dvec2v' (temp 2-component vector of double) -0:240 add second child into first child (temp 3-component vector of double) -0:240 'dvec3v' (temp 3-component vector of double) -0:240 smoothstep (global 3-component vector of double) -0:240 'dvec3v' (temp 3-component vector of double) -0:240 'dvec3v' (temp 3-component vector of double) -0:240 'dvec3v' (temp 3-component vector of double) -0:241 add second child into first child (temp 4-component vector of double) -0:241 'dvec4v' (temp 4-component vector of double) -0:241 smoothstep (global 4-component vector of double) -0:241 'dvec4v' (temp 4-component vector of double) -0:241 'dvec4v' (temp 4-component vector of double) -0:241 'dvec4v' (temp 4-component vector of double) -0:242 add second child into first child (temp 2-component vector of double) -0:242 'dvec2v' (temp 2-component vector of double) -0:242 smoothstep (global 2-component vector of double) -0:242 'doublev' (temp double) -0:242 'doublev' (temp double) -0:242 'dvec2v' (temp 2-component vector of double) -0:243 add second child into first child (temp 3-component vector of double) -0:243 'dvec3v' (temp 3-component vector of double) -0:243 smoothstep (global 3-component vector of double) -0:243 'doublev' (temp double) -0:243 'doublev' (temp double) -0:243 'dvec3v' (temp 3-component vector of double) -0:244 add second child into first child (temp 4-component vector of double) -0:244 'dvec4v' (temp 4-component vector of double) -0:244 smoothstep (global 4-component vector of double) -0:244 'doublev' (temp double) -0:244 'doublev' (temp double) -0:244 'dvec4v' (temp 4-component vector of double) -0:246 move second child to first child (temp bool) -0:246 'boolv' (temp bool) -0:246 isnan (global bool) -0:246 'doublev' (temp double) -0:247 move second child to first child (temp 2-component vector of bool) -0:247 'bvec2v' (temp 2-component vector of bool) -0:247 isnan (global 2-component vector of bool) -0:247 'dvec2v' (temp 2-component vector of double) -0:248 move second child to first child (temp 3-component vector of bool) -0:248 'bvec3v' (temp 3-component vector of bool) -0:248 isnan (global 3-component vector of bool) -0:248 'dvec3v' (temp 3-component vector of double) -0:249 move second child to first child (temp 4-component vector of bool) -0:249 'bvec4v' (temp 4-component vector of bool) -0:249 isnan (global 4-component vector of bool) -0:249 'dvec4v' (temp 4-component vector of double) -0:251 move second child to first child (temp bool) -0:251 'boolv' (temp bool) -0:251 Test condition and select (temp bool) -0:251 Condition -0:251 'boolv' (temp bool) -0:251 true case -0:251 isinf (global bool) -0:251 'doublev' (temp double) -0:251 false case -0:251 Constant: -0:251 false (const bool) -0:252 move second child to first child (temp 2-component vector of bool) -0:252 'bvec2v' (temp 2-component vector of bool) -0:252 Test condition and select (temp 2-component vector of bool) -0:252 Condition -0:252 'boolv' (temp bool) -0:252 true case -0:252 isinf (global 2-component vector of bool) -0:252 'dvec2v' (temp 2-component vector of double) -0:252 false case -0:252 Constant: -0:252 false (const bool) -0:252 false (const bool) -0:253 move second child to first child (temp 3-component vector of bool) -0:253 'bvec3v' (temp 3-component vector of bool) -0:253 Test condition and select (temp 3-component vector of bool) -0:253 Condition -0:253 'boolv' (temp bool) -0:253 true case -0:253 isinf (global 3-component vector of bool) -0:253 'dvec3v' (temp 3-component vector of double) -0:253 false case -0:253 Constant: -0:253 false (const bool) -0:253 false (const bool) -0:253 false (const bool) -0:254 move second child to first child (temp 4-component vector of bool) -0:254 'bvec4v' (temp 4-component vector of bool) -0:254 Test condition and select (temp 4-component vector of bool) -0:254 Condition -0:254 'boolv' (temp bool) -0:254 true case -0:254 isinf (global 4-component vector of bool) -0:254 'dvec4v' (temp 4-component vector of double) -0:254 false case -0:254 Constant: -0:254 false (const bool) -0:254 false (const bool) -0:254 false (const bool) -0:254 false (const bool) -0:256 add second child into first child (temp double) -0:256 'doublev' (temp double) -0:256 length (global double) -0:256 'doublev' (temp double) -0:257 add second child into first child (temp double) -0:257 'doublev' (temp double) -0:257 length (global double) -0:257 'dvec2v' (temp 2-component vector of double) -0:258 add second child into first child (temp double) -0:258 'doublev' (temp double) -0:258 length (global double) -0:258 'dvec3v' (temp 3-component vector of double) -0:259 add second child into first child (temp double) -0:259 'doublev' (temp double) -0:259 length (global double) -0:259 'dvec4v' (temp 4-component vector of double) -0:261 add second child into first child (temp double) -0:261 'doublev' (temp double) -0:261 distance (global double) -0:261 'doublev' (temp double) -0:261 'doublev' (temp double) -0:262 add second child into first child (temp double) -0:262 'doublev' (temp double) -0:262 distance (global double) -0:262 'dvec2v' (temp 2-component vector of double) -0:262 'dvec2v' (temp 2-component vector of double) -0:263 add second child into first child (temp double) -0:263 'doublev' (temp double) -0:263 distance (global double) -0:263 'dvec3v' (temp 3-component vector of double) -0:263 'dvec3v' (temp 3-component vector of double) -0:264 add second child into first child (temp double) -0:264 'doublev' (temp double) -0:264 distance (global double) -0:264 'dvec4v' (temp 4-component vector of double) -0:264 'dvec4v' (temp 4-component vector of double) -0:266 add second child into first child (temp double) -0:266 'doublev' (temp double) -0:266 dot-product (global double) -0:266 'doublev' (temp double) -0:266 'doublev' (temp double) -0:267 add second child into first child (temp double) -0:267 'doublev' (temp double) -0:267 dot-product (global double) -0:267 'dvec2v' (temp 2-component vector of double) -0:267 'dvec2v' (temp 2-component vector of double) -0:268 add second child into first child (temp double) -0:268 'doublev' (temp double) -0:268 dot-product (global double) -0:268 'dvec3v' (temp 3-component vector of double) -0:268 'dvec3v' (temp 3-component vector of double) -0:269 add second child into first child (temp double) -0:269 'doublev' (temp double) -0:269 dot-product (global double) -0:269 'dvec4v' (temp 4-component vector of double) -0:269 'dvec4v' (temp 4-component vector of double) -0:271 add second child into first child (temp 3-component vector of double) -0:271 'dvec3v' (temp 3-component vector of double) -0:271 cross-product (global 3-component vector of double) -0:271 'dvec3v' (temp 3-component vector of double) -0:271 'dvec3v' (temp 3-component vector of double) -0:273 add second child into first child (temp double) -0:273 'doublev' (temp double) -0:273 normalize (global double) -0:273 'doublev' (temp double) -0:274 add second child into first child (temp 2-component vector of double) -0:274 'dvec2v' (temp 2-component vector of double) -0:274 normalize (global 2-component vector of double) -0:274 'dvec2v' (temp 2-component vector of double) -0:275 add second child into first child (temp 3-component vector of double) -0:275 'dvec3v' (temp 3-component vector of double) -0:275 normalize (global 3-component vector of double) -0:275 'dvec3v' (temp 3-component vector of double) -0:276 add second child into first child (temp 4-component vector of double) -0:276 'dvec4v' (temp 4-component vector of double) -0:276 normalize (global 4-component vector of double) -0:276 'dvec4v' (temp 4-component vector of double) -0:278 add second child into first child (temp double) -0:278 'doublev' (temp double) -0:278 face-forward (global double) -0:278 'doublev' (temp double) -0:278 'doublev' (temp double) -0:278 'doublev' (temp double) -0:279 add second child into first child (temp 2-component vector of double) -0:279 'dvec2v' (temp 2-component vector of double) -0:279 face-forward (global 2-component vector of double) -0:279 'dvec2v' (temp 2-component vector of double) -0:279 'dvec2v' (temp 2-component vector of double) -0:279 'dvec2v' (temp 2-component vector of double) -0:280 add second child into first child (temp 3-component vector of double) -0:280 'dvec3v' (temp 3-component vector of double) -0:280 face-forward (global 3-component vector of double) -0:280 'dvec3v' (temp 3-component vector of double) -0:280 'dvec3v' (temp 3-component vector of double) -0:280 'dvec3v' (temp 3-component vector of double) -0:281 add second child into first child (temp 4-component vector of double) -0:281 'dvec4v' (temp 4-component vector of double) -0:281 face-forward (global 4-component vector of double) -0:281 'dvec4v' (temp 4-component vector of double) -0:281 'dvec4v' (temp 4-component vector of double) -0:281 'dvec4v' (temp 4-component vector of double) -0:283 add second child into first child (temp double) -0:283 'doublev' (temp double) -0:283 reflect (global double) -0:283 'doublev' (temp double) -0:283 'doublev' (temp double) -0:284 add second child into first child (temp 2-component vector of double) -0:284 'dvec2v' (temp 2-component vector of double) -0:284 reflect (global 2-component vector of double) -0:284 'dvec2v' (temp 2-component vector of double) -0:284 'dvec2v' (temp 2-component vector of double) -0:285 add second child into first child (temp 3-component vector of double) -0:285 'dvec3v' (temp 3-component vector of double) -0:285 reflect (global 3-component vector of double) -0:285 'dvec3v' (temp 3-component vector of double) -0:285 'dvec3v' (temp 3-component vector of double) -0:286 add second child into first child (temp 4-component vector of double) -0:286 'dvec4v' (temp 4-component vector of double) -0:286 reflect (global 4-component vector of double) -0:286 'dvec4v' (temp 4-component vector of double) -0:286 'dvec4v' (temp 4-component vector of double) -0:288 add second child into first child (temp double) -0:288 'doublev' (temp double) -0:288 refract (global double) -0:288 'doublev' (temp double) -0:288 'doublev' (temp double) -0:288 'doublev' (temp double) -0:289 add second child into first child (temp 2-component vector of double) -0:289 'dvec2v' (temp 2-component vector of double) -0:289 refract (global 2-component vector of double) -0:289 'dvec2v' (temp 2-component vector of double) -0:289 'dvec2v' (temp 2-component vector of double) -0:289 'doublev' (temp double) -0:290 add second child into first child (temp 3-component vector of double) -0:290 'dvec3v' (temp 3-component vector of double) -0:290 refract (global 3-component vector of double) -0:290 'dvec3v' (temp 3-component vector of double) -0:290 'dvec3v' (temp 3-component vector of double) -0:290 'doublev' (temp double) -0:291 add second child into first child (temp 4-component vector of double) -0:291 'dvec4v' (temp 4-component vector of double) -0:291 refract (global 4-component vector of double) -0:291 'dvec4v' (temp 4-component vector of double) -0:291 'dvec4v' (temp 4-component vector of double) -0:291 'doublev' (temp double) -0:293 Sequence -0:293 move second child to first child (temp 2X2 matrix of double) -0:293 'dmat2v' (temp 2X2 matrix of double) -0:293 outer product (global 2X2 matrix of double) -0:293 'dvec2v' (temp 2-component vector of double) -0:293 'dvec2v' (temp 2-component vector of double) -0:294 Sequence -0:294 move second child to first child (temp 3X3 matrix of double) -0:294 'dmat3v' (temp 3X3 matrix of double) -0:294 outer product (global 3X3 matrix of double) -0:294 'dvec3v' (temp 3-component vector of double) -0:294 'dvec3v' (temp 3-component vector of double) -0:295 Sequence -0:295 move second child to first child (temp 4X4 matrix of double) -0:295 'dmat4v' (temp 4X4 matrix of double) -0:295 outer product (global 4X4 matrix of double) -0:295 'dvec4v' (temp 4-component vector of double) -0:295 'dvec4v' (temp 4-component vector of double) -0:296 Sequence -0:296 move second child to first child (temp 2X3 matrix of double) -0:296 'dmat2x3v' (temp 2X3 matrix of double) -0:296 outer product (global 2X3 matrix of double) -0:296 'dvec3v' (temp 3-component vector of double) -0:296 'dvec2v' (temp 2-component vector of double) -0:297 Sequence -0:297 move second child to first child (temp 3X2 matrix of double) -0:297 'dmat3x2v' (temp 3X2 matrix of double) -0:297 outer product (global 3X2 matrix of double) -0:297 'dvec2v' (temp 2-component vector of double) -0:297 'dvec3v' (temp 3-component vector of double) -0:298 Sequence -0:298 move second child to first child (temp 2X4 matrix of double) -0:298 'dmat2x4v' (temp 2X4 matrix of double) -0:298 outer product (global 2X4 matrix of double) -0:298 'dvec4v' (temp 4-component vector of double) -0:298 'dvec2v' (temp 2-component vector of double) -0:299 Sequence -0:299 move second child to first child (temp 4X2 matrix of double) -0:299 'dmat4x2v' (temp 4X2 matrix of double) -0:299 outer product (global 4X2 matrix of double) -0:299 'dvec2v' (temp 2-component vector of double) -0:299 'dvec4v' (temp 4-component vector of double) -0:300 Sequence -0:300 move second child to first child (temp 3X4 matrix of double) -0:300 'dmat3x4v' (temp 3X4 matrix of double) -0:300 outer product (global 3X4 matrix of double) -0:300 'dvec4v' (temp 4-component vector of double) -0:300 'dvec3v' (temp 3-component vector of double) -0:301 Sequence -0:301 move second child to first child (temp 4X3 matrix of double) -0:301 'dmat4x3v' (temp 4X3 matrix of double) -0:301 outer product (global 4X3 matrix of double) -0:301 'dvec3v' (temp 3-component vector of double) -0:301 'dvec4v' (temp 4-component vector of double) -0:303 matrix mult second child into first child (temp 2X2 matrix of double) -0:303 'dmat2v' (temp 2X2 matrix of double) -0:303 component-wise multiply (global 2X2 matrix of double) -0:303 'dmat2v' (temp 2X2 matrix of double) -0:303 'dmat2v' (temp 2X2 matrix of double) -0:304 matrix mult second child into first child (temp 3X3 matrix of double) -0:304 'dmat3v' (temp 3X3 matrix of double) -0:304 component-wise multiply (global 3X3 matrix of double) -0:304 'dmat3v' (temp 3X3 matrix of double) -0:304 'dmat3v' (temp 3X3 matrix of double) -0:305 matrix mult second child into first child (temp 4X4 matrix of double) -0:305 'dmat4v' (temp 4X4 matrix of double) -0:305 component-wise multiply (global 4X4 matrix of double) -0:305 'dmat4v' (temp 4X4 matrix of double) -0:305 'dmat4v' (temp 4X4 matrix of double) -0:306 move second child to first child (temp 2X3 matrix of double) -0:306 'dmat2x3v' (temp 2X3 matrix of double) -0:306 component-wise multiply (global 2X3 matrix of double) -0:306 'dmat2x3v' (temp 2X3 matrix of double) -0:306 'dmat2x3v' (temp 2X3 matrix of double) -0:307 move second child to first child (temp 2X4 matrix of double) -0:307 'dmat2x4v' (temp 2X4 matrix of double) -0:307 component-wise multiply (global 2X4 matrix of double) -0:307 'dmat2x4v' (temp 2X4 matrix of double) -0:307 'dmat2x4v' (temp 2X4 matrix of double) -0:308 move second child to first child (temp 3X2 matrix of double) -0:308 'dmat3x2v' (temp 3X2 matrix of double) -0:308 component-wise multiply (global 3X2 matrix of double) -0:308 'dmat3x2v' (temp 3X2 matrix of double) -0:308 'dmat3x2v' (temp 3X2 matrix of double) -0:309 move second child to first child (temp 3X4 matrix of double) -0:309 'dmat3x4v' (temp 3X4 matrix of double) -0:309 component-wise multiply (global 3X4 matrix of double) -0:309 'dmat3x4v' (temp 3X4 matrix of double) -0:309 'dmat3x4v' (temp 3X4 matrix of double) -0:310 move second child to first child (temp 4X2 matrix of double) -0:310 'dmat4x2v' (temp 4X2 matrix of double) -0:310 component-wise multiply (global 4X2 matrix of double) -0:310 'dmat4x2v' (temp 4X2 matrix of double) -0:310 'dmat4x2v' (temp 4X2 matrix of double) -0:311 move second child to first child (temp 4X3 matrix of double) -0:311 'dmat4x3v' (temp 4X3 matrix of double) -0:311 component-wise multiply (global 4X3 matrix of double) -0:311 'dmat4x3v' (temp 4X3 matrix of double) -0:311 'dmat4x3v' (temp 4X3 matrix of double) -0:313 matrix mult second child into first child (temp 2X2 matrix of double) -0:313 'dmat2v' (temp 2X2 matrix of double) -0:313 transpose (global 2X2 matrix of double) -0:313 'dmat2v' (temp 2X2 matrix of double) -0:314 matrix mult second child into first child (temp 3X3 matrix of double) -0:314 'dmat3v' (temp 3X3 matrix of double) -0:314 transpose (global 3X3 matrix of double) -0:314 'dmat3v' (temp 3X3 matrix of double) -0:315 matrix mult second child into first child (temp 4X4 matrix of double) -0:315 'dmat4v' (temp 4X4 matrix of double) -0:315 transpose (global 4X4 matrix of double) -0:315 'dmat4v' (temp 4X4 matrix of double) -0:316 move second child to first child (temp 2X3 matrix of double) -0:316 'dmat2x3v' (temp 2X3 matrix of double) -0:316 transpose (global 2X3 matrix of double) -0:316 'dmat3x2v' (temp 3X2 matrix of double) -0:317 move second child to first child (temp 3X2 matrix of double) -0:317 'dmat3x2v' (temp 3X2 matrix of double) -0:317 transpose (global 3X2 matrix of double) -0:317 'dmat2x3v' (temp 2X3 matrix of double) -0:318 move second child to first child (temp 2X4 matrix of double) -0:318 'dmat2x4v' (temp 2X4 matrix of double) -0:318 transpose (global 2X4 matrix of double) -0:318 'dmat4x2v' (temp 4X2 matrix of double) -0:319 move second child to first child (temp 4X2 matrix of double) -0:319 'dmat4x2v' (temp 4X2 matrix of double) -0:319 transpose (global 4X2 matrix of double) -0:319 'dmat2x4v' (temp 2X4 matrix of double) -0:320 move second child to first child (temp 3X4 matrix of double) -0:320 'dmat3x4v' (temp 3X4 matrix of double) -0:320 transpose (global 3X4 matrix of double) -0:320 'dmat4x3v' (temp 4X3 matrix of double) -0:321 move second child to first child (temp 4X3 matrix of double) -0:321 'dmat4x3v' (temp 4X3 matrix of double) -0:321 transpose (global 4X3 matrix of double) -0:321 'dmat3x4v' (temp 3X4 matrix of double) -0:323 add second child into first child (temp double) -0:323 'doublev' (temp double) -0:323 determinant (global double) -0:323 'dmat2v' (temp 2X2 matrix of double) -0:324 add second child into first child (temp double) -0:324 'doublev' (temp double) -0:324 determinant (global double) -0:324 'dmat3v' (temp 3X3 matrix of double) -0:325 add second child into first child (temp double) -0:325 'doublev' (temp double) -0:325 determinant (global double) -0:325 'dmat4v' (temp 4X4 matrix of double) -0:327 matrix mult second child into first child (temp 2X2 matrix of double) -0:327 'dmat2v' (temp 2X2 matrix of double) -0:327 inverse (global 2X2 matrix of double) -0:327 'dmat2v' (temp 2X2 matrix of double) -0:328 matrix mult second child into first child (temp 3X3 matrix of double) -0:328 'dmat3v' (temp 3X3 matrix of double) -0:328 inverse (global 3X3 matrix of double) -0:328 'dmat3v' (temp 3X3 matrix of double) -0:329 matrix mult second child into first child (temp 4X4 matrix of double) -0:329 'dmat4v' (temp 4X4 matrix of double) -0:329 inverse (global 4X4 matrix of double) -0:329 'dmat4v' (temp 4X4 matrix of double) 0:? Linker Objects 0:? 'bn' (in 3-element array of block{in int a}) 0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize}) diff --git a/Test/baseResults/400.tesc.out b/Test/baseResults/400.tesc.out index 58a8a32732d9b96aefc78d65f10d08baac69499a..f3e7b8bb68b581344f65d4fe4f79b37bff88598a 100644 --- a/Test/baseResults/400.tesc.out +++ b/Test/baseResults/400.tesc.out @@ -364,35 +364,6 @@ ERROR: node is still EOpNull! 0:56 Barrier (global void) 0:59 Branch: Return 0:61 Barrier (global void) -0:67 Function Definition: foo( (global void) -0:67 Function Parameters: -0:69 Sequence -0:69 gl_PointSize: direct index for structure (out float PointSize) -0:69 direct index (temp block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) -0:69 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) -0:69 Constant: -0:69 4 (const int) -0:69 Constant: -0:69 1 (const int) -0:71 Barrier (global void) -0:91 Function Definition: foop( (global void) -0:91 Function Parameters: -0:? Sequence -0:95 multiply second child into first child (temp 3-component vector of float) -0:95 'pv3' (noContraction temp 3-component vector of float) -0:95 'pv3' (noContraction temp 3-component vector of float) -0:96 move second child to first child (temp 3-component vector of float) -0:96 'pv3' (noContraction temp 3-component vector of float) -0:96 fma (global 3-component vector of float) -0:96 'pv3' (noContraction temp 3-component vector of float) -0:96 'pv3' (noContraction temp 3-component vector of float) -0:96 'pv3' (noContraction temp 3-component vector of float) -0:97 move second child to first child (temp double) -0:97 'd' (noContraction temp double) -0:97 fma (global double) -0:97 'd' (noContraction temp double) -0:97 'd' (noContraction temp double) -0:97 'd' (noContraction temp double) 0:? Linker Objects 0:? 'gl_out' (out 4-element array of block{out 4-component vector of float Position gl_Position, out float PointSize gl_PointSize, out 2-element array of float ClipDistance gl_ClipDistance}) 0:? 'outa' (global 4-element array of int) diff --git a/Test/baseResults/400.vert.out b/Test/baseResults/400.vert.out index 2b0d63da19a1c3cb16027185f22b45068e94c4a9..bf07887558c74b43b14ec0450190ed09478076fb 100755 --- a/Test/baseResults/400.vert.out +++ b/Test/baseResults/400.vert.out @@ -340,11 +340,6 @@ ERROR: node is still EOpNull! 0:20 '' (in uint) 0:20 '' (in float) 0:20 '' (in double) -0:21 Function Definition: ftd(f1;d1;d1; (global void) -0:21 Function Parameters: -0:21 '' (in float) -0:21 '' (in double) -0:21 '' (in double) 0:23 Function Definition: main( (global void) 0:23 Function Parameters: 0:? Sequence @@ -552,19 +547,6 @@ ERROR: node is still EOpNull! 0:91 'f' (temp float) 0:91 Convert float to double (temp double) 0:91 'f' (temp float) -0:97 Function Definition: tf( (global void) -0:97 Function Parameters: -0:? Sequence -0:104 Function Call: itf(i1;f1;i1; (global void) -0:104 'i' (temp int) -0:104 Convert int to float (temp float) -0:104 'i' (temp int) -0:104 'i' (temp int) -0:105 Function Call: itf(i1;f1;i1; (global void) -0:105 'i' (temp int) -0:105 Convert uint to float (temp float) -0:105 'u' (temp uint) -0:105 'i' (temp int) 0:? Linker Objects 0:? 'd' (in double) 0:? 'd3' (in 3-component vector of double) diff --git a/Test/baseResults/410.geom.out b/Test/baseResults/410.geom.out index 6f7252c980794cb91418140658694d6ad63e8657..aa421dbe8bf496a59e40e58bf4330b4c3c3b8705 100644 --- a/Test/baseResults/410.geom.out +++ b/Test/baseResults/410.geom.out @@ -77,35 +77,6 @@ ERROR: node is still EOpNull! 0:5 'gl_ViewportIndex' (layout(stream=0 ) out int ViewportIndex) 0:5 Constant: 0:5 7 (const int) -0:28 Function Definition: foo( (global void) -0:28 Function Parameters: -0:30 Sequence -0:30 Sequence -0:30 move second child to first child (temp float) -0:30 'p' (temp float) -0:30 gl_PointSize: direct index for structure (in float PointSize) -0:30 direct index (temp block{in float PointSize gl_PointSize}) -0:30 'gl_in' (in 2-element array of block{in float PointSize gl_PointSize}) -0:30 Constant: -0:30 1 (const int) -0:30 Constant: -0:30 0 (const int) -0:31 move second child to first child (temp float) -0:31 gl_PointSize: direct index for structure (layout(stream=0 ) gl_PointSize float PointSize) -0:31 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, }) -0:31 Constant: -0:31 1 (const uint) -0:31 'p' (temp float) -0:33 gl_Position: direct index for structure (layout(stream=0 ) gl_Position void Position) -0:33 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, }) -0:33 Constant: -0:33 0 (const uint) -0:36 Function Definition: foo5( (global float) -0:36 Function Parameters: -0:38 Sequence -0:38 Branch: Return with expression -0:38 Constant: -0:38 4.000000 0:? Linker Objects 0:? 'gl_in' (in 2-element array of block{in float PointSize gl_PointSize}) 0:? 'anon@0' (layout(stream=0 ) out block{layout(stream=0 ) gl_PointSize float PointSize gl_PointSize, }) diff --git a/Test/baseResults/420.frag.out b/Test/baseResults/420.frag.out index 784cdb4b5b04fe85b6d73363cb161660fff35b4d..3b4c9be30513c5e1a3fc525e8e96007a6ea06c4f 100644 --- a/Test/baseResults/420.frag.out +++ b/Test/baseResults/420.frag.out @@ -19,7 +19,6 @@ ERROR: node is still EOpNull! 0:8 0.300000 0:? Linker Objects 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) 0:? 'depth' (smooth in float) 0:? 'a' (layout(binding=0 offset=0 ) uniform implicitly-sized array of atomic_uint) @@ -39,7 +38,6 @@ ERROR: node is still EOpNull! 0:8 0.300000 0:? Linker Objects 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) 0:? 'depth' (smooth in float) 0:? 'a' (layout(binding=0 offset=0 ) uniform 1-element array of atomic_uint) diff --git a/Test/baseResults/420.geom.out b/Test/baseResults/420.geom.out index 625feea7b41e101a65bcd12458c7b25d89d9f4c0..ca459a64a2d89888eec9b6c31e3e0d09306f51e1 100644 --- a/Test/baseResults/420.geom.out +++ b/Test/baseResults/420.geom.out @@ -142,111 +142,6 @@ max_vertices = -1 input primitive = triangles output primitive = none ERROR: node is still EOpNull! -0:7 Function Definition: foo( (global void) -0:7 Function Parameters: -0:9 Sequence -0:9 Constant: -0:9 1 (const int) -0:10 gl_Position: direct index for structure (in 4-component vector of float Position) -0:10 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:10 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:10 Constant: -0:10 1 (const int) -0:10 Constant: -0:10 0 (const int) -0:11 gl_Position: direct index for structure (in 4-component vector of float Position) -0:11 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:11 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:11 'i' (global int) -0:11 Constant: -0:11 0 (const int) -0:18 Function Definition: foo3( (global void) -0:18 Function Parameters: -0:20 Sequence -0:20 Constant: -0:20 3 (const int) -0:21 gl_Position: direct index for structure (in 4-component vector of float Position) -0:21 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:21 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:21 'i' (global int) -0:21 Constant: -0:21 0 (const int) -0:22 Constant: -0:22 3 (const int) -0:29 Function Definition: foo4( (global void) -0:29 Function Parameters: -0:? Sequence -0:40 Sequence -0:40 move second child to first child (temp 4-component vector of float) -0:40 'v' (temp 4-component vector of float) -0:40 textureGatherOffset (global 4-component vector of float) -0:40 's2D' (uniform sampler2D) -0:40 direct index (temp 2-component vector of float) -0:40 'coord' (in 3-element array of 2-component vector of float) -0:40 Constant: -0:40 0 (const int) -0:40 vector swizzle (temp 2-component vector of int) -0:40 indirect index (temp 2-component vector of int) -0:40 Constant: -0:40 0 (const int) -0:40 1 (const int) -0:40 1 (const int) -0:40 -2 (const int) -0:40 0 (const int) -0:40 3 (const int) -0:40 -3 (const int) -0:40 0 (const int) -0:40 2 (const int) -0:40 1 (const int) -0:40 'i' (global int) -0:40 Sequence -0:40 Constant: -0:40 0 (const int) -0:40 Constant: -0:40 1 (const int) -0:42 move second child to first child (temp 2-component vector of int) -0:42 vector swizzle (temp 2-component vector of int) -0:42 indirect index (temp 2-component vector of int) -0:42 Constant: -0:42 0 (const int) -0:42 1 (const int) -0:42 1 (const int) -0:42 -2 (const int) -0:42 0 (const int) -0:42 3 (const int) -0:42 -3 (const int) -0:42 0 (const int) -0:42 2 (const int) -0:42 1 (const int) -0:42 'i' (global int) -0:42 Sequence -0:42 Constant: -0:42 0 (const int) -0:42 Constant: -0:42 1 (const int) -0:42 Constant: -0:42 3 (const int) -0:42 3 (const int) -0:43 move second child to first child (temp float) -0:43 direct index (temp float) -0:43 'v4' (uniform 4-component vector of float) -0:43 Constant: -0:43 0 (const int) -0:43 Constant: -0:43 3.200000 -0:44 vector swizzle (temp 2-component vector of float) -0:44 'v4' (uniform 4-component vector of float) -0:44 Sequence -0:44 Constant: -0:44 0 (const int) -0:44 Constant: -0:44 1 (const int) -0:52 Function Definition: foo5( (global float) -0:52 Function Parameters: -0:54 Sequence -0:54 Branch: Return with expression -0:54 Convert int to float (temp float) -0:54 'i' (global int) 0:? Linker Objects 0:? 'i' (global int) 0:? 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) diff --git a/Test/baseResults/420.tesc.out b/Test/baseResults/420.tesc.out index 594e1302833eb5fca8e1c7ce985f5979a2e9e1b2..30839ec8db8dcb3384b7377f120bb88aafaaf8bf 100644 --- a/Test/baseResults/420.tesc.out +++ b/Test/baseResults/420.tesc.out @@ -184,41 +184,6 @@ ERROR: node is still EOpNull! 0:26 indirect index (temp block{out 4-component vector of float Position gl_Position}) 0:26 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position}) 0:26 'gl_InvocationID' (in int InvocationID) -0:34 Function Definition: foo( (global void) -0:34 Function Parameters: -0:36 Sequence -0:36 Test condition and select (temp void) -0:36 Condition -0:36 logical-or (temp bool) -0:36 Compare Not Equal (temp bool) -0:36 Constant: -0:36 -0.625000 -0:36 -0.500000 -0:36 -0.375000 -0:36 -0.250000 -0:36 -0.375000 -0:36 -0.250000 -0:36 -0.125000 -0:36 0.000000 -0:36 direct index (layout(location=0 ) temp 2X4 matrix of double) -0:36 'vs_tcs_first' (layout(location=0 ) in 32-element array of 2X4 matrix of double) -0:36 Constant: -0:36 0 (const int) -0:37 Compare Not Equal (temp bool) -0:37 Constant: -0:37 0.375000 -0:37 0.500000 -0:37 0.625000 -0:37 0.750000 -0:37 0.625000 -0:37 0.750000 -0:37 0.875000 -0:37 -0.625000 -0:37 direct index (layout(location=12 ) temp 2X4 matrix of double) -0:37 'vs_tcs_last' (layout(location=12 ) in 32-element array of 2X4 matrix of double) -0:37 Constant: -0:37 0 (const int) -0:36 true case is null 0:? Linker Objects 0:? 'gl_out' (out 3-element array of block{out 4-component vector of float Position gl_Position}) 0:? 'a' (out 3-element array of int) diff --git a/Test/baseResults/420.vert.out b/Test/baseResults/420.vert.out index a234970c588e164bf4d0e5121299294d9ad1d06e..a70b44e78972cc21562d96bc2ca0b589146d9f2e 100644 --- a/Test/baseResults/420.vert.out +++ b/Test/baseResults/420.vert.out @@ -4,7 +4,7 @@ ERROR: 0:2: '#version' : must occur first in shader WARNING: 0:3: varying deprecated in version 130; may be removed in future release ERROR: 0:3: 'varying' : no longer supported in core profile; removed in version 420 ERROR: 0:7: '' : vertex input cannot be further qualified -ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective) +ERROR: 0:11: '' : can only have one interpolation qualifier (flat, smooth, noperspective, __explicitInterpAMD) ERROR: 0:12: '' : can only have one auxiliary qualifier (centroid, patch, and sample) ERROR: 0:13: 'uniform' : too many storage qualifiers ERROR: 0:18: '=' : global const initializers must be constant 'const int' @@ -310,19 +310,6 @@ Linked vertex stage: Shader version: 420 ERROR: node is still EOpNull! -0:20 Function Definition: foo( (const int) -0:20 Function Parameters: -0:? Sequence -0:23 Sequence -0:23 move second child to first child (temp int) -0:23 'b' (const (read only) int) -0:23 'anonconst' (global int) -0:25 Sequence -0:25 move second child to first child (temp int) -0:25 'd' (const (read only) int) -0:25 'b' (const (read only) int) -0:29 Branch: Return with expression -0:29 'b' (const (read only) int) 0:32 Function Definition: main( (global void) 0:32 Function Parameters: 0:? Sequence @@ -342,164 +329,6 @@ ERROR: node is still EOpNull! 0:42 Constant: 0:42 true (const bool) 0:42 No loop body -0:50 Function Definition: bar(vf4; (global void) -0:50 Function Parameters: -0:50 'v' (volatile in 4-component vector of float) -0:? Sequence -0:53 's' (temp int) -0:54 's' (temp int) -0:55 Test condition and select (temp void) -0:55 Condition -0:55 Compare Equal (temp bool) -0:55 direct index (temp float) -0:55 direct index (temp 4-component vector of float) -0:55 'bad' (in 10-element array of 4-component vector of float) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 0 (const int) -0:55 Constant: -0:55 4.200000 -0:55 true case is null -0:57 Test condition and select (temp void) -0:57 Condition -0:57 Constant: -0:57 true (const bool) -0:57 true case -0:58 move second child to first child (temp 4-component vector of float) -0:58 'badorder3' (flat out 4-component vector of float) -0:58 direct index (temp 4-component vector of float) -0:58 'bad' (in 10-element array of 4-component vector of float) -0:58 Constant: -0:58 0 (const int) -0:61 Sequence -0:61 move second child to first child (temp 3-component vector of float) -0:61 'smeared' (temp 3-component vector of float) -0:61 Construct vec3 (temp 3-component vector of float) -0:61 'f' (temp float) -0:62 'f' (temp float) -0:63 'f' (temp float) -0:88 Function Definition: bar23444( (global void) -0:88 Function Parameters: -0:? Sequence -0:91 Sequence -0:91 move second child to first child (temp float) -0:91 'a1' (temp float) -0:91 direct index (temp float) -0:91 direct index (temp 3-component vector of float) -0:91 'm43' (temp 4X3 matrix of float) -0:91 Constant: -0:91 3 (const int) -0:91 Constant: -0:91 1 (const int) -0:93 Sequence -0:93 move second child to first child (temp int) -0:93 'a2' (temp int) -0:93 Constant: -0:93 4 (const int) -0:94 add second child into first child (temp int) -0:94 'a2' (temp int) -0:94 Constant: -0:94 3 (const int) -0:95 add second child into first child (temp int) -0:95 'a2' (temp int) -0:95 Constant: -0:95 3 (const int) -0:96 Sequence -0:96 move second child to first child (temp float) -0:96 'b' (const (read only) float) -0:96 component-wise multiply (temp float) -0:96 Constant: -0:96 2.000000 -0:96 'a1' (temp float) -0:97 Sequence -0:97 move second child to first child (temp int) -0:97 'a' (temp int) -0:97 Constant: -0:97 -1 (const int) -0:109 Function Definition: qux( (global void) -0:109 Function Parameters: -0:111 Sequence -0:111 Sequence -0:111 move second child to first child (temp int) -0:111 'i' (temp int) -0:111 aoeu: direct index for structure (layout(column_major shared ) uniform int) -0:111 'anon@0' (layout(binding=7 column_major shared ) uniform block{layout(column_major shared ) uniform int aoeu}) -0:111 Constant: -0:111 0 (const uint) -0:112 imageAtomicCompSwap (global int) -0:112 'iimg2D' (layout(r32i ) uniform iimage2D) -0:112 Construct ivec2 (temp 2-component vector of int) -0:112 'i' (temp int) -0:112 'i' (temp int) -0:112 'i' (temp int) -0:112 'i' (temp int) -0:113 imageAtomicAdd (global uint) -0:113 'uimg2D' (layout(r32ui ) uniform uimage2D) -0:113 Construct ivec2 (temp 2-component vector of int) -0:113 'i' (temp int) -0:113 'i' (temp int) -0:113 Convert int to uint (temp uint) -0:113 'i' (temp int) -0:114 imageAtomicMin (global int) -0:114 'iimg2Drgba' (layout(rgba32i ) uniform iimage2D) -0:114 Construct ivec2 (temp 2-component vector of int) -0:114 'i' (temp int) -0:114 'i' (temp int) -0:114 'i' (temp int) -0:115 Constant: -0:115 0.000000 -0:116 Sequence -0:116 move second child to first child (temp 4-component vector of int) -0:116 'pos' (temp 4-component vector of int) -0:116 imageLoad (global 4-component vector of int) -0:116 'iimg2D' (layout(r32i ) uniform iimage2D) -0:116 Construct ivec2 (temp 2-component vector of int) -0:116 'i' (temp int) -0:116 'i' (temp int) -0:117 Sequence -0:117 move second child to first child (temp 4-component vector of float) -0:117 'col' (temp 4-component vector of float) -0:117 imageLoad (global 4-component vector of float) -0:117 'img2DMS' (uniform image2DMS) -0:117 Construct ivec2 (temp 2-component vector of int) -0:117 'i' (temp int) -0:117 'i' (temp int) -0:117 'i' (temp int) -0:118 imageStore (global void) -0:118 'img2DMSWO' (writeonly uniform image2DMS) -0:118 Construct ivec2 (temp 2-component vector of int) -0:118 'i' (temp int) -0:118 'i' (temp int) -0:118 'i' (temp int) -0:118 Constant: -0:118 0.000000 -0:118 0.000000 -0:118 0.000000 -0:118 0.000000 -0:119 imageLoad (global 4-component vector of float) -0:119 'img2DMSWO' (writeonly uniform image2DMS) -0:119 Construct ivec2 (temp 2-component vector of int) -0:119 'i' (temp int) -0:119 'i' (temp int) -0:119 'i' (temp int) -0:125 Function Definition: passr(iI21; (global void) -0:125 Function Parameters: -0:125 'image' (coherent readonly in iimage2D) -0:132 Function Definition: passrc( (global void) -0:132 Function Parameters: -0:134 Sequence -0:134 Function Call: passr(iI21; (global void) -0:134 'qualim1' (layout(r32i ) coherent readonly uniform iimage2D) -0:135 Function Call: passr(iI21; (global void) -0:135 'qualim2' (layout(r32i ) coherent volatile readonly uniform iimage2D) -0:136 Function Call: passr(iI21; (global void) -0:136 'iimg2D' (layout(r32i ) uniform iimage2D) -0:153 Function Definition: qlod( (global void) -0:153 Function Parameters: -0:? Sequence -0:157 'levels' (temp int) -0:158 'levels' (temp int) 0:? Linker Objects 0:? 'v2' (smooth out 2-component vector of float) 0:? 'bad' (in 10-element array of 4-component vector of float) diff --git a/Test/baseResults/420_size_gl_in.geom.out b/Test/baseResults/420_size_gl_in.geom.out index 28d09a6df0ccd1fc74b903c83e67bc405b99a2d3..54ec99ea868c2573e123e61311b892d1a21fe9c7 100644 --- a/Test/baseResults/420_size_gl_in.geom.out +++ b/Test/baseResults/420_size_gl_in.geom.out @@ -49,26 +49,6 @@ max_vertices = -1 input primitive = triangles output primitive = none ERROR: node is still EOpNull! -0:11 Function Definition: foo( (global void) -0:11 Function Parameters: -0:13 Sequence -0:13 Constant: -0:13 3 (const int) -0:14 gl_Position: direct index for structure (in 4-component vector of float Position) -0:14 direct index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:14 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:14 Constant: -0:14 1 (const int) -0:14 Constant: -0:14 0 (const int) -0:15 Constant: -0:15 3 (const int) -0:16 gl_Position: direct index for structure (in 4-component vector of float Position) -0:16 indirect index (temp block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:16 'gl_in' (in 3-element array of block{in 4-component vector of float Position gl_Position, in float PointSize gl_PointSize, in 1-element array of float ClipDistance gl_ClipDistance}) -0:16 'i' (global int) -0:16 Constant: -0:16 0 (const int) 0:? Linker Objects 0:? 'i' (global int) 0:? 'colorun' (in 3-element array of 4-component vector of float) diff --git a/Test/baseResults/430.comp.out b/Test/baseResults/430.comp.out index aecf42fcf6d8e23943e0b03d86fde72f042cbb2d..ed61346fba0e6a986c5cfcb73d1238b73e90c525 100644 --- a/Test/baseResults/430.comp.out +++ b/Test/baseResults/430.comp.out @@ -184,77 +184,6 @@ ERROR: node is still EOpNull! 0:39 10 (const int) 0:39 true case 0:40 Barrier (global void) -0:63 Function Definition: foo( (global void) -0:63 Function Parameters: -0:65 Sequence -0:65 move second child to first child (temp float) -0:65 direct index (layout(column_major shared ) temp float) -0:65 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float) -0:65 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values}) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 Constant: -0:65 4.700000 -0:66 array length (temp int) -0:66 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of float) -0:66 'ro' (layout(column_major shared ) readonly buffer block{layout(column_major shared ) buffer int value, layout(column_major shared ) buffer implicitly-sized array of float values}) -0:66 Constant: -0:66 1 (const int) -0:67 Barrier (global void) -0:72 Function Definition: fooaoeu( (global void) -0:72 Function Parameters: -0:73 Sequence -0:73 Sequence -0:73 move second child to first child (temp 2-component vector of int) -0:73 'storePos' (temp 2-component vector of int) -0:73 Convert uint to int (temp 2-component vector of int) -0:73 vector swizzle (temp 2-component vector of uint) -0:73 'gl_GlobalInvocationID' (in 3-component vector of uint GlobalInvocationID) -0:73 Sequence -0:73 Constant: -0:73 0 (const int) -0:73 Constant: -0:73 1 (const int) -0:74 Sequence -0:74 move second child to first child (temp double) -0:74 'localCoef' (temp double) -0:74 Convert float to double (temp double) -0:74 length (global float) -0:74 divide (temp 2-component vector of float) -0:74 Convert int to float (temp 2-component vector of float) -0:74 subtract (temp 2-component vector of int) -0:74 Convert uint to int (temp 2-component vector of int) -0:74 vector swizzle (temp 2-component vector of uint) -0:74 'gl_LocalInvocationID' (in 3-component vector of uint LocalInvocationID) -0:74 Sequence -0:74 Constant: -0:74 0 (const int) -0:74 Constant: -0:74 1 (const int) -0:74 Constant: -0:74 8 (const int) -0:74 Constant: -0:74 8.000000 -0:75 Sequence -0:75 move second child to first child (temp 4-component vector of double) -0:75 'aa' (temp 4-component vector of double) -0:75 Constant: -0:75 0.400000 -0:75 0.200000 -0:75 0.300000 -0:75 0.400000 -0:76 Sequence -0:76 move second child to first child (temp double) -0:76 'globalCoef' (temp double) -0:76 Constant: -0:76 1.000000 -0:78 Sequence -0:78 move second child to first child (temp double) -0:78 'di' (temp double) -0:78 Convert int to double (temp double) -0:78 'i' (temp int) 0:? Linker Objects 0:? 'gl_WorkGroupSize' (const 3-component vector of uint WorkGroupSize) 0:? 2 (const uint) diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out index 676fcd3f99c0448d69ae4d46c808c1ae8303a048..8cd1156b5acf1ec923c05821a6381fcd12547f48 100644 --- a/Test/baseResults/430.vert.out +++ b/Test/baseResults/430.vert.out @@ -275,135 +275,6 @@ Requested GL_ARB_enhanced_layouts Requested GL_ARB_shader_texture_image_samples in xfb mode ERROR: node is still EOpNull! -0:14 Function Definition: foo( (global void) -0:14 Function Parameters: -0:16 Sequence -0:16 move second child to first child (temp float) -0:16 direct index (temp float ClipDistance) -0:16 gl_ClipDistance: direct index for structure (out 17-element array of float ClipDistance) -0:16 'anon@0' (out block{out 17-element array of float ClipDistance gl_ClipDistance, }) -0:16 Constant: -0:16 2 (const uint) -0:16 Constant: -0:16 2 (const int) -0:16 Constant: -0:16 3.700000 -0:31 Function Definition: foo3(vf4;vf3;vf2;vf3; (global void) -0:31 Function Parameters: -0:31 'v4' (in 4-component vector of float) -0:31 'v3' (volatile in 3-component vector of float) -0:31 'v2' (in 2-component vector of float) -0:31 'cv3' (in 3-component vector of float) -0:148 Function Definition: fooBarrier( (global void) -0:148 Function Parameters: -0:150 Sequence -0:150 Constant: -0:150 0.000000 -0:151 MemoryBarrier (global void) -0:152 MemoryBarrierAtomicCounter (global void) -0:153 MemoryBarrierBuffer (global void) -0:154 Constant: -0:154 0.000000 -0:155 MemoryBarrierImage (global void) -0:156 Constant: -0:156 0.000000 -0:166 Function Definition: fooq( (global void) -0:166 Function Parameters: -0:168 Sequence -0:168 Sequence -0:168 move second child to first child (temp int) -0:168 's' (temp int) -0:168 textureSamples (global int) -0:168 's2dms' (uniform sampler2DMS) -0:169 add second child into first child (temp int) -0:169 's' (temp int) -0:169 textureSamples (global int) -0:169 'us2dmsa' (uniform usampler2DMSArray) -0:170 add second child into first child (temp int) -0:170 's' (temp int) -0:170 imageQuerySamples (global int) -0:170 'ii2dms' (layout(rgba32i ) uniform iimage2DMS) -0:171 add second child into first child (temp int) -0:171 's' (temp int) -0:171 imageQuerySamples (global int) -0:171 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray) -0:176 Function Definition: fooq2( (global void) -0:176 Function Parameters: -0:178 Sequence -0:178 Sequence -0:178 move second child to first child (temp int) -0:178 's' (temp int) -0:178 textureSamples (global int) -0:178 's2dms' (uniform sampler2DMS) -0:179 add second child into first child (temp int) -0:179 's' (temp int) -0:179 textureSamples (global int) -0:179 'us2dmsa' (uniform usampler2DMSArray) -0:180 add second child into first child (temp int) -0:180 's' (temp int) -0:180 imageQuerySamples (global int) -0:180 'ii2dms' (layout(rgba32i ) uniform iimage2DMS) -0:181 add second child into first child (temp int) -0:181 's' (temp int) -0:181 imageQuerySamples (global int) -0:181 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray) -0:202 Function Definition: qlod( (global void) -0:202 Function Parameters: -0:? Sequence -0:206 move second child to first child (temp int) -0:206 'levels' (temp int) -0:206 textureQueryLevels (global int) -0:206 'samp1D' (uniform sampler1D) -0:207 move second child to first child (temp int) -0:207 'levels' (temp int) -0:207 textureQueryLevels (global int) -0:207 'usamp2D' (uniform usampler2D) -0:208 move second child to first child (temp int) -0:208 'levels' (temp int) -0:208 textureQueryLevels (global int) -0:208 'isamp3D' (uniform isampler3D) -0:209 move second child to first child (temp int) -0:209 'levels' (temp int) -0:209 textureQueryLevels (global int) -0:209 'isampCube' (uniform isamplerCube) -0:210 move second child to first child (temp int) -0:210 'levels' (temp int) -0:210 textureQueryLevels (global int) -0:210 'isamp1DA' (uniform isampler1DArray) -0:211 move second child to first child (temp int) -0:211 'levels' (temp int) -0:211 textureQueryLevels (global int) -0:211 'samp2DA' (uniform sampler2DArray) -0:212 move second child to first child (temp int) -0:212 'levels' (temp int) -0:212 textureQueryLevels (global int) -0:212 'usampCubeA' (uniform usamplerCubeArray) -0:214 move second child to first child (temp int) -0:214 'levels' (temp int) -0:214 textureQueryLevels (global int) -0:214 'samp1Ds' (uniform sampler1DShadow) -0:215 move second child to first child (temp int) -0:215 'levels' (temp int) -0:215 textureQueryLevels (global int) -0:215 'samp2Ds' (uniform sampler2DShadow) -0:216 move second child to first child (temp int) -0:216 'levels' (temp int) -0:216 textureQueryLevels (global int) -0:216 'sampCubes' (uniform samplerCubeShadow) -0:217 move second child to first child (temp int) -0:217 'levels' (temp int) -0:217 textureQueryLevels (global int) -0:217 'samp1DAs' (uniform sampler1DArrayShadow) -0:218 move second child to first child (temp int) -0:218 'levels' (temp int) -0:218 textureQueryLevels (global int) -0:218 'samp2DAs' (uniform sampler2DArrayShadow) -0:219 move second child to first child (temp int) -0:219 'levels' (temp int) -0:219 textureQueryLevels (global int) -0:219 'sampCubeAs' (uniform samplerCubeArrayShadow) -0:221 'levels' (temp int) -0:222 'levels' (temp int) 0:? Linker Objects 0:? 'v4' (layout(location=3 ) temp 4-component vector of float) 0:? 'uv4' (layout(location=4 ) uniform 4-component vector of float) diff --git a/Test/baseResults/430AofA.frag.out b/Test/baseResults/430AofA.frag.out index 68285f7378b8fbd559ef154926f7279e35608f0f..fd3892dc497352d24780e6aafc89e19a23fe40f0 100644 --- a/Test/baseResults/430AofA.frag.out +++ b/Test/baseResults/430AofA.frag.out @@ -2,7 +2,7 @@ Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. ERROR: 0:6: '[]' : only outermost dimension of an array of arrays can be implicitly sized ERROR: 0:14: 'constructor' : constructing non-array constituent from array argument -ERROR: 0:15: 'constructior' : array constructor argument not correct type to construct array element +ERROR: 0:15: 'constructor' : array constructor argument not correct type to construct array element ERROR: 0:28: '[' : array index out of range '4' ERROR: 0:56: 'constructor' : cannot convert parameter 2 from 'const 3-element array of 4-component vector of float' to 'temp 2-element array of 4-component vector of float' ERROR: 0:60: 'constructor' : cannot convert parameter 2 from 'const 2-element array of 4-component vector of float' to 'temp 3-element array of 4-component vector of float' @@ -766,34 +766,6 @@ ERROR: node is still EOpNull! 0:84 5.000000 0:85 Function Call: foo(f1[5][7]; (global 4-element array of 7-element array of float) 0:85 'u' (temp 5-element array of 7-element array of float) -0:88 Function Definition: foo3( (global void) -0:88 Function Parameters: -0:? Sequence -0:91 Constant: -0:91 1 (const int) -0:92 move second child to first child (temp float) -0:92 direct index (temp float) -0:92 direct index (temp 7-element array of float) -0:92 direct index (temp 5-element array of 7-element array of float) -0:92 'resize1' (temp 3-element array of 5-element array of 7-element array of float) -0:92 Constant: -0:92 1 (const int) -0:92 Constant: -0:92 4 (const int) -0:92 Constant: -0:92 5 (const int) -0:92 Constant: -0:92 2.000000 -0:93 Constant: -0:93 1 (const int) -0:95 Constant: -0:95 3 (const int) -0:96 Constant: -0:96 5 (const int) -0:97 Constant: -0:97 7 (const int) -0:98 Constant: -0:98 0.000000 0:? Linker Objects 0:? 'many' (global 1-element array of 2-element array of 3-element array of 4-element array of 5-element array of 6-element array of float) 0:? 'gu' (global 1-element array of 7-element array of float) diff --git a/Test/baseResults/430scope.vert.out b/Test/baseResults/430scope.vert.out index 0a097a219153b1c26ae5c47f800b6398d73680d9..c7d05038f9c21cb1f5f84178ac06dd2d5f42df33 100644 --- a/Test/baseResults/430scope.vert.out +++ b/Test/baseResults/430scope.vert.out @@ -127,6 +127,8 @@ ERROR: node is still EOpNull! Linked vertex stage: +ERROR: Linking vertex stage: No function definition (body) found: + g( Shader version: 430 ERROR: node is still EOpNull! @@ -147,20 +149,6 @@ ERROR: node is still EOpNull! 0:8 1.000000 0:11 Branch: Return with expression 0:11 'a' (in int) -0:25 Function Definition: cos(f1; (global float) -0:25 Function Parameters: -0:25 'x' (in float) -0:27 Sequence -0:27 Branch: Return with expression -0:27 Constant: -0:27 1.000000 -0:29 Function Definition: radians(b1; (global bool) -0:29 Function Parameters: -0:29 'x' (in bool) -0:31 Sequence -0:31 Branch: Return with expression -0:31 Constant: -0:31 true (const bool) 0:36 Function Definition: main( (global void) 0:36 Function Parameters: 0:? Sequence diff --git a/Test/baseResults/440.frag.out b/Test/baseResults/440.frag.out index 064fe19e4fb03e222e344f06355ff23f8ccdcd3c..bdc1b09561d699c952134abe82070e8614fc6ea9 100644 --- a/Test/baseResults/440.frag.out +++ b/Test/baseResults/440.frag.out @@ -126,35 +126,6 @@ ERROR: Linking fragment stage: Missing entry point: Each stage requires one entr Shader version: 440 ERROR: node is still EOpNull! -0:144 Function Definition: interp( (global void) -0:144 Function Parameters: -0:146 Sequence -0:146 interpolateAtCentroid (global 2-component vector of float) -0:146 vector swizzle (temp 2-component vector of float) -0:146 direct index (smooth sample temp 3-component vector of float) -0:146 'sampInArray' (smooth sample in 4-element array of 3-component vector of float) -0:146 Constant: -0:146 2 (const int) -0:146 Sequence -0:146 Constant: -0:146 0 (const int) -0:146 Constant: -0:146 1 (const int) -0:147 interpolateAtSample (global float) -0:147 direct index (temp float) -0:147 direct index (smooth sample temp 3-component vector of float) -0:147 'sampInArray' (smooth sample in 4-element array of 3-component vector of float) -0:147 Constant: -0:147 2 (const int) -0:147 Constant: -0:147 0 (const int) -0:147 Constant: -0:147 2 (const int) -0:150 Function Definition: layer( (global int) -0:150 Function Parameters: -0:152 Sequence -0:152 Branch: Return with expression -0:152 'gl_Layer' (flat in int Layer) 0:? Linker Objects 0:? 'a' (layout(location=4 component=2 ) smooth in 2-component vector of float) 0:? 'b' (layout(location=4 component=1 ) smooth in float) diff --git a/Test/baseResults/440.vert.out b/Test/baseResults/440.vert.out index 022ddec47c7eb50e569f4b280c975db8846aaea7..bf625c8a776fa37438b31d7d4a7e6bc95e12f420 100644 --- a/Test/baseResults/440.vert.out +++ b/Test/baseResults/440.vert.out @@ -174,37 +174,6 @@ Shader version: 440 Requested GL_ARB_shader_draw_parameters in xfb mode ERROR: node is still EOpNull! -0:177 Function Definition: drawParamsBad( (global int) -0:177 Function Parameters: -0:179 Sequence -0:179 Branch: Return with expression -0:179 add (temp int) -0:179 add (temp int) -0:179 'gl_BaseVertexARB' (in int BaseVertex) -0:179 'gl_BaseInstanceARB' (in int BaseInstance) -0:179 'gl_DrawIDARB' (in int DrawId) -0:184 Function Definition: drawParams( (global int) -0:184 Function Parameters: -0:186 Sequence -0:186 Branch: Return with expression -0:186 add (temp int) -0:186 add (temp int) -0:186 'gl_BaseVertexARB' (in int BaseVertex) -0:186 'gl_BaseInstanceARB' (in int BaseInstance) -0:186 'gl_DrawIDARB' (in int DrawId) -0:187 move second child to first child (temp int) -0:187 'gl_BaseVertexARB' (in int BaseVertex) -0:187 Constant: -0:187 3 (const int) -0:188 move second child to first child (temp int) -0:188 'gl_BaseInstanceARB' (in int BaseInstance) -0:188 Constant: -0:188 3 (const int) -0:189 move second child to first child (temp int) -0:189 'gl_DrawIDARB' (in int DrawId) -0:189 Constant: -0:189 3 (const int) -0:190 'glBaseInstanceARB' (temp float) 0:? Linker Objects 0:? 'a' (layout(location=2 component=2 ) in 2-component vector of float) 0:? 'b' (layout(location=2 component=1 ) in float) diff --git a/Test/baseResults/450.frag.out b/Test/baseResults/450.frag.out index 23682e8a17aa9df7adb4df446aed89987722e969..038267335d26dcf745310bd9211ede45eb38c9ea 100644 --- a/Test/baseResults/450.frag.out +++ b/Test/baseResults/450.frag.out @@ -263,57 +263,6 @@ Shader version: 450 0:34 'uin' (temp uint) 0:34 Construct bvec3 (temp 3-component vector of bool) 0:34 'b' (temp bool) -0:42 Function Definition: foo( (global void) -0:42 Function Parameters: -0:44 Sequence -0:44 Sequence -0:44 move second child to first child (temp int) -0:44 's' (temp int) -0:44 textureSamples (global int) -0:44 's2dms' (uniform sampler2DMS) -0:45 add second child into first child (temp int) -0:45 's' (temp int) -0:45 textureSamples (global int) -0:45 'us2dmsa' (uniform usampler2DMSArray) -0:46 add second child into first child (temp int) -0:46 's' (temp int) -0:46 imageQuerySamples (global int) -0:46 'ii2dms' (layout(rgba32i ) uniform iimage2DMS) -0:47 add second child into first child (temp int) -0:47 's' (temp int) -0:47 imageQuerySamples (global int) -0:47 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray) -0:48 Sequence -0:48 move second child to first child (temp float) -0:48 'f' (temp float) -0:48 imageAtomicExchange (global float) -0:48 'i2dmsa' (layout(rgba32f ) uniform image2DMSArray) -0:48 Convert float to int (temp 3-component vector of int) -0:48 'in3' (smooth in 3-component vector of float) -0:48 Constant: -0:48 2 (const int) -0:48 Constant: -0:48 4.500000 -0:53 Function Definition: cull(i1; (global float) -0:53 Function Parameters: -0:53 'i' (in int) -0:55 Sequence -0:55 Branch: Return with expression -0:55 Test condition and select (temp float) -0:55 Condition -0:55 Compare Greater Than or Equal (temp bool) -0:55 'i' (in int) -0:55 Constant: -0:55 6 (const int) -0:55 true case -0:55 direct index (smooth temp float CullDistance) -0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance) -0:55 Constant: -0:55 5 (const int) -0:55 false case -0:55 indirect index (smooth temp float CullDistance) -0:55 'gl_CullDistance' (smooth in 6-element array of float CullDistance) -0:55 'i' (in int) 0:? Linker Objects 0:? 'in1' (smooth in float) 0:? 'in2' (smooth in 2-component vector of float) diff --git a/Test/baseResults/array.frag.out b/Test/baseResults/array.frag.out index 8b3cf807a4856071d933208bc7081e601e77a8c4..e254bf1397f7c43390bce21206cf5121b1cfbf88 100644 --- a/Test/baseResults/array.frag.out +++ b/Test/baseResults/array.frag.out @@ -446,71 +446,6 @@ ERROR: node is still EOpNull! 0:58 1 (const int) 0:58 Constant: 0:58 4 (const int) -0:68 Function Definition: foo( (global void) -0:68 Function Parameters: -0:? Sequence -0:71 move second child to first child (temp int) -0:71 direct index (temp int) -0:71 'uns' (temp 4-element array of int) -0:71 Constant: -0:71 3 (const int) -0:71 Constant: -0:71 40 (const int) -0:72 move second child to first child (temp int) -0:72 direct index (temp int) -0:72 'uns' (temp 4-element array of int) -0:72 Constant: -0:72 1 (const int) -0:72 Constant: -0:72 30 (const int) -0:73 move second child to first child (temp 3-component vector of float) -0:73 direct index (temp 3-component vector of float) -0:73 'guns' (global 8-element array of 3-component vector of float) -0:73 Constant: -0:73 2 (const int) -0:73 Constant: -0:73 2.400000 -0:73 2.400000 -0:73 2.400000 -0:76 Constant: -0:76 0.000000 -0:79 Function Definition: foo2( (global implicitly-sized array of float) -0:79 Function Parameters: -0:? Sequence -0:82 Branch: Return with expression -0:82 'f' (temp 1-element array of float) -0:84 Branch: Return with expression -0:84 'g' (temp 9-element array of float) -0:89 Function Definition: foo3( (global void) -0:89 Function Parameters: -0:? Sequence -0:92 move second child to first child (temp float) -0:92 direct index (temp float) -0:92 'resize1' (temp 3-element array of float) -0:92 Constant: -0:92 2 (const int) -0:92 Constant: -0:92 4.000000 -0:93 Constant: -0:93 1 (const int) -0:95 Constant: -0:95 3 (const int) -0:98 move second child to first child (temp float) -0:98 direct index (temp float) -0:98 'resize2' (temp 5-element array of float) -0:98 Constant: -0:98 5 (const int) -0:98 Constant: -0:98 4.000000 -0:100 Constant: -0:100 5 (const int) -0:101 move second child to first child (temp float) -0:101 direct index (temp float) -0:101 'resize2' (temp 5-element array of float) -0:101 Constant: -0:101 5 (const int) -0:101 Constant: -0:101 4.000000 0:106 Sequence 0:106 move second child to first child (temp float) 0:106 'b' (global float) diff --git a/Test/baseResults/array100.frag.out b/Test/baseResults/array100.frag.out index b44f6a02cbc0f0313a7a20314f75c00fa5724975..cf54361420e653d1702eaf4a5ee7d909bcd35558 100644 --- a/Test/baseResults/array100.frag.out +++ b/Test/baseResults/array100.frag.out @@ -265,29 +265,6 @@ ERROR: node is still EOpNull! 0:40 1.000000 0:40 1.000000 0:40 1.000000 -0:53 Function Definition: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:53 Function Parameters: -0:? Sequence -0:56 Branch: Return with expression -0:56 's' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:59 Function Definition: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void) -0:59 Function Parameters: -0:59 's' (in structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:63 Function Definition: bar11( (global void) -0:63 Function Parameters: -0:? Sequence -0:66 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:66 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:66 's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:67 Function Call: bar10(struct-SB-vf4-struct-SA-vf3-vf2[4]11; (global void) -0:67 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:68 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:68 's2' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:68 Function Call: bar9( (global structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:69 Sequence -0:69 move second child to first child (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:69 'initSb' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) -0:69 's1' (temp structure{global mediump 4-component vector of float v4, global structure{global mediump 3-component vector of float v3, global 4-element array of mediump 2-component vector of float v2} sa}) 0:? Linker Objects 0:? 'gu' (global 1-element array of mediump float) 0:? 'g4' (global 4-element array of mediump float) diff --git a/Test/baseResults/atomic_uint.frag.out b/Test/baseResults/atomic_uint.frag.out index 4d05756ca074a695335a8981a7f4f6799c5c770d..e54b5dcf1ed9a03464cf4c9eefc5cf16cdcbccc9 100644 --- a/Test/baseResults/atomic_uint.frag.out +++ b/Test/baseResults/atomic_uint.frag.out @@ -86,22 +86,6 @@ Linked fragment stage: Shader version: 420 ERROR: node is still EOpNull! -0:5 Function Definition: func(au1; (global uint) -0:5 Function Parameters: -0:5 'c' (in atomic_uint) -0:7 Sequence -0:7 Branch: Return with expression -0:7 AtomicCounterIncrement (global uint) -0:7 'c' (in atomic_uint) -0:10 Function Definition: func2(au1; (global uint) -0:10 Function Parameters: -0:10 'c' (out atomic_uint) -0:12 Sequence -0:12 Branch: Return with expression -0:12 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) -0:13 Branch: Return with expression -0:13 AtomicCounter (global uint) -0:13 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) 0:16 Function Definition: main( (global void) 0:16 Function Parameters: 0:? Sequence @@ -112,22 +96,6 @@ ERROR: node is still EOpNull! 0:19 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) 0:20 AtomicCounterDecrement (global uint) 0:20 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) -0:26 Function Definition: opac( (global void) -0:26 Function Parameters: -0:28 Sequence -0:28 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) -0:29 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) -0:31 indirect index (temp int) -0:31 'a' (temp 3-element array of int) -0:31 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) -0:32 direct index (layout(binding=1 offset=3 ) temp atomic_uint) -0:32 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint) -0:32 Constant: -0:32 2 (const int) -0:33 indirect index (layout(binding=1 offset=3 ) temp atomic_uint) -0:33 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint) -0:33 'i' (uniform int) -0:34 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) 0:? Linker Objects 0:? 'counter' (layout(binding=0 offset=0 ) uniform atomic_uint) 0:? 'countArr' (layout(binding=1 offset=3 ) uniform 4-element array of atomic_uint) diff --git a/Test/baseResults/constFold.frag.out b/Test/baseResults/constFold.frag.out index 2e784688035c8bfaacd9252e895119625c035004..33bf51306d22a09e9eee32d112ef84dacd898fa5 100644 --- a/Test/baseResults/constFold.frag.out +++ b/Test/baseResults/constFold.frag.out @@ -546,120 +546,6 @@ ERROR: node is still EOpNull! 0:69 0.028000 0:69 0.500000 0:69 1.000000 -0:78 Function Definition: foo( (global void) -0:78 Function Parameters: -0:? Sequence -0:81 move second child to first child (temp float) -0:81 direct index (temp float) -0:81 'a' (temp 3-element array of float) -0:81 Constant: -0:81 0 (const int) -0:81 Constant: -0:81 7.000000 -0:82 Constant: -0:82 2 (const int) -0:83 Constant: -0:83 2147483647 (const int) -0:84 Constant: -0:84 inf -0:88 Constant: -0:88 2 (const uint) -0:88 3 (const uint) -0:89 Constant: -0:89 0 (const uint) -0:90 Constant: -0:90 6 (const uint) -0:90 7 (const uint) -0:103 Function Definition: foo2( (global void) -0:103 Function Parameters: -0:105 Sequence -0:105 direct index (temp float) -0:105 'a1' (global 1-element array of float) -0:105 Constant: -0:105 0 (const int) -0:106 direct index (temp float) -0:106 'a2' (global 2-element array of float) -0:106 Constant: -0:106 0 (const int) -0:107 direct index (temp float) -0:107 'a3' (global 4-element array of float) -0:107 Constant: -0:107 0 (const int) -0:108 direct index (temp float) -0:108 'a4' (global 2-element array of float) -0:108 Constant: -0:108 0 (const int) -0:109 Constant: -0:109 1.000000 -0:110 Constant: -0:110 5.000000 -0:111 Constant: -0:111 2.000000 -0:112 Constant: -0:112 3.000000 -0:113 Constant: -0:113 0.000000 -0:114 Constant: -0:114 0.000000 -0:116 move second child to first child (temp int) -0:116 'p' (temp int) -0:116 Constant: -0:116 2147483647 (const int) -0:117 move second child to first child (temp int) -0:117 'p' (temp int) -0:117 Constant: -0:117 -2147483648 (const int) -0:118 move second child to first child (temp int) -0:118 'p' (temp int) -0:118 Constant: -0:118 -2147483647 (const int) -0:119 Sequence -0:119 move second child to first child (temp float) -0:119 'f' (temp float) -0:119 Constant: -0:119 1.444000 -0:120 move second child to first child (temp float) -0:120 'f' (temp float) -0:120 direct index (temp float) -0:120 Construct vec4 (temp 4-component vector of float) -0:120 Test condition and select (temp float) -0:120 Condition -0:120 Compare Less Than (temp bool) -0:120 direct index (temp float) -0:120 'inv' (smooth in 4-component vector of float) -0:120 Constant: -0:120 0 (const int) -0:120 Constant: -0:120 2.400000 -0:120 true case -0:120 Constant: -0:120 -1.000000 -0:120 false case -0:120 Constant: -0:120 1.000000 -0:120 Constant: -0:120 3 (const int) -0:126 Function Definition: foo3( (global void) -0:126 Function Parameters: -0:128 Sequence -0:128 Sequence -0:128 move second child to first child (temp 3X2 matrix of float) -0:128 'r32' (temp 3X2 matrix of float) -0:128 Constant: -0:128 43.000000 -0:128 64.000000 -0:128 51.000000 -0:128 76.000000 -0:128 59.000000 -0:128 88.000000 -0:138 Function Definition: foo4( (global void) -0:138 Function Parameters: -0:140 Sequence -0:140 Sequence -0:140 move second child to first child (temp int) -0:140 'a' (temp int) -0:140 Constant: -0:140 9 (const int) 0:? Linker Objects 0:? 'a' (const int) 0:? 1 (const int) diff --git a/Test/baseResults/cppComplexExpr.vert.out b/Test/baseResults/cppComplexExpr.vert.out index aa73a069d382b6bf46f0f313605c270bfac428e5..352dcac1815387092b24f9d971a2184a66a4fa25 100644 --- a/Test/baseResults/cppComplexExpr.vert.out +++ b/Test/baseResults/cppComplexExpr.vert.out @@ -152,41 +152,6 @@ ERROR: node is still EOpNull! 0:39 'gl_Position' (gl_Position highp 4-component vector of float Position) 0:39 Construct vec4 (temp highp 4-component vector of float) 0:39 'sum' (global highp float) -0:44 Function Definition: foo( (global highp float) -0:44 Function Parameters: -0:46 Sequence -0:46 Branch: Return with expression -0:46 add (temp highp float) -0:46 add (temp highp float) -0:46 direct index (temp highp float) -0:46 'gl_Position' (gl_Position highp 4-component vector of float Position) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 3.000000 -0:46 add (temp highp float) -0:46 direct index (temp highp float) -0:46 'gl_Position' (gl_Position highp 4-component vector of float Position) -0:46 Constant: -0:46 0 (const int) -0:46 Constant: -0:46 3.000000 -0:47 Branch: Return with expression -0:47 add (temp highp float) -0:47 add (temp highp float) -0:47 direct index (temp highp float) -0:47 'gl_Position' (gl_Position highp 4-component vector of float Position) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 3.000000 -0:47 add (temp highp float) -0:47 direct index (temp highp float) -0:47 'gl_Position' (gl_Position highp 4-component vector of float Position) -0:47 Constant: -0:47 1 (const int) -0:47 Constant: -0:47 3.000000 0:97 Sequence 0:97 move second child to first child (temp highp float) 0:97 'c' (global highp float) diff --git a/Test/baseResults/cppNest.vert.out b/Test/baseResults/cppNest.vert.out index df905579f094f260f7f5ca60b6ec2466e37a7ec5..2077ec33792ebd03f0849f84cb2eb23e9af354dc 100644 --- a/Test/baseResults/cppNest.vert.out +++ b/Test/baseResults/cppNest.vert.out @@ -135,17 +135,6 @@ ERROR: node is still EOpNull! 0:133 'selected3' (global int) 0:133 Constant: 0:133 3 (const int) -0:175 Function Definition: foo985( (global void) -0:175 Function Parameters: -0:175 Sequence -0:175 add (temp int) -0:175 Constant: -0:175 2 (const int) -0:175 Comma (temp int) -0:175 Constant: -0:175 3 (const int) -0:175 Constant: -0:175 4 (const int) 0:? Linker Objects 0:? 'sum' (global float) 0:? 'selected4' (global int) diff --git a/Test/baseResults/cppSimple.vert.out b/Test/baseResults/cppSimple.vert.out index 366770d13d7ae2f8750ce3b5cf73e67b88fe5b0f..bf4b42aeef002d4189e24b4d4b39eae7b678f642 100644 --- a/Test/baseResults/cppSimple.vert.out +++ b/Test/baseResults/cppSimple.vert.out @@ -282,19 +282,6 @@ ERROR: node is still EOpNull! 0:202 'f' (global double) 0:202 Constant: 0:202 0.000800 -12:20031 Function Definition: foo234( (global void) -12:20031 Function Parameters: -12:20033 Sequence -12:20033 move second child to first child (temp 4-component vector of float) -12:20033 gl_Position: direct index for structure (gl_Position 4-component vector of float Position) -12:20033 'anon@0' (out block{gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -12:20033 Constant: -12:20033 0 (const uint) -12:20033 Constant: -12:20033 6.000000 -12:20033 6.000000 -12:20033 6.000000 -12:20033 6.000000 12:9011 Sequence 12:9011 move second child to first child (temp int) 12:9011 'R1' (global int) diff --git a/Test/baseResults/dce.frag.out b/Test/baseResults/dce.frag.out index 2846abd577b9df0d1f749932839890b335a7ad47..6707ae72f5ff50c1086c7ba54c68210884efab71 100644 --- a/Test/baseResults/dce.frag.out +++ b/Test/baseResults/dce.frag.out @@ -147,128 +147,6 @@ Shader version: 400 0:5 'c' (global int) 0:5 Constant: 0:5 0 (const int) -0:7 Function Definition: bar( (global void) -0:7 Function Parameters: -0:9 Sequence -0:9 Test condition and select (temp void) -0:9 Condition -0:9 Constant: -0:9 false (const bool) -0:9 true case -0:10 Pre-Increment (temp int) -0:10 'c' (global int) -0:9 false case -0:12 Pre-Increment (temp int) -0:12 'c' (global int) -0:14 Test condition and select (temp int) -0:14 Condition -0:14 Constant: -0:14 false (const bool) -0:14 true case -0:14 Pre-Increment (temp int) -0:14 'c' (global int) -0:14 false case -0:14 Pre-Increment (temp int) -0:14 'c' (global int) -0:16 switch -0:16 condition -0:16 'c' (global int) -0:16 body -0:16 Sequence -0:17 case: with expression -0:17 Constant: -0:17 1 (const int) -0:? Sequence -0:18 Pre-Increment (temp int) -0:18 'c' (global int) -0:19 Branch: Break -0:20 Pre-Increment (temp int) -0:20 'c' (global int) -0:21 case: with expression -0:21 Constant: -0:21 2 (const int) -0:? Sequence -0:22 Branch: Break -0:23 Pre-Increment (temp int) -0:23 'c' (global int) -0:24 default: -0:? Sequence -0:25 Branch: Break -0:28 Sequence -0:28 Sequence -0:28 move second child to first child (temp int) -0:28 'i' (temp int) -0:28 Constant: -0:28 0 (const int) -0:28 Loop with condition tested first -0:28 Loop Condition -0:28 Compare Less Than (temp bool) -0:28 'i' (temp int) -0:28 Constant: -0:28 0 (const int) -0:28 Loop Body -0:29 Pre-Increment (temp int) -0:29 'c' (global int) -0:28 Loop Terminal Expression -0:28 Pre-Increment (temp int) -0:28 'i' (temp int) -0:31 Sequence -0:31 Sequence -0:31 move second child to first child (temp int) -0:31 'i' (temp int) -0:31 Constant: -0:31 0 (const int) -0:31 Loop with condition tested first -0:31 Loop Condition -0:31 Compare Less Than (temp bool) -0:31 'i' (temp int) -0:31 Constant: -0:31 10 (const int) -0:31 Loop Body -0:32 Sequence -0:32 Test condition and select (temp void) -0:32 Condition -0:32 Compare Less Than (temp bool) -0:32 'c' (global int) -0:32 Constant: -0:32 3 (const int) -0:32 true case -0:33 Sequence -0:33 Branch: Break -0:34 Pre-Increment (temp int) -0:34 'c' (global int) -0:32 false case -0:36 Sequence -0:36 Branch: Continue -0:37 Pre-Increment (temp int) -0:37 'c' (global int) -0:31 Loop Terminal Expression -0:31 Pre-Increment (temp int) -0:31 'i' (temp int) -0:41 Branch: Return -0:43 Pre-Increment (temp int) -0:43 'c' (global int) -0:46 Function Definition: foo( (global int) -0:46 Function Parameters: -0:48 Sequence -0:48 Test condition and select (temp void) -0:48 Condition -0:48 Compare Greater Than (temp bool) -0:48 'c' (global int) -0:48 Constant: -0:48 4 (const int) -0:48 true case -0:49 Sequence -0:49 Branch: Return with expression -0:49 Constant: -0:49 4 (const int) -0:50 Pre-Increment (temp int) -0:50 'c' (global int) -0:53 Branch: Return with expression -0:53 Constant: -0:53 5 (const int) -0:55 Pre-Increment (temp int) -0:55 'c' (global int) 0:? Linker Objects 0:? 'flag' (const bool) 0:? false (const bool) diff --git a/Test/baseResults/functionSemantics.frag.out b/Test/baseResults/functionSemantics.frag.out index 1ea7dbd68edb670b143e2c818c4839c3e37190ea..e0fd0767a883943ed7aa0d438712ef041ca8cfa9 100644 --- a/Test/baseResults/functionSemantics.frag.out +++ b/Test/baseResults/functionSemantics.frag.out @@ -397,19 +397,6 @@ ERROR: node is still EOpNull! 0:62 Construct vec4 (temp 4-component vector of float) 0:62 Convert int to float (temp float) 0:62 'color' (temp int) -0:66 Function Definition: aggCall( (global void) -0:66 Function Parameters: -0:? Sequence -0:69 Function Call: m(vf2; (global 3-component vector of float) -0:69 Convert int to float (temp 2-component vector of float) -0:69 Construct ivec2 (temp 2-component vector of int) -0:69 Convert float to int (temp int) -0:69 'F' (temp float) -0:72 Function Definition: badConv( (global 4-component vector of float) -0:72 Function Parameters: -0:74 Sequence -0:74 Branch: Return with expression -0:74 'u' (uniform float) 0:? Linker Objects 0:? 'u' (uniform float) diff --git a/Test/baseResults/glspv.esversion.vert.out b/Test/baseResults/glspv.esversion.vert.out index ef406a183d4743a33093462b890922adb3cbe3e2..8e4b3b883cd6ef4c2d3b600d99ebf1b8ecdf26af 100755 --- a/Test/baseResults/glspv.esversion.vert.out +++ b/Test/baseResults/glspv.esversion.vert.out @@ -4,8 +4,4 @@ Warning, version 310 is not yet complete; most version-specific features are pre ERROR: 1 compilation errors. No code generated. - -Linked vertex stage: - - SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/glspv.frag.out b/Test/baseResults/glspv.frag.out index 5df46c5b60f9e35a36f081b45d0a4a2f0da2b980..daa1dc1e424a0d021f0efbae2eb8d08ee181f6a5 100755 --- a/Test/baseResults/glspv.frag.out +++ b/Test/baseResults/glspv.frag.out @@ -6,8 +6,4 @@ ERROR: 0:14: '' : syntax error ERROR: 4 compilation errors. No code generated. - -Linked fragment stage: - - SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/glspv.version.frag.out b/Test/baseResults/glspv.version.frag.out index 7f44889ff783e485a32c60e3475382d2aee2f22c..3e8e8c4b00831fa0d98a1bc640b18b33cacbe001 100755 --- a/Test/baseResults/glspv.version.frag.out +++ b/Test/baseResults/glspv.version.frag.out @@ -1,10 +1,6 @@ glspv.version.frag ERROR: #version: compilation for SPIR-V does not support the compatibility profile - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 6 diff --git a/Test/baseResults/glspv.version.vert.out b/Test/baseResults/glspv.version.vert.out index eb003dffc70497b70b7fcddcf3f4ccb5fc8f05f7..9683b3bd906946228bf3f319af98215e20974d17 100755 --- a/Test/baseResults/glspv.version.vert.out +++ b/Test/baseResults/glspv.version.vert.out @@ -3,8 +3,4 @@ ERROR: #version: Desktop shaders for OpenGL SPIR-V require version 330 or higher ERROR: 1 compilation errors. No code generated. - -Linked vertex stage: - - SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/glspv.vert.out b/Test/baseResults/glspv.vert.out index b91ab507e537571481482da16c26072415b2870d..5f6d9bbd54be8ab03e6e61e4babb02f0ca326f88 100755 --- a/Test/baseResults/glspv.vert.out +++ b/Test/baseResults/glspv.vert.out @@ -11,8 +11,4 @@ ERROR: 0:20: '' : syntax error ERROR: 8 compilation errors. No code generated. - -Linked vertex stage: - - SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.amend.frag.out b/Test/baseResults/hlsl.amend.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..44d7655296f72e180562c1d61406b914e322830d --- /dev/null +++ b/Test/baseResults/hlsl.amend.frag.out @@ -0,0 +1,207 @@ +hlsl.amend.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: f1( (temp void) +0:5 Function Parameters: +0:? Sequence +0:6 vector-scale (temp 4-component vector of float) +0:6 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 0 (const uint) +0:6 b: direct index for structure (layout(offset=16 ) uniform float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 1 (const uint) +0:12 Function Definition: f2( (temp void) +0:12 Function Parameters: +0:? Sequence +0:13 add (temp float) +0:13 add (temp float) +0:13 direct index (temp float) +0:13 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 0 (const int) +0:13 b: direct index for structure (layout(offset=16 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 1 (const uint) +0:13 direct index (temp float) +0:13 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: f3( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:18 Constant: +0:18 2 (const uint) +0:24 Function Definition: f4( (temp void) +0:24 Function Parameters: +0:? Sequence +0:25 vector-scale (temp 4-component vector of float) +0:25 Convert int to float (temp float) +0:25 d: direct index for structure (layout(offset=44 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 3 (const uint) +0:25 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: f1( (temp void) +0:5 Function Parameters: +0:? Sequence +0:6 vector-scale (temp 4-component vector of float) +0:6 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 0 (const uint) +0:6 b: direct index for structure (layout(offset=16 ) uniform float) +0:6 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:6 Constant: +0:6 1 (const uint) +0:12 Function Definition: f2( (temp void) +0:12 Function Parameters: +0:? Sequence +0:13 add (temp float) +0:13 add (temp float) +0:13 direct index (temp float) +0:13 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 0 (const uint) +0:13 Constant: +0:13 0 (const int) +0:13 b: direct index for structure (layout(offset=16 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 1 (const uint) +0:13 direct index (temp float) +0:13 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:13 Constant: +0:13 2 (const uint) +0:13 Constant: +0:13 0 (const int) +0:17 Function Definition: f3( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 c: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:18 Constant: +0:18 2 (const uint) +0:24 Function Definition: f4( (temp void) +0:24 Function Parameters: +0:? Sequence +0:25 vector-scale (temp 4-component vector of float) +0:25 Convert int to float (temp float) +0:25 d: direct index for structure (layout(offset=44 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 3 (const uint) +0:25 a: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) +0:25 Constant: +0:25 0 (const uint) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float a, layout(offset=16 ) uniform float b, layout(offset=32 ) uniform 3-component vector of float c, layout(offset=44 ) uniform int d, uniform int e}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 47 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "f1" + ExecutionMode 4 OriginUpperLeft + Name 4 "f1" + Name 6 "f2(" + Name 8 "f3(" + Name 10 "f4(" + Name 16 "$Global" + MemberName 16($Global) 0 "a" + MemberName 16($Global) 1 "b" + MemberName 16($Global) 2 "c" + MemberName 16($Global) 3 "d" + MemberName 16($Global) 4 "e" + Name 18 "" + MemberDecorate 16($Global) 0 Offset 0 + MemberDecorate 16($Global) 1 Offset 16 + MemberDecorate 16($Global) 2 Offset 32 + MemberDecorate 16($Global) 3 Offset 44 + MemberDecorate 16($Global) 4 Offset 48 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 12: TypeFloat 32 + 13: TypeVector 12(float) 4 + 14: TypeVector 12(float) 3 + 15: TypeInt 32 1 + 16($Global): TypeStruct 13(fvec4) 12(float) 14(fvec3) 15(int) 15(int) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: 15(int) Constant 0 + 20: TypePointer Uniform 13(fvec4) + 23: 15(int) Constant 1 + 24: TypePointer Uniform 12(float) + 28: TypeInt 32 0 + 29: 28(int) Constant 0 + 35: 15(int) Constant 2 + 39: 15(int) Constant 3 + 40: TypePointer Uniform 15(int) + 4(f1): 2 Function None 3 + 5: Label + 21: 20(ptr) AccessChain 18 19 + 22: 13(fvec4) Load 21 + 25: 24(ptr) AccessChain 18 23 + 26: 12(float) Load 25 + 27: 13(fvec4) VectorTimesScalar 22 26 + Return + FunctionEnd + 6(f2(): 2 Function None 3 + 7: Label + 30: 24(ptr) AccessChain 18 19 29 + 31: 12(float) Load 30 + 32: 24(ptr) AccessChain 18 23 + 33: 12(float) Load 32 + 34: 12(float) FAdd 31 33 + 36: 24(ptr) AccessChain 18 35 29 + 37: 12(float) Load 36 + 38: 12(float) FAdd 34 37 + Return + FunctionEnd + 8(f3(): 2 Function None 3 + 9: Label + Return + FunctionEnd + 10(f4(): 2 Function None 3 + 11: Label + 41: 40(ptr) AccessChain 18 39 + 42: 15(int) Load 41 + 43: 12(float) ConvertSToF 42 + 44: 20(ptr) AccessChain 18 19 + 45: 13(fvec4) Load 44 + 46: 13(fvec4) VectorTimesScalar 45 43 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.array.flatten.frag.out b/Test/baseResults/hlsl.array.flatten.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..74a348a2ede6bb18cec8a805d4b7b1d4b7fcdcf1 --- /dev/null +++ b/Test/baseResults/hlsl.array.flatten.frag.out @@ -0,0 +1,526 @@ +hlsl.array.flatten.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: TestFn1( (temp 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:18 Branch: Return with expression +0:18 texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_samp[1]' (uniform sampler) +0:18 Constant: +0:18 0.200000 +0:22 Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) +0:22 Function Parameters: +0:22 'l_tex' (in 3-element array of texture1D) +0:22 'l_samp' (in 3-element array of sampler) +0:? Sequence +0:23 Branch: Return with expression +0:23 texture (temp 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1D) +0:23 direct index (temp texture1D) +0:23 'l_tex' (in 3-element array of texture1D) +0:23 Constant: +0:23 2 (const int) +0:23 direct index (temp sampler) +0:23 'l_samp' (in 3-element array of sampler) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.200000 +0:26 Sequence +0:26 move second child to first child (temp 5-element array of int) +0:26 'not_flattened_a' (global 5-element array of int) +0:26 Constant: +0:26 1 (const int) +0:26 2 (const int) +0:26 3 (const int) +0:26 4 (const int) +0:26 5 (const int) +0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:31 Function Parameters: +0:31 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:34 Sequence +0:34 Sequence +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:35 Sequence +0:35 move second child to first child (temp 4-element array of float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:35 Constant: +0:35 2 (const uint) +0:37 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:37 add (temp 4-component vector of float) +0:37 Function Call: TestFn1( (temp 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) +0:37 Comma (temp 3-element array of texture1D) +0:37 Sequence +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Comma (temp 3-element array of sampler) +0:37 Sequence +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tex[0]' (uniform texture1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_tex[2]' (uniform texture1D) +0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D) +0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D) +0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D) +0:? 'g_samp[0]' (uniform sampler) +0:? 'g_samp[1]' (uniform sampler) +0:? 'g_samp[2]' (uniform sampler) +0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) +0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) +0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:? 'not_flattened_a' (global 5-element array of int) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:17 Function Definition: TestFn1( (temp 4-component vector of float) +0:17 Function Parameters: +0:? Sequence +0:18 Branch: Return with expression +0:18 texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_samp[1]' (uniform sampler) +0:18 Constant: +0:18 0.200000 +0:22 Function Definition: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) +0:22 Function Parameters: +0:22 'l_tex' (in 3-element array of texture1D) +0:22 'l_samp' (in 3-element array of sampler) +0:? Sequence +0:23 Branch: Return with expression +0:23 texture (temp 4-component vector of float) +0:23 Construct combined texture-sampler (temp sampler1D) +0:23 direct index (temp texture1D) +0:23 'l_tex' (in 3-element array of texture1D) +0:23 Constant: +0:23 2 (const int) +0:23 direct index (temp sampler) +0:23 'l_samp' (in 3-element array of sampler) +0:23 Constant: +0:23 2 (const int) +0:23 Constant: +0:23 0.200000 +0:26 Sequence +0:26 move second child to first child (temp 5-element array of int) +0:26 'not_flattened_a' (global 5-element array of int) +0:26 Constant: +0:26 1 (const int) +0:26 2 (const int) +0:26 3 (const int) +0:26 4 (const int) +0:26 5 (const int) +0:31 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:31 Function Parameters: +0:31 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:33 move second child to first child (temp sampler) +0:33 direct index (temp sampler) +0:33 'local_sampler_array' (temp 3-element array of sampler) +0:33 Constant: +0:33 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:34 Sequence +0:34 Sequence +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:34 move second child to first child (temp texture1D) +0:34 direct index (temp texture1D) +0:34 'local_texture_array' (temp 3-element array of texture1D) +0:34 Constant: +0:34 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:35 Sequence +0:35 move second child to first child (temp 4-element array of float) +0:35 'local_float_array' (temp 4-element array of float) +0:35 g_floats: direct index for structure (layout(offset=384 ) uniform 4-element array of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:35 Constant: +0:35 2 (const uint) +0:37 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:37 add (temp 4-component vector of float) +0:37 Function Call: TestFn1( (temp 4-component vector of float) +0:37 Function Call: TestFn2(t11[3];p1[3]; (temp 4-component vector of float) +0:37 Comma (temp 3-element array of texture1D) +0:37 Sequence +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 0 (const int) +0:? 'g_tex[0]' (uniform texture1D) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 1 (const int) +0:? 'g_tex[1]' (uniform texture1D) +0:37 move second child to first child (temp texture1D) +0:37 direct index (temp texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Constant: +0:37 2 (const int) +0:? 'g_tex[2]' (uniform texture1D) +0:37 'aggShadow' (temp 3-element array of texture1D) +0:37 Comma (temp 3-element array of sampler) +0:37 Sequence +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 0 (const int) +0:? 'g_samp[0]' (uniform sampler) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 1 (const int) +0:? 'g_samp[1]' (uniform sampler) +0:37 move second child to first child (temp sampler) +0:37 direct index (temp sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:37 Constant: +0:37 2 (const int) +0:? 'g_samp[2]' (uniform sampler) +0:37 'aggShadow' (temp 3-element array of sampler) +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tex[0]' (uniform texture1D) +0:? 'g_tex[1]' (uniform texture1D) +0:? 'g_tex[2]' (uniform texture1D) +0:? 'g_tex_explicit[0]' (layout(binding=1 ) uniform texture1D) +0:? 'g_tex_explicit[1]' (layout(binding=2 ) uniform texture1D) +0:? 'g_tex_explicit[2]' (layout(binding=3 ) uniform texture1D) +0:? 'g_samp[0]' (uniform sampler) +0:? 'g_samp[1]' (uniform sampler) +0:? 'g_samp[2]' (uniform sampler) +0:? 'g_samp_explicit[0]' (layout(binding=5 ) uniform sampler) +0:? 'g_samp_explicit[1]' (layout(binding=6 ) uniform sampler) +0:? 'g_samp_explicit[2]' (layout(binding=7 ) uniform sampler) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 3X3 matrix of float g_mats, layout(binding=10 offset=192 ) uniform 4-element array of 3X3 matrix of float g_mats_explicit, layout(offset=384 ) uniform 4-element array of float g_floats}) +0:? 'not_flattened_a' (global 5-element array of int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 123 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 99 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "TestFn1(" + Name 22 "TestFn2(t11[3];p1[3];" + Name 20 "l_tex" + Name 21 "l_samp" + Name 28 "not_flattened_a" + Name 36 "g_tex[1]" + Name 39 "g_samp[1]" + Name 55 "local_sampler_array" + Name 57 "g_samp[0]" + Name 62 "g_samp[2]" + Name 65 "local_texture_array" + Name 66 "g_tex[0]" + Name 71 "g_tex[2]" + Name 77 "local_float_array" + Name 83 "$Global" + MemberName 83($Global) 0 "g_mats" + MemberName 83($Global) 1 "g_mats_explicit" + MemberName 83($Global) 2 "g_floats" + Name 85 "" + Name 99 "color" + Name 101 "aggShadow" + Name 108 "aggShadow" + Name 117 "g_tex_explicit[0]" + Name 118 "g_tex_explicit[1]" + Name 119 "g_tex_explicit[2]" + Name 120 "g_samp_explicit[0]" + Name 121 "g_samp_explicit[1]" + Name 122 "g_samp_explicit[2]" + Decorate 36(g_tex[1]) DescriptorSet 0 + Decorate 39(g_samp[1]) DescriptorSet 0 + Decorate 57(g_samp[0]) DescriptorSet 0 + Decorate 62(g_samp[2]) DescriptorSet 0 + Decorate 66(g_tex[0]) DescriptorSet 0 + Decorate 71(g_tex[2]) DescriptorSet 0 + Decorate 80 ArrayStride 48 + Decorate 81 ArrayStride 48 + Decorate 82 ArrayStride 16 + MemberDecorate 83($Global) 0 RowMajor + MemberDecorate 83($Global) 0 Offset 0 + MemberDecorate 83($Global) 0 MatrixStride 16 + MemberDecorate 83($Global) 1 RowMajor + MemberDecorate 83($Global) 1 Offset 192 + MemberDecorate 83($Global) 1 MatrixStride 16 + MemberDecorate 83($Global) 2 Offset 384 + Decorate 83($Global) Block + Decorate 85 DescriptorSet 0 + Decorate 99(color) Location 0 + Decorate 117(g_tex_explicit[0]) DescriptorSet 0 + Decorate 117(g_tex_explicit[0]) Binding 1 + Decorate 118(g_tex_explicit[1]) DescriptorSet 0 + Decorate 118(g_tex_explicit[1]) Binding 2 + Decorate 119(g_tex_explicit[2]) DescriptorSet 0 + Decorate 119(g_tex_explicit[2]) Binding 3 + Decorate 120(g_samp_explicit[0]) DescriptorSet 0 + Decorate 120(g_samp_explicit[0]) Binding 5 + Decorate 121(g_samp_explicit[1]) DescriptorSet 0 + Decorate 121(g_samp_explicit[1]) Binding 6 + Decorate 122(g_samp_explicit[2]) DescriptorSet 0 + Decorate 122(g_samp_explicit[2]) Binding 7 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 11: TypeImage 6(float) 1D sampled format:Unknown + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 11 13 + 15: TypePointer UniformConstant 14 + 16: TypeSampler + 17: TypeArray 16 13 + 18: TypePointer UniformConstant 17 + 19: TypeFunction 7(fvec4) 15(ptr) 18(ptr) + 24: TypeInt 32 1 + 25: 12(int) Constant 5 + 26: TypeArray 24(int) 25 + 27: TypePointer Private 26 +28(not_flattened_a): 27(ptr) Variable Private + 29: 24(int) Constant 1 + 30: 24(int) Constant 2 + 31: 24(int) Constant 3 + 32: 24(int) Constant 4 + 33: 24(int) Constant 5 + 34: 26 ConstantComposite 29 30 31 32 33 + 35: TypePointer UniformConstant 11 + 36(g_tex[1]): 35(ptr) Variable UniformConstant + 38: TypePointer UniformConstant 16 + 39(g_samp[1]): 38(ptr) Variable UniformConstant + 41: TypeSampledImage 11 + 43: 6(float) Constant 1045220557 +55(local_sampler_array): 18(ptr) Variable UniformConstant + 56: 24(int) Constant 0 + 57(g_samp[0]): 38(ptr) Variable UniformConstant + 62(g_samp[2]): 38(ptr) Variable UniformConstant +65(local_texture_array): 15(ptr) Variable UniformConstant + 66(g_tex[0]): 35(ptr) Variable UniformConstant + 71(g_tex[2]): 35(ptr) Variable UniformConstant + 74: 12(int) Constant 4 + 75: TypeArray 6(float) 74 + 76: TypePointer Function 75 + 78: TypeVector 6(float) 3 + 79: TypeMatrix 78(fvec3) 3 + 80: TypeArray 79 74 + 81: TypeArray 79 74 + 82: TypeArray 6(float) 74 + 83($Global): TypeStruct 80 81 82 + 84: TypePointer Uniform 83($Global) + 85: 84(ptr) Variable Uniform + 86: TypePointer Uniform 82 + 90: TypePointer Function 6(float) + 98: TypePointer Output 7(fvec4) + 99(color): 98(ptr) Variable Output + 101(aggShadow): 15(ptr) Variable UniformConstant + 108(aggShadow): 18(ptr) Variable UniformConstant +117(g_tex_explicit[0]): 35(ptr) Variable UniformConstant +118(g_tex_explicit[1]): 35(ptr) Variable UniformConstant +119(g_tex_explicit[2]): 35(ptr) Variable UniformConstant +120(g_samp_explicit[0]): 38(ptr) Variable UniformConstant +121(g_samp_explicit[1]): 38(ptr) Variable UniformConstant +122(g_samp_explicit[2]): 38(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +77(local_float_array): 76(ptr) Variable Function + Store 28(not_flattened_a) 34 + 58: 16 Load 57(g_samp[0]) + 59: 38(ptr) AccessChain 55(local_sampler_array) 56 + Store 59 58 + 60: 16 Load 39(g_samp[1]) + 61: 38(ptr) AccessChain 55(local_sampler_array) 29 + Store 61 60 + 63: 16 Load 62(g_samp[2]) + 64: 38(ptr) AccessChain 55(local_sampler_array) 30 + Store 64 63 + 67: 11 Load 66(g_tex[0]) + 68: 35(ptr) AccessChain 65(local_texture_array) 56 + Store 68 67 + 69: 11 Load 36(g_tex[1]) + 70: 35(ptr) AccessChain 65(local_texture_array) 29 + Store 70 69 + 72: 11 Load 71(g_tex[2]) + 73: 35(ptr) AccessChain 65(local_texture_array) 30 + Store 73 72 + 87: 86(ptr) AccessChain 85 30 + 88: 82 Load 87 + 89: 6(float) CompositeExtract 88 0 + 91: 90(ptr) AccessChain 77(local_float_array) 56 + Store 91 89 + 92: 6(float) CompositeExtract 88 1 + 93: 90(ptr) AccessChain 77(local_float_array) 29 + Store 93 92 + 94: 6(float) CompositeExtract 88 2 + 95: 90(ptr) AccessChain 77(local_float_array) 30 + Store 95 94 + 96: 6(float) CompositeExtract 88 3 + 97: 90(ptr) AccessChain 77(local_float_array) 31 + Store 97 96 + 100: 7(fvec4) FunctionCall 9(TestFn1() + 102: 11 Load 66(g_tex[0]) + 103: 35(ptr) AccessChain 101(aggShadow) 56 + Store 103 102 + 104: 11 Load 36(g_tex[1]) + 105: 35(ptr) AccessChain 101(aggShadow) 29 + Store 105 104 + 106: 11 Load 71(g_tex[2]) + 107: 35(ptr) AccessChain 101(aggShadow) 30 + Store 107 106 + 109: 16 Load 57(g_samp[0]) + 110: 38(ptr) AccessChain 108(aggShadow) 56 + Store 110 109 + 111: 16 Load 39(g_samp[1]) + 112: 38(ptr) AccessChain 108(aggShadow) 29 + Store 112 111 + 113: 16 Load 62(g_samp[2]) + 114: 38(ptr) AccessChain 108(aggShadow) 30 + Store 114 113 + 115: 7(fvec4) FunctionCall 22(TestFn2(t11[3];p1[3];) 101(aggShadow) 108(aggShadow) + 116: 7(fvec4) FAdd 100 115 + Store 99(color) 116 + Return + FunctionEnd + 9(TestFn1(): 7(fvec4) Function None 8 + 10: Label + 37: 11 Load 36(g_tex[1]) + 40: 16 Load 39(g_samp[1]) + 42: 41 SampledImage 37 40 + 44: 7(fvec4) ImageSampleImplicitLod 42 43 + ReturnValue 44 + FunctionEnd +22(TestFn2(t11[3];p1[3];): 7(fvec4) Function None 19 + 20(l_tex): 15(ptr) FunctionParameter + 21(l_samp): 18(ptr) FunctionParameter + 23: Label + 47: 35(ptr) AccessChain 20(l_tex) 30 + 48: 11 Load 47 + 49: 38(ptr) AccessChain 21(l_samp) 30 + 50: 16 Load 49 + 51: 41 SampledImage 48 50 + 52: 7(fvec4) ImageSampleImplicitLod 51 43 + ReturnValue 52 + FunctionEnd diff --git a/Test/baseResults/hlsl.array.frag.out b/Test/baseResults/hlsl.array.frag.out index 359f62f8224bd0afd19f1783cd6965cbe94d00b4..e04a5e81611c94db160bf71da67916cf03bb2210 100755 --- a/Test/baseResults/hlsl.array.frag.out +++ b/Test/baseResults/hlsl.array.frag.out @@ -2,7 +2,7 @@ hlsl.array.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) 0:8 Function Parameters: 0:8 'i' (layout(location=0 ) in int) 0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -16,12 +16,18 @@ gl_FragCoord origin is upper left 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' (global 4-element array of 4-component vector of float) +0:10 direct index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) 0:10 Constant: 0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 indirect index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) 0:10 'i' (layout(location=0 ) in int) 0:10 direct index (layout(location=1 ) temp 4-component vector of float) 0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -39,19 +45,21 @@ gl_FragCoord origin is upper left 0:10 'i' (layout(location=0 ) 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' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m}) +0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 1 (const uint) 0:10 'i' (layout(location=0 ) in int) 0:10 Constant: 0:10 0 (const int) 0:10 'i' (layout(location=0 ) in int) 0:10 Branch: Return 0:? Linker Objects -0:? 'a' (global 4-element array of 4-component vector of float) -0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'i' (layout(location=0 ) in int) 0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) Linked fragment stage: @@ -60,7 +68,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(i1;vf4[3]; (temp 4-component vector of float) 0:8 Function Parameters: 0:8 'i' (layout(location=0 ) in int) 0:8 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -74,12 +82,18 @@ gl_FragCoord origin is upper left 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' (global 4-element array of 4-component vector of float) +0:10 direct index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) 0:10 Constant: 0:10 1 (const int) -0:10 indirect index (temp 4-component vector of float) -0:10 'a' (global 4-element array of 4-component vector of float) +0:10 indirect index (layout(offset=0 ) temp 4-component vector of float) +0:10 a: direct index for structure (layout(offset=0 ) uniform 4-element array of 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 0 (const uint) 0:10 'i' (layout(location=0 ) in int) 0:10 direct index (layout(location=1 ) temp 4-component vector of float) 0:10 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) @@ -97,41 +111,53 @@ gl_FragCoord origin is upper left 0:10 'i' (layout(location=0 ) 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' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 indirect index (layout(offset=64 ) temp structure{temp 7-element array of 4-component vector of float m}) +0:10 s: direct index for structure (layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m}) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) +0:10 Constant: +0:10 1 (const uint) 0:10 'i' (layout(location=0 ) in int) 0:10 Constant: 0:10 0 (const int) 0:10 'i' (layout(location=0 ) in int) 0:10 Branch: Return 0:? Linker Objects -0:? 'a' (global 4-element array of 4-component vector of float) -0:? 's' (global 11-element array of structure{temp 7-element array of 4-component vector of float m}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'i' (layout(location=0 ) in int) 0:? 'input' (layout(location=1 ) in 3-element array of 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-element array of 4-component vector of float a, layout(offset=64 ) uniform 11-element array of structure{temp 7-element array of 4-component vector of float m} s}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 66 +// Id's are bound by 65 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 21 29 + EntryPoint Fragment 4 "PixelShaderFunction" 9 28 36 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 9 "@entryPointOutput" - Name 14 "a" - Name 21 "i" - Name 29 "input" - Name 42 "b" - Name 54 "" - MemberName 54 0 "m" - Name 58 "s" + Name 15 "" + MemberName 15 0 "m" + Name 18 "$Global" + MemberName 18($Global) 0 "a" + MemberName 18($Global) 1 "s" + Name 20 "" + Name 28 "i" + Name 36 "input" + Name 49 "b" Decorate 9(@entryPointOutput) Location 0 - Decorate 21(i) Location 0 - Decorate 29(input) Location 1 + Decorate 12 ArrayStride 16 + Decorate 14 ArrayStride 16 + MemberDecorate 15 0 Offset 0 + Decorate 17 ArrayStride 112 + MemberDecorate 18($Global) 0 Offset 0 + MemberDecorate 18($Global) 1 Offset 64 + Decorate 18($Global) Block + Decorate 20 DescriptorSet 0 + Decorate 28(i) Location 0 + Decorate 36(input) Location 1 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -141,60 +167,59 @@ gl_FragCoord origin is upper left 10: TypeInt 32 0 11: 10(int) Constant 4 12: TypeArray 7(fvec4) 11 - 13: TypePointer Private 12 - 14(a): 13(ptr) Variable Private - 15: TypeInt 32 1 - 16: 15(int) Constant 1 - 17: TypePointer Private 7(fvec4) - 20: TypePointer Input 15(int) - 21(i): 20(ptr) Variable Input - 26: 10(int) Constant 3 - 27: TypeArray 7(fvec4) 26 - 28: TypePointer Input 27 - 29(input): 28(ptr) Variable Input - 30: 15(int) Constant 2 - 31: TypePointer Input 7(fvec4) - 39: 10(int) Constant 10 - 40: TypeArray 7(fvec4) 39 - 41: TypePointer Function 40 - 43: 15(int) Constant 5 - 44: TypePointer Function 7(fvec4) - 52: 10(int) Constant 7 - 53: TypeArray 7(fvec4) 52 - 54: TypeStruct 53 - 55: 10(int) Constant 11 - 56: TypeArray 54(struct) 55 - 57: TypePointer Private 56 - 58(s): 57(ptr) Variable Private - 60: 15(int) Constant 0 + 13: 10(int) Constant 7 + 14: TypeArray 7(fvec4) 13 + 15: TypeStruct 14 + 16: 10(int) Constant 11 + 17: TypeArray 15(struct) 16 + 18($Global): TypeStruct 12 17 + 19: TypePointer Uniform 18($Global) + 20: 19(ptr) Variable Uniform + 21: TypeInt 32 1 + 22: 21(int) Constant 0 + 23: 21(int) Constant 1 + 24: TypePointer Uniform 7(fvec4) + 27: TypePointer Input 21(int) + 28(i): 27(ptr) Variable Input + 33: 10(int) Constant 3 + 34: TypeArray 7(fvec4) 33 + 35: TypePointer Input 34 + 36(input): 35(ptr) Variable Input + 37: 21(int) Constant 2 + 38: TypePointer Input 7(fvec4) + 46: 10(int) Constant 10 + 47: TypeArray 7(fvec4) 46 + 48: TypePointer Function 47 + 50: 21(int) Constant 5 + 51: TypePointer Function 7(fvec4) 4(PixelShaderFunction): 2 Function None 3 5: Label - 42(b): 41(ptr) Variable Function - 18: 17(ptr) AccessChain 14(a) 16 - 19: 7(fvec4) Load 18 - 22: 15(int) Load 21(i) - 23: 17(ptr) AccessChain 14(a) 22 - 24: 7(fvec4) Load 23 - 25: 7(fvec4) FAdd 19 24 - 32: 31(ptr) AccessChain 29(input) 30 - 33: 7(fvec4) Load 32 - 34: 7(fvec4) FAdd 25 33 - 35: 15(int) Load 21(i) - 36: 31(ptr) AccessChain 29(input) 35 - 37: 7(fvec4) Load 36 - 38: 7(fvec4) FAdd 34 37 - 45: 44(ptr) AccessChain 42(b) 43 - 46: 7(fvec4) Load 45 - 47: 7(fvec4) FAdd 38 46 - 48: 15(int) Load 21(i) - 49: 44(ptr) AccessChain 42(b) 48 - 50: 7(fvec4) Load 49 - 51: 7(fvec4) FAdd 47 50 - 59: 15(int) Load 21(i) - 61: 15(int) Load 21(i) - 62: 17(ptr) AccessChain 58(s) 59 60 61 - 63: 7(fvec4) Load 62 - 64: 7(fvec4) FAdd 51 63 - Store 9(@entryPointOutput) 64 + 49(b): 48(ptr) Variable Function + 25: 24(ptr) AccessChain 20 22 23 + 26: 7(fvec4) Load 25 + 29: 21(int) Load 28(i) + 30: 24(ptr) AccessChain 20 22 29 + 31: 7(fvec4) Load 30 + 32: 7(fvec4) FAdd 26 31 + 39: 38(ptr) AccessChain 36(input) 37 + 40: 7(fvec4) Load 39 + 41: 7(fvec4) FAdd 32 40 + 42: 21(int) Load 28(i) + 43: 38(ptr) AccessChain 36(input) 42 + 44: 7(fvec4) Load 43 + 45: 7(fvec4) FAdd 41 44 + 52: 51(ptr) AccessChain 49(b) 50 + 53: 7(fvec4) Load 52 + 54: 7(fvec4) FAdd 45 53 + 55: 21(int) Load 28(i) + 56: 51(ptr) AccessChain 49(b) 55 + 57: 7(fvec4) Load 56 + 58: 7(fvec4) FAdd 54 57 + 59: 21(int) Load 28(i) + 60: 21(int) Load 28(i) + 61: 24(ptr) AccessChain 20 23 59 22 60 + 62: 7(fvec4) Load 61 + 63: 7(fvec4) FAdd 58 62 + Store 9(@entryPointOutput) 63 Return FunctionEnd diff --git a/Test/baseResults/hlsl.array.implicit-size.frag.out b/Test/baseResults/hlsl.array.implicit-size.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..5f2036226580b8b67c95b59e724fc74569cb567b --- /dev/null +++ b/Test/baseResults/hlsl.array.implicit-size.frag.out @@ -0,0 +1,265 @@ +hlsl.array.implicit-size.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp 5-element array of float) +0:3 'g_array' (global 5-element array of float) +0:3 Constant: +0:3 1.000000 +0:3 2.000000 +0:3 3.000000 +0:3 4.000000 +0:3 5.000000 +0:6 Sequence +0:6 move second child to first child (temp 7-element array of float) +0:6 'g_array_unused' (global 7-element array of float) +0:6 Constant: +0:6 1.000000 +0:6 2.000000 +0:6 3.000000 +0:6 4.000000 +0:6 5.000000 +0:6 6.000000 +0:6 7.000000 +0:12 Sequence +0:12 move second child to first child (temp 2-element array of structure{temp int i, temp float f}) +0:12 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) +0:12 Constant: +0:12 1 (const int) +0:12 2.000000 +0:12 3 (const int) +0:12 4.000000 +0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:26 Function Parameters: +0:26 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp 3-element array of float) +0:28 'l_array' (temp 3-element array of float) +0:28 Constant: +0:28 1.000000 +0:28 2.000000 +0:28 3.000000 +0:31 move second child to first child (temp 4-component vector of float) +0:31 color: direct index for structure (temp 4-component vector of float) +0:31 'ps_output' (out structure{temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) +0:31 Construct vec4 (temp 4-component vector of float) +0:31 add (temp float) +0:31 add (temp float) +0:31 add (temp float) +0:31 add (temp float) +0:31 direct index (temp float) +0:31 'g_array' (global 5-element array of float) +0:31 Constant: +0:31 0 (const int) +0:31 direct index (temp float) +0:31 'g_array' (global 5-element array of float) +0:31 Constant: +0:31 4 (const int) +0:31 direct index (temp float) +0:31 'l_array' (temp 3-element array of float) +0:31 Constant: +0:31 1 (const int) +0:31 f: direct index for structure (temp float) +0:31 direct index (temp structure{temp int i, temp float f}) +0:31 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 indirect index (temp float) +0:31 'g_array' (global 5-element array of float) +0:31 'idx' (temp int) +0:? Linker Objects +0:? 'g_array' (global 5-element array of float) +0:? 'g_array_unused' (global 7-element array of float) +0:? 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) + + +Linked fragment stage: + +WARNING: Linking fragment stage: Entry point not found + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Sequence +0:3 move second child to first child (temp 5-element array of float) +0:3 'g_array' (global 5-element array of float) +0:3 Constant: +0:3 1.000000 +0:3 2.000000 +0:3 3.000000 +0:3 4.000000 +0:3 5.000000 +0:6 Sequence +0:6 move second child to first child (temp 7-element array of float) +0:6 'g_array_unused' (global 7-element array of float) +0:6 Constant: +0:6 1.000000 +0:6 2.000000 +0:6 3.000000 +0:6 4.000000 +0:6 5.000000 +0:6 6.000000 +0:6 7.000000 +0:12 Sequence +0:12 move second child to first child (temp 2-element array of structure{temp int i, temp float f}) +0:12 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) +0:12 Constant: +0:12 1 (const int) +0:12 2.000000 +0:12 3 (const int) +0:12 4.000000 +0:26 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:26 Function Parameters: +0:26 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp 3-element array of float) +0:28 'l_array' (temp 3-element array of float) +0:28 Constant: +0:28 1.000000 +0:28 2.000000 +0:28 3.000000 +0:31 move second child to first child (temp 4-component vector of float) +0:31 color: direct index for structure (temp 4-component vector of float) +0:31 'ps_output' (out structure{temp 4-component vector of float color}) +0:31 Constant: +0:31 0 (const int) +0:31 Construct vec4 (temp 4-component vector of float) +0:31 add (temp float) +0:31 add (temp float) +0:31 add (temp float) +0:31 add (temp float) +0:31 direct index (temp float) +0:31 'g_array' (global 5-element array of float) +0:31 Constant: +0:31 0 (const int) +0:31 direct index (temp float) +0:31 'g_array' (global 5-element array of float) +0:31 Constant: +0:31 4 (const int) +0:31 direct index (temp float) +0:31 'l_array' (temp 3-element array of float) +0:31 Constant: +0:31 1 (const int) +0:31 f: direct index for structure (temp float) +0:31 direct index (temp structure{temp int i, temp float f}) +0:31 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) +0:31 Constant: +0:31 0 (const int) +0:31 Constant: +0:31 1 (const int) +0:31 indirect index (temp float) +0:31 'g_array' (global 5-element array of float) +0:31 'idx' (temp int) +0:? Linker Objects +0:? 'g_array' (global 5-element array of float) +0:? 'g_array_unused' (global 7-element array of float) +0:? 'g_mystruct' (global 2-element array of structure{temp int i, temp float f}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 72 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + Name 12 "main(struct-PS_OUTPUT-vf41;" + Name 11 "ps_output" + Name 18 "g_array" + Name 28 "g_array_unused" + Name 33 "mystruct" + MemberName 33(mystruct) 0 "i" + MemberName 33(mystruct) 1 "f" + Name 37 "g_mystruct" + Name 46 "l_array" + Name 64 "idx" + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 10: TypeFunction 2 9(ptr) + 14: TypeInt 32 0 + 15: 14(int) Constant 5 + 16: TypeArray 6(float) 15 + 17: TypePointer Private 16 + 18(g_array): 17(ptr) Variable Private + 19: 6(float) Constant 1065353216 + 20: 6(float) Constant 1073741824 + 21: 6(float) Constant 1077936128 + 22: 6(float) Constant 1082130432 + 23: 6(float) Constant 1084227584 + 24: 16 ConstantComposite 19 20 21 22 23 + 25: 14(int) Constant 7 + 26: TypeArray 6(float) 25 + 27: TypePointer Private 26 +28(g_array_unused): 27(ptr) Variable Private + 29: 6(float) Constant 1086324736 + 30: 6(float) Constant 1088421888 + 31: 26 ConstantComposite 19 20 21 22 23 29 30 + 32: TypeInt 32 1 + 33(mystruct): TypeStruct 32(int) 6(float) + 34: 14(int) Constant 2 + 35: TypeArray 33(mystruct) 34 + 36: TypePointer Private 35 + 37(g_mystruct): 36(ptr) Variable Private + 38: 32(int) Constant 1 + 39:33(mystruct) ConstantComposite 38 20 + 40: 32(int) Constant 3 + 41:33(mystruct) ConstantComposite 40 22 + 42: 35 ConstantComposite 39 41 + 43: 14(int) Constant 3 + 44: TypeArray 6(float) 43 + 45: TypePointer Function 44 + 47: 44 ConstantComposite 19 20 21 + 48: 32(int) Constant 0 + 49: TypePointer Private 6(float) + 52: 32(int) Constant 4 + 56: TypePointer Function 6(float) + 63: TypePointer Function 32(int) + 70: TypePointer Function 7(fvec4) +4(PixelShaderFunction): 2 Function None 3 + 5: Label + Store 18(g_array) 24 + Store 28(g_array_unused) 31 + Store 37(g_mystruct) 42 + Return + FunctionEnd +12(main(struct-PS_OUTPUT-vf41;): 2 Function None 10 + 11(ps_output): 9(ptr) FunctionParameter + 13: Label + 46(l_array): 45(ptr) Variable Function + 64(idx): 63(ptr) Variable Function + Store 46(l_array) 47 + 50: 49(ptr) AccessChain 18(g_array) 48 + 51: 6(float) Load 50 + 53: 49(ptr) AccessChain 18(g_array) 52 + 54: 6(float) Load 53 + 55: 6(float) FAdd 51 54 + 57: 56(ptr) AccessChain 46(l_array) 38 + 58: 6(float) Load 57 + 59: 6(float) FAdd 55 58 + 60: 49(ptr) AccessChain 37(g_mystruct) 48 38 + 61: 6(float) Load 60 + 62: 6(float) FAdd 59 61 + 65: 32(int) Load 64(idx) + 66: 49(ptr) AccessChain 18(g_array) 65 + 67: 6(float) Load 66 + 68: 6(float) FAdd 62 67 + 69: 7(fvec4) CompositeConstruct 68 68 68 68 + 71: 70(ptr) AccessChain 11(ps_output) 48 + Store 71 69 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.array.multidim.frag.out b/Test/baseResults/hlsl.array.multidim.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..66890b52ce9b7a7cd63f18fea2c0444825acce69 --- /dev/null +++ b/Test/baseResults/hlsl.array.multidim.frag.out @@ -0,0 +1,210 @@ +hlsl.array.multidim.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 direct index (temp 4-component vector of float) +0:14 direct index (temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Construct vec4 (temp 4-component vector of float) +0:14 direct index (layout(offset=0 ) temp float) +0:14 direct index (layout(offset=0 ) temp 3-element array of float) +0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float) +0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 3 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 move second child to first child (temp 3-element array of 4-component vector of float) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:18 move second child to first child (temp 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 direct index (temp 4-component vector of float) +0:18 direct index (temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 direct index (temp 4-component vector of float) +0:14 direct index (temp 3-element array of 4-component vector of float) +0:14 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:14 Constant: +0:14 1 (const int) +0:14 Constant: +0:14 2 (const int) +0:14 Construct vec4 (temp 4-component vector of float) +0:14 direct index (layout(offset=0 ) temp float) +0:14 direct index (layout(offset=0 ) temp 3-element array of float) +0:14 direct index (layout(offset=0 ) temp 4-element array of 3-element array of float) +0:14 float_array: direct index for structure (layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) +0:14 Constant: +0:14 0 (const uint) +0:14 Constant: +0:14 2 (const int) +0:14 Constant: +0:14 3 (const int) +0:14 Constant: +0:14 1 (const int) +0:15 move second child to first child (temp 3-element array of 4-component vector of float) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_2' (temp 5-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 1 (const int) +0:15 direct index (temp 3-element array of 4-component vector of float) +0:15 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:15 Constant: +0:15 0 (const int) +0:18 move second child to first child (temp 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 direct index (temp 4-component vector of float) +0:18 direct index (temp 3-element array of 4-component vector of float) +0:18 'float4_array_1' (temp 2-element array of 3-element array of 4-component vector of float) +0:18 Constant: +0:18 1 (const int) +0:18 Constant: +0:18 2 (const int) +0:19 Sequence +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:19 Color: direct index for structure (temp 4-component vector of float) +0:19 'psout' (temp structure{temp 4-component vector of float Color}) +0:19 Constant: +0:19 0 (const int) +0:19 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 5-element array of 4-element array of 3-element array of float float_array}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 52 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 48 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 14 "float4_array_1" + Name 23 "$Global" + MemberName 23($Global) 0 "float_array" + Name 25 "" + Name 36 "float4_array_2" + Name 41 "PS_OUTPUT" + MemberName 41(PS_OUTPUT) 0 "Color" + Name 43 "psout" + Name 48 "Color" + Decorate 18 ArrayStride 16 + Decorate 20 ArrayStride 48 + Decorate 22 ArrayStride 192 + MemberDecorate 23($Global) 0 Offset 0 + Decorate 23($Global) Block + Decorate 25 DescriptorSet 0 + Decorate 48(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeInt 32 0 + 9: 8(int) Constant 3 + 10: TypeArray 7(fvec4) 9 + 11: 8(int) Constant 2 + 12: TypeArray 10 11 + 13: TypePointer Function 12 + 15: TypeInt 32 1 + 16: 15(int) Constant 1 + 17: 15(int) Constant 2 + 18: TypeArray 6(float) 9 + 19: 8(int) Constant 4 + 20: TypeArray 18 19 + 21: 8(int) Constant 5 + 22: TypeArray 20 21 + 23($Global): TypeStruct 22 + 24: TypePointer Uniform 23($Global) + 25: 24(ptr) Variable Uniform + 26: 15(int) Constant 0 + 27: 15(int) Constant 3 + 28: TypePointer Uniform 6(float) + 32: TypePointer Function 7(fvec4) + 34: TypeArray 10 21 + 35: TypePointer Function 34 + 37: TypePointer Function 10 + 41(PS_OUTPUT): TypeStruct 7(fvec4) + 42: TypePointer Function 41(PS_OUTPUT) + 47: TypePointer Output 7(fvec4) + 48(Color): 47(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label +14(float4_array_1): 13(ptr) Variable Function +36(float4_array_2): 35(ptr) Variable Function + 43(psout): 42(ptr) Variable Function + 29: 28(ptr) AccessChain 25 26 17 27 16 + 30: 6(float) Load 29 + 31: 7(fvec4) CompositeConstruct 30 30 30 30 + 33: 32(ptr) AccessChain 14(float4_array_1) 16 17 + Store 33 31 + 38: 37(ptr) AccessChain 14(float4_array_1) 26 + 39: 10 Load 38 + 40: 37(ptr) AccessChain 36(float4_array_2) 16 + Store 40 39 + 44: 32(ptr) AccessChain 14(float4_array_1) 16 17 + 45: 7(fvec4) Load 44 + 46: 32(ptr) AccessChain 43(psout) 26 + Store 46 45 + 49: 32(ptr) AccessChain 43(psout) 26 + 50: 7(fvec4) Load 49 + Store 48(Color) 50 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out index d54d467434a1e8f493d2b31b57f74883f56fcb4e..bcd160369101acc151a509de1720bdd40db04060 100755 --- a/Test/baseResults/hlsl.assoc.frag.out +++ b/Test/baseResults/hlsl.assoc.frag.out @@ -2,7 +2,7 @@ hlsl.assoc.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:8 Function Parameters: 0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 'a2' (layout(location=1 ) in 4-component vector of float) @@ -47,7 +47,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:8 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:8 Function Parameters: 0:8 'a1' (layout(location=0 ) in 4-component vector of float) 0:8 'a2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.attribute.expression.comp.out b/Test/baseResults/hlsl.attribute.expression.comp.out new file mode 100644 index 0000000000000000000000000000000000000000..2316cd9b9d8a24fa41cdd4be03fdd1f82b6c6165 --- /dev/null +++ b/Test/baseResults/hlsl.attribute.expression.comp.out @@ -0,0 +1,138 @@ +hlsl.attribute.expression.comp +Shader version: 450 +local_size = (4, 6, 8) +0:? Sequence +0:9 Function Definition: main( (temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'x' (temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'x' (temp int) +0:11 bound: direct index for structure (layout(offset=0 ) uniform int) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +0:11 Constant: +0:11 0 (const uint) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'x' (temp int) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:14 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) + + +Linked compute stage: + + +Shader version: 450 +local_size = (4, 6, 8) +0:? Sequence +0:9 Function Definition: main( (temp 4-component vector of float) +0:9 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp int) +0:11 'x' (temp int) +0:11 Constant: +0:11 0 (const int) +0:11 Loop with condition tested first +0:11 Loop Condition +0:11 Compare Less Than (temp bool) +0:11 'x' (temp int) +0:11 bound: direct index for structure (layout(offset=0 ) uniform int) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) +0:11 Constant: +0:11 0 (const uint) +0:11 No loop body +0:11 Loop Terminal Expression +0:11 Pre-Increment (temp int) +0:11 'x' (temp int) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:14 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int bound}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 34 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 30 + ExecutionMode 4 LocalSize 4 6 8 + Name 4 "main" + Name 8 "x" + Name 16 "$Global" + MemberName 16($Global) 0 "bound" + Name 18 "" + Name 30 "@entryPointOutput" + MemberDecorate 16($Global) 0 Offset 0 + Decorate 16($Global) Block + Decorate 18 DescriptorSet 0 + Decorate 30(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: 6(int) Constant 0 + 16($Global): TypeStruct 6(int) + 17: TypePointer Uniform 16($Global) + 18: 17(ptr) Variable Uniform + 19: TypePointer Uniform 6(int) + 22: TypeBool + 25: 6(int) Constant 1 + 27: TypeFloat 32 + 28: TypeVector 27(float) 4 + 29: TypePointer Output 28(fvec4) +30(@entryPointOutput): 29(ptr) Variable Output + 31: 27(float) Constant 0 + 32: 28(fvec4) ConstantComposite 31 31 31 31 + 4(main): 2 Function None 3 + 5: Label + 8(x): 7(ptr) Variable Function + Store 8(x) 9 + Branch 10 + 10: Label + LoopMerge 12 13 None + Branch 14 + 14: Label + 15: 6(int) Load 8(x) + 20: 19(ptr) AccessChain 18 9 + 21: 6(int) Load 20 + 23: 22(bool) SLessThan 15 21 + BranchConditional 23 11 12 + 11: Label + Branch 13 + 13: Label + 24: 6(int) Load 8(x) + 26: 6(int) IAdd 24 25 + Store 8(x) 26 + Branch 10 + 12: Label + Store 30(@entryPointOutput) 32 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.attribute.frag.out b/Test/baseResults/hlsl.attribute.frag.out index 38421a88a4cc0e06c0d934a15b6f831c7b1e502b..a3ce657da0f8785615d1769c654adda747ff7dff 100755 --- a/Test/baseResults/hlsl.attribute.frag.out +++ b/Test/baseResults/hlsl.attribute.frag.out @@ -2,7 +2,7 @@ hlsl.attribute.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global void) +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -21,7 +21,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global void) +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.basic.comp.out b/Test/baseResults/hlsl.basic.comp.out new file mode 100755 index 0000000000000000000000000000000000000000..9101e22f8e6d363ff89b999301a943adcf616a8f --- /dev/null +++ b/Test/baseResults/hlsl.basic.comp.out @@ -0,0 +1,58 @@ +hlsl.basic.comp +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:4 Function Definition: main(i1; (temp void) +0:4 Function Parameters: +0:4 'dti' (in int LocalInvocationID) +0:? Sequence +0:5 'dti' (in int LocalInvocationID) +0:? Linker Objects +0:? 'dti' (in int LocalInvocationID) +0:? 'a' (shared 100-element array of 4-component vector of float) + + +Linked compute stage: + + +Shader version: 450 +local_size = (1, 1, 1) +0:? Sequence +0:4 Function Definition: main(i1; (temp void) +0:4 Function Parameters: +0:4 'dti' (in int LocalInvocationID) +0:? Sequence +0:5 'dti' (in int LocalInvocationID) +0:? Linker Objects +0:? 'dti' (in int LocalInvocationID) +0:? 'a' (shared 100-element array of 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 16 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint GLCompute 4 "main" 8 + ExecutionMode 4 LocalSize 1 1 1 + Name 4 "main" + Name 8 "dti" + Name 15 "a" + Decorate 8(dti) BuiltIn LocalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Input 6(int) + 8(dti): 7(ptr) Variable Input + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 11: TypeInt 32 0 + 12: 11(int) Constant 100 + 13: TypeArray 10(fvec4) 12 + 14: TypePointer Workgroup 13 + 15(a): 14(ptr) Variable Workgroup + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.basic.geom.out b/Test/baseResults/hlsl.basic.geom.out new file mode 100644 index 0000000000000000000000000000000000000000..2c20b439c149f92d10605059be4a6f00d004699f --- /dev/null +++ b/Test/baseResults/hlsl.basic.geom.out @@ -0,0 +1,201 @@ +hlsl.basic.geom +Shader version: 450 +invocations = -1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:16 Function Definition: main(u1[3];u1[3];struct-PSInput-f1-i11; (temp void) +0:16 Function Parameters: +0:16 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:16 'test' (layout(location=3 ) in 3-element array of uint) +0:16 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:? Sequence +0:19 move second child to first child (temp float) +0:19 myfloat: direct index for structure (temp float) +0:19 'Vert' (temp structure{temp float myfloat, temp int something}) +0:19 Constant: +0:19 0 (const int) +0:19 Convert uint to float (temp float) +0:19 add (temp uint) +0:19 add (temp uint) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 0 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 1 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 2 (const int) +0:20 move second child to first child (temp int) +0:20 something: direct index for structure (temp int) +0:20 'Vert' (temp structure{temp float myfloat, temp int something}) +0:20 Constant: +0:20 1 (const int) +0:20 Convert uint to int (temp int) +0:20 direct index (layout(location=0 ) temp uint) +0:20 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:20 Constant: +0:20 0 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:22 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:22 'Vert' (temp structure{temp float myfloat, temp int something}) +0:22 EmitVertex (temp void) +0:23 Sequence +0:23 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:23 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:23 'Vert' (temp structure{temp float myfloat, temp int something}) +0:23 EmitVertex (temp void) +0:24 EndPrimitive (temp void) +0:? Linker Objects +0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:? 'test' (layout(location=3 ) in 3-element array of uint) +0:? 'myfloat' (layout(location=0 ) out float) +0:? 'something' (layout(location=1 ) out int) + + +Linked geometry stage: + + +Shader version: 450 +invocations = 1 +max_vertices = 4 +input primitive = triangles +output primitive = line_strip +0:? Sequence +0:16 Function Definition: main(u1[3];u1[3];struct-PSInput-f1-i11; (temp void) +0:16 Function Parameters: +0:16 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:16 'test' (layout(location=3 ) in 3-element array of uint) +0:16 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:? Sequence +0:19 move second child to first child (temp float) +0:19 myfloat: direct index for structure (temp float) +0:19 'Vert' (temp structure{temp float myfloat, temp int something}) +0:19 Constant: +0:19 0 (const int) +0:19 Convert uint to float (temp float) +0:19 add (temp uint) +0:19 add (temp uint) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 0 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 1 (const int) +0:19 direct index (layout(location=3 ) temp uint) +0:19 'test' (layout(location=3 ) in 3-element array of uint) +0:19 Constant: +0:19 2 (const int) +0:20 move second child to first child (temp int) +0:20 something: direct index for structure (temp int) +0:20 'Vert' (temp structure{temp float myfloat, temp int something}) +0:20 Constant: +0:20 1 (const int) +0:20 Convert uint to int (temp int) +0:20 direct index (layout(location=0 ) temp uint) +0:20 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:20 Constant: +0:20 0 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:22 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:22 'Vert' (temp structure{temp float myfloat, temp int something}) +0:22 EmitVertex (temp void) +0:23 Sequence +0:23 move second child to first child (temp structure{temp float myfloat, temp int something}) +0:23 'OutputStream' (out structure{temp float myfloat, temp int something}) +0:23 'Vert' (temp structure{temp float myfloat, temp int something}) +0:23 EmitVertex (temp void) +0:24 EndPrimitive (temp void) +0:? Linker Objects +0:? 'VertexID' (layout(location=0 ) in 3-element array of uint) +0:? 'test' (layout(location=3 ) in 3-element array of uint) +0:? 'myfloat' (layout(location=0 ) out float) +0:? 'something' (layout(location=1 ) out int) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Geometry + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Geometry 4 "main" 16 31 38 42 44 + ExecutionMode 4 Triangles + ExecutionMode 4 Invocations 1 + ExecutionMode 4 OutputLineStrip + ExecutionMode 4 OutputVertices 4 + Name 4 "main" + Name 8 "PSInput" + MemberName 8(PSInput) 0 "myfloat" + MemberName 8(PSInput) 1 "something" + Name 10 "Vert" + Name 16 "test" + Name 31 "VertexID" + Name 38 "OutputStream" + Name 42 "myfloat" + Name 44 "something" + Decorate 16(test) Location 3 + Decorate 31(VertexID) Location 0 + Decorate 42(myfloat) Location 0 + Decorate 44(something) Location 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeInt 32 1 + 8(PSInput): TypeStruct 6(float) 7(int) + 9: TypePointer Function 8(PSInput) + 11: 7(int) Constant 0 + 12: TypeInt 32 0 + 13: 12(int) Constant 3 + 14: TypeArray 12(int) 13 + 15: TypePointer Input 14 + 16(test): 15(ptr) Variable Input + 17: TypePointer Input 12(int) + 20: 7(int) Constant 1 + 24: 7(int) Constant 2 + 29: TypePointer Function 6(float) + 31(VertexID): 15(ptr) Variable Input + 35: TypePointer Function 7(int) + 37: TypePointer Output 8(PSInput) +38(OutputStream): 37(ptr) Variable Output + 41: TypePointer Output 6(float) + 42(myfloat): 41(ptr) Variable Output + 43: TypePointer Output 7(int) + 44(something): 43(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 10(Vert): 9(ptr) Variable Function + 18: 17(ptr) AccessChain 16(test) 11 + 19: 12(int) Load 18 + 21: 17(ptr) AccessChain 16(test) 20 + 22: 12(int) Load 21 + 23: 12(int) IAdd 19 22 + 25: 17(ptr) AccessChain 16(test) 24 + 26: 12(int) Load 25 + 27: 12(int) IAdd 23 26 + 28: 6(float) ConvertUToF 27 + 30: 29(ptr) AccessChain 10(Vert) 11 + Store 30 28 + 32: 17(ptr) AccessChain 31(VertexID) 11 + 33: 12(int) Load 32 + 34: 7(int) Bitcast 33 + 36: 35(ptr) AccessChain 10(Vert) 20 + Store 36 34 + 39: 8(PSInput) Load 10(Vert) + Store 38(OutputStream) 39 + EmitVertex + 40: 8(PSInput) Load 10(Vert) + Store 38(OutputStream) 40 + EmitVertex + EndPrimitive + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.buffer.frag.out b/Test/baseResults/hlsl.buffer.frag.out index 78a8e738933ae112d8ca9ec466b02133b36ea84a..dbb2b5e1c46e534d2730ef94985e2f9ea76e3f7d 100755 --- a/Test/baseResults/hlsl.buffer.frag.out +++ b/Test/baseResults/hlsl.buffer.frag.out @@ -2,42 +2,42 @@ hlsl.buffer.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:26 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:26 Function Parameters: -0:26 'input' (layout(location=0 ) in 4-component vector of float) +0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:30 Function Parameters: +0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:27 Sequence -0:27 move second child to first child (temp 4-component vector of float) +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 'input' (layout(location=0 ) in 4-component vector of float) -0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:27 Constant: -0:27 0 (const uint) -0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:27 Constant: -0:27 0 (const uint) -0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:27 Constant: -0:27 0 (const uint) -0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:27 Constant: -0:27 0 (const uint) -0:27 Branch: Return +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 'input' (layout(location=0 ) in 4-component vector of float) +0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:31 Constant: +0:31 0 (const uint) +0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float) +0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:31 Constant: +0:31 0 (const uint) +0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:31 Constant: +0:31 0 (const uint) +0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) +0:31 Constant: +0:31 0 (const uint) +0:31 Branch: Return 0:? Linker Objects -0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) Linked fragment stage: @@ -46,46 +46,46 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:26 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) -0:26 Function Parameters: -0:26 'input' (layout(location=0 ) in 4-component vector of float) +0:30 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) +0:30 Function Parameters: +0:30 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:27 Sequence -0:27 move second child to first child (temp 4-component vector of float) +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 add (temp 4-component vector of float) -0:27 'input' (layout(location=0 ) in 4-component vector of float) -0:27 v1: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:27 Constant: -0:27 0 (const uint) -0:27 v2: direct index for structure (layout(column_major std430 ) buffer 4-component vector of float) -0:27 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:27 Constant: -0:27 0 (const uint) -0:27 v3: direct index for structure (layout(column_major std140 ) uniform 4-component vector of float) -0:27 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:27 Constant: -0:27 0 (const uint) -0:27 v4: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:27 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) -0:27 Constant: -0:27 0 (const uint) -0:27 Branch: Return +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 add (temp 4-component vector of float) +0:31 'input' (layout(location=0 ) in 4-component vector of float) +0:31 v1: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:31 Constant: +0:31 0 (const uint) +0:31 v2: direct index for structure (layout(row_major std430 ) buffer 4-component vector of float) +0:31 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:31 Constant: +0:31 0 (const uint) +0:31 v3: direct index for structure (layout(row_major std140 ) uniform 4-component vector of float) +0:31 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:31 Constant: +0:31 0 (const uint) +0:31 v4: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:31 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) +0:31 Constant: +0:31 0 (const uint) +0:31 Branch: Return 0:? Linker Objects -0:? 'anon@0' (layout(column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v1}) -0:? 'anon@1' (layout(column_major std430 ) buffer block{layout(column_major std430 ) buffer 4-component vector of float v2}) -0:? 'anon@2' (layout(set=10 binding=2 column_major std140 ) uniform block{layout(column_major std140 ) uniform 4-component vector of float v3, layout(column_major std140 offset=20 ) uniform int i3}) -0:? 'anon@3' (layout(binding=8 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v4, layout(column_major std430 offset=48 ) buffer int i4, layout(column_major std430 offset=60 ) buffer float f1, layout(column_major std430 offset=64 ) buffer float f3, layout(column_major std430 offset=68 ) buffer float f4, layout(column_major std430 offset=72 ) buffer float f5, layout(column_major std430 ) buffer float f6, layout(column_major std430 ) buffer float f7}) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 ) buffer block{layout(row_major std430 ) buffer 4-component vector of float v2}) +0:? 'anon@2' (layout(set=10 binding=2 row_major std140 ) uniform block{layout(row_major std140 ) uniform 4-component vector of float v3, layout(row_major std140 offset=20 ) uniform int i3}) +0:? 'anon@3' (layout(binding=8 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v4, layout(row_major std430 offset=48 ) buffer int i4, layout(row_major std430 offset=60 ) buffer float f1, layout(row_major std430 offset=64 ) buffer float f3, layout(row_major std430 offset=68 ) buffer float f4, layout(row_major std430 offset=72 ) buffer float f5, layout(row_major std430 ) buffer float f6, layout(row_major std430 ) buffer float f7, layout(row_major std430 ) buffer 3X4 matrix of float m1, layout(column_major std430 ) buffer 3X4 matrix of float m2, layout(row_major std430 ) buffer 3X4 matrix of float m3, ...}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 41 +// Id's are bound by 42 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -101,20 +101,24 @@ gl_FragCoord origin is upper left Name 22 "" MemberName 22 0 "v2" Name 24 "" - Name 28 "" - MemberName 28 0 "v3" - MemberName 28 1 "i3" + Name 28 "cbufName" + MemberName 28(cbufName) 0 "v3" + MemberName 28(cbufName) 1 "i3" Name 30 "" - Name 34 "" - MemberName 34 0 "v4" - MemberName 34 1 "i4" - MemberName 34 2 "f1" - MemberName 34 3 "f3" - MemberName 34 4 "f4" - MemberName 34 5 "f5" - MemberName 34 6 "f6" - MemberName 34 7 "f7" - Name 36 "" + Name 35 "tbufName" + MemberName 35(tbufName) 0 "v4" + MemberName 35(tbufName) 1 "i4" + MemberName 35(tbufName) 2 "f1" + MemberName 35(tbufName) 3 "f3" + MemberName 35(tbufName) 4 "f4" + MemberName 35(tbufName) 5 "f5" + MemberName 35(tbufName) 6 "f6" + MemberName 35(tbufName) 7 "f7" + MemberName 35(tbufName) 8 "m1" + MemberName 35(tbufName) 9 "m2" + MemberName 35(tbufName) 10 "m3" + MemberName 35(tbufName) 11 "m4" + Name 37 "" Decorate 9(@entryPointOutput) Location 0 Decorate 11(input) Location 0 MemberDecorate 13 0 Offset 0 @@ -123,22 +127,34 @@ gl_FragCoord origin is upper left MemberDecorate 22 0 Offset 0 Decorate 22 BufferBlock Decorate 24 DescriptorSet 0 - MemberDecorate 28 0 Offset 0 - MemberDecorate 28 1 Offset 20 - Decorate 28 Block + MemberDecorate 28(cbufName) 0 Offset 0 + MemberDecorate 28(cbufName) 1 Offset 20 + Decorate 28(cbufName) Block Decorate 30 DescriptorSet 10 Decorate 30 Binding 2 - MemberDecorate 34 0 Offset 16 - MemberDecorate 34 1 Offset 48 - MemberDecorate 34 2 Offset 60 - MemberDecorate 34 3 Offset 64 - MemberDecorate 34 4 Offset 68 - MemberDecorate 34 5 Offset 72 - MemberDecorate 34 6 Offset 76 - MemberDecorate 34 7 Offset 80 - Decorate 34 BufferBlock - Decorate 36 DescriptorSet 0 - Decorate 36 Binding 8 + MemberDecorate 35(tbufName) 0 Offset 16 + MemberDecorate 35(tbufName) 1 Offset 48 + MemberDecorate 35(tbufName) 2 Offset 60 + MemberDecorate 35(tbufName) 3 Offset 64 + MemberDecorate 35(tbufName) 4 Offset 68 + MemberDecorate 35(tbufName) 5 Offset 72 + MemberDecorate 35(tbufName) 6 Offset 76 + MemberDecorate 35(tbufName) 7 Offset 80 + MemberDecorate 35(tbufName) 8 RowMajor + MemberDecorate 35(tbufName) 8 Offset 96 + MemberDecorate 35(tbufName) 8 MatrixStride 16 + MemberDecorate 35(tbufName) 9 ColMajor + MemberDecorate 35(tbufName) 9 Offset 160 + MemberDecorate 35(tbufName) 9 MatrixStride 16 + MemberDecorate 35(tbufName) 10 RowMajor + MemberDecorate 35(tbufName) 10 Offset 208 + MemberDecorate 35(tbufName) 10 MatrixStride 16 + MemberDecorate 35(tbufName) 11 RowMajor + MemberDecorate 35(tbufName) 11 Offset 272 + MemberDecorate 35(tbufName) 11 MatrixStride 16 + Decorate 35(tbufName) BufferBlock + Decorate 37 DescriptorSet 0 + Decorate 37 Binding 8 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -156,12 +172,13 @@ gl_FragCoord origin is upper left 22: TypeStruct 7(fvec4) 23: TypePointer Uniform 22(struct) 24: 23(ptr) Variable Uniform - 28: TypeStruct 7(fvec4) 16(int) - 29: TypePointer Uniform 28(struct) + 28(cbufName): TypeStruct 7(fvec4) 16(int) + 29: TypePointer Uniform 28(cbufName) 30: 29(ptr) Variable Uniform - 34: TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) - 35: TypePointer Uniform 34(struct) - 36: 35(ptr) Variable Uniform + 34: TypeMatrix 7(fvec4) 3 + 35(tbufName): TypeStruct 7(fvec4) 16(int) 6(float) 6(float) 6(float) 6(float) 6(float) 6(float) 34 34 34 34 + 36: TypePointer Uniform 35(tbufName) + 37: 36(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label 12: 7(fvec4) Load 11(input) @@ -174,9 +191,9 @@ gl_FragCoord origin is upper left 31: 18(ptr) AccessChain 30 17 32: 7(fvec4) Load 31 33: 7(fvec4) FAdd 27 32 - 37: 18(ptr) AccessChain 36 17 - 38: 7(fvec4) Load 37 - 39: 7(fvec4) FAdd 33 38 - Store 9(@entryPointOutput) 39 + 38: 18(ptr) AccessChain 37 17 + 39: 7(fvec4) Load 38 + 40: 7(fvec4) FAdd 33 39 + Store 9(@entryPointOutput) 40 Return FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelod.dx10.frag.out b/Test/baseResults/hlsl.calculatelod.dx10.frag.out index 68eee1a0b67f39bd27338f9d1e4b350f050c4f77..56a2ce869e4f1533a231ca8056565fd7fd37a7aa 100644 --- a/Test/baseResults/hlsl.calculatelod.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelod.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.calculatelod.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -166,8 +168,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -176,7 +176,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -313,8 +313,8 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -329,6 +329,8 @@ gl_FragCoord origin is upper left 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -340,12 +342,10 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 141 Capability Shader Capability Sampled1D @@ -353,51 +353,51 @@ gl_FragCoord origin is upper left Capability ImageQuery 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 145 + EntryPoint Fragment 4 "main" 132 136 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "txval10" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 26 "txval11" - Name 29 "g_tTex1di4a" - Name 38 "txval12" - Name 42 "g_tTex1du4a" - Name 51 "txval20" - Name 54 "g_tTex2df4a" - Name 63 "txval21" - Name 66 "g_tTex2di4a" - Name 76 "txval22" - Name 79 "g_tTex2du4a" - Name 90 "txval40" - Name 93 "g_tTexcdf4a" - Name 103 "txval41" - Name 106 "g_tTexcdi4a" - Name 115 "txval42" - Name 118 "g_tTexcdu4a" - Name 131 "PS_OUTPUT" - MemberName 131(PS_OUTPUT) 0 "Color" - MemberName 131(PS_OUTPUT) 1 "Depth" - Name 133 "psout" - Name 141 "Color" - Name 145 "Depth" - Name 149 "g_tTex1df4" + Name 25 "txval11" + Name 28 "g_tTex1di4a" + Name 36 "txval12" + Name 40 "g_tTex1du4a" + Name 48 "txval20" + Name 51 "g_tTex2df4a" + Name 59 "txval21" + Name 62 "g_tTex2di4a" + Name 71 "txval22" + Name 74 "g_tTex2du4a" + Name 84 "txval40" + Name 87 "g_tTexcdf4a" + Name 96 "txval41" + Name 99 "g_tTexcdi4a" + Name 107 "txval42" + Name 110 "g_tTexcdu4a" + Name 122 "PS_OUTPUT" + MemberName 122(PS_OUTPUT) 0 "Color" + MemberName 122(PS_OUTPUT) 1 "Depth" + Name 124 "psout" + Name 132 "Color" + Name 136 "Depth" + Name 140 "g_tTex1df4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 11(g_tTex1df4a) Binding 1 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4a) DescriptorSet 0 - Decorate 42(g_tTex1du4a) DescriptorSet 0 - Decorate 54(g_tTex2df4a) DescriptorSet 0 - Decorate 66(g_tTex2di4a) DescriptorSet 0 - Decorate 79(g_tTex2du4a) DescriptorSet 0 - Decorate 93(g_tTexcdf4a) DescriptorSet 0 - Decorate 106(g_tTexcdi4a) DescriptorSet 0 - Decorate 118(g_tTexcdu4a) DescriptorSet 0 - Decorate 141(Color) Location 0 - Decorate 145(Depth) BuiltIn FragDepth - Decorate 149(g_tTex1df4) DescriptorSet 0 - Decorate 149(g_tTex1df4) Binding 0 + Decorate 28(g_tTex1di4a) DescriptorSet 0 + Decorate 40(g_tTex1du4a) DescriptorSet 0 + Decorate 51(g_tTex2df4a) DescriptorSet 0 + Decorate 62(g_tTex2di4a) DescriptorSet 0 + Decorate 74(g_tTex2du4a) DescriptorSet 0 + Decorate 87(g_tTexcdf4a) DescriptorSet 0 + Decorate 99(g_tTexcdi4a) DescriptorSet 0 + Decorate 110(g_tTexcdu4a) DescriptorSet 0 + Decorate 132(Color) Location 0 + Decorate 136(Depth) BuiltIn FragDepth + Decorate 140(g_tTex1df4) DescriptorSet 0 + Decorate 140(g_tTex1df4) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -410,153 +410,144 @@ gl_FragCoord origin is upper left 15(g_sSamp): 14(ptr) Variable UniformConstant 17: TypeSampledImage 9 19: 6(float) Constant 1036831949 - 21: TypeVector 6(float) 2 - 23: TypeInt 32 1 - 24: 23(int) Constant 0 - 27: TypeImage 23(int) 1D array sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4a): 28(ptr) Variable UniformConstant - 32: TypeSampledImage 27 - 34: 6(float) Constant 1045220557 - 39: TypeInt 32 0 - 40: TypeImage 39(int) 1D array sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4a): 41(ptr) Variable UniformConstant - 45: TypeSampledImage 40 - 47: 6(float) Constant 1050253722 - 52: TypeImage 6(float) 2D array sampled format:Unknown - 53: TypePointer UniformConstant 52 - 54(g_tTex2df4a): 53(ptr) Variable UniformConstant - 57: TypeSampledImage 52 - 59: 21(fvec2) ConstantComposite 19 34 - 64: TypeImage 23(int) 2D array sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4a): 65(ptr) Variable UniformConstant - 69: TypeSampledImage 64 - 71: 6(float) Constant 1053609165 - 72: 21(fvec2) ConstantComposite 47 71 - 77: TypeImage 39(int) 2D array sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2du4a): 78(ptr) Variable UniformConstant - 82: TypeSampledImage 77 - 84: 6(float) Constant 1056964608 - 85: 6(float) Constant 1058642330 - 86: 21(fvec2) ConstantComposite 84 85 - 91: TypeImage 6(float) Cube array sampled format:Unknown - 92: TypePointer UniformConstant 91 - 93(g_tTexcdf4a): 92(ptr) Variable UniformConstant - 96: TypeSampledImage 91 - 98: TypeVector 6(float) 3 - 99: 98(fvec3) ConstantComposite 19 34 47 - 104: TypeImage 23(int) Cube array sampled format:Unknown - 105: TypePointer UniformConstant 104 -106(g_tTexcdi4a): 105(ptr) Variable UniformConstant - 109: TypeSampledImage 104 - 111: 98(fvec3) ConstantComposite 71 84 85 - 116: TypeImage 39(int) Cube array sampled format:Unknown - 117: TypePointer UniformConstant 116 -118(g_tTexcdu4a): 117(ptr) Variable UniformConstant - 121: TypeSampledImage 116 - 123: 6(float) Constant 1060320051 - 124: 6(float) Constant 1061997773 - 125: 6(float) Constant 1063675494 - 126: 98(fvec3) ConstantComposite 123 124 125 - 130: TypeVector 6(float) 4 - 131(PS_OUTPUT): TypeStruct 130(fvec4) 6(float) - 132: TypePointer Function 131(PS_OUTPUT) - 134: 6(float) Constant 1065353216 - 135: 130(fvec4) ConstantComposite 134 134 134 134 - 136: TypePointer Function 130(fvec4) - 138: 23(int) Constant 1 - 140: TypePointer Output 130(fvec4) - 141(Color): 140(ptr) Variable Output - 144: TypePointer Output 6(float) - 145(Depth): 144(ptr) Variable Output - 149(g_tTex1df4): 10(ptr) Variable UniformConstant + 20: TypeVector 6(float) 2 + 22: TypeInt 32 1 + 23: 22(int) Constant 0 + 26: TypeImage 22(int) 1D array sampled format:Unknown + 27: TypePointer UniformConstant 26 + 28(g_tTex1di4a): 27(ptr) Variable UniformConstant + 31: TypeSampledImage 26 + 33: 6(float) Constant 1045220557 + 37: TypeInt 32 0 + 38: TypeImage 37(int) 1D array sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4a): 39(ptr) Variable UniformConstant + 43: TypeSampledImage 38 + 45: 6(float) Constant 1050253722 + 49: TypeImage 6(float) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2df4a): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 56: 20(fvec2) ConstantComposite 19 33 + 60: TypeImage 22(int) 2D array sampled format:Unknown + 61: TypePointer UniformConstant 60 + 62(g_tTex2di4a): 61(ptr) Variable UniformConstant + 65: TypeSampledImage 60 + 67: 6(float) Constant 1053609165 + 68: 20(fvec2) ConstantComposite 45 67 + 72: TypeImage 37(int) 2D array sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2du4a): 73(ptr) Variable UniformConstant + 77: TypeSampledImage 72 + 79: 6(float) Constant 1056964608 + 80: 6(float) Constant 1058642330 + 81: 20(fvec2) ConstantComposite 79 80 + 85: TypeImage 6(float) Cube array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTexcdf4a): 86(ptr) Variable UniformConstant + 90: TypeSampledImage 85 + 92: TypeVector 6(float) 3 + 93: 92(fvec3) ConstantComposite 19 33 45 + 97: TypeImage 22(int) Cube array sampled format:Unknown + 98: TypePointer UniformConstant 97 + 99(g_tTexcdi4a): 98(ptr) Variable UniformConstant + 102: TypeSampledImage 97 + 104: 92(fvec3) ConstantComposite 67 79 80 + 108: TypeImage 37(int) Cube array sampled format:Unknown + 109: TypePointer UniformConstant 108 +110(g_tTexcdu4a): 109(ptr) Variable UniformConstant + 113: TypeSampledImage 108 + 115: 6(float) Constant 1060320051 + 116: 6(float) Constant 1061997773 + 117: 6(float) Constant 1063675494 + 118: 92(fvec3) ConstantComposite 115 116 117 + 121: TypeVector 6(float) 4 + 122(PS_OUTPUT): TypeStruct 121(fvec4) 6(float) + 123: TypePointer Function 122(PS_OUTPUT) + 125: 6(float) Constant 1065353216 + 126: 121(fvec4) ConstantComposite 125 125 125 125 + 127: TypePointer Function 121(fvec4) + 129: 22(int) Constant 1 + 131: TypePointer Output 121(fvec4) + 132(Color): 131(ptr) Variable Output + 135: TypePointer Output 6(float) + 136(Depth): 135(ptr) Variable Output + 140(g_tTex1df4): 10(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(txval10): 7(ptr) Variable Function - 26(txval11): 7(ptr) Variable Function - 38(txval12): 7(ptr) Variable Function - 51(txval20): 7(ptr) Variable Function - 63(txval21): 7(ptr) Variable Function - 76(txval22): 7(ptr) Variable Function - 90(txval40): 7(ptr) Variable Function - 103(txval41): 7(ptr) Variable Function - 115(txval42): 7(ptr) Variable Function - 133(psout): 132(ptr) Variable Function + 25(txval11): 7(ptr) Variable Function + 36(txval12): 7(ptr) Variable Function + 48(txval20): 7(ptr) Variable Function + 59(txval21): 7(ptr) Variable Function + 71(txval22): 7(ptr) Variable Function + 84(txval40): 7(ptr) Variable Function + 96(txval41): 7(ptr) Variable Function + 107(txval42): 7(ptr) Variable Function + 124(psout): 123(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 18: 17 SampledImage 12 16 - 20: 9 Image 18 - 22: 21(fvec2) ImageQueryLod 20 19 - 25: 6(float) CompositeExtract 22 0 - Store 8(txval10) 25 - 30: 27 Load 29(g_tTex1di4a) - 31: 13 Load 15(g_sSamp) - 33: 32 SampledImage 30 31 - 35: 27 Image 33 - 36: 21(fvec2) ImageQueryLod 35 34 - 37: 6(float) CompositeExtract 36 0 - Store 26(txval11) 37 - 43: 40 Load 42(g_tTex1du4a) - 44: 13 Load 15(g_sSamp) - 46: 45 SampledImage 43 44 - 48: 40 Image 46 - 49: 21(fvec2) ImageQueryLod 48 47 - 50: 6(float) CompositeExtract 49 0 - Store 38(txval12) 50 - 55: 52 Load 54(g_tTex2df4a) - 56: 13 Load 15(g_sSamp) - 58: 57 SampledImage 55 56 - 60: 52 Image 58 - 61: 21(fvec2) ImageQueryLod 60 59 - 62: 6(float) CompositeExtract 61 0 - Store 51(txval20) 62 - 67: 64 Load 66(g_tTex2di4a) - 68: 13 Load 15(g_sSamp) - 70: 69 SampledImage 67 68 - 73: 64 Image 70 - 74: 21(fvec2) ImageQueryLod 73 72 - 75: 6(float) CompositeExtract 74 0 - Store 63(txval21) 75 - 80: 77 Load 79(g_tTex2du4a) - 81: 13 Load 15(g_sSamp) - 83: 82 SampledImage 80 81 - 87: 77 Image 83 - 88: 21(fvec2) ImageQueryLod 87 86 - 89: 6(float) CompositeExtract 88 0 - Store 76(txval22) 89 - 94: 91 Load 93(g_tTexcdf4a) - 95: 13 Load 15(g_sSamp) - 97: 96 SampledImage 94 95 - 100: 91 Image 97 - 101: 21(fvec2) ImageQueryLod 100 99 - 102: 6(float) CompositeExtract 101 0 - Store 90(txval40) 102 - 107: 104 Load 106(g_tTexcdi4a) - 108: 13 Load 15(g_sSamp) - 110: 109 SampledImage 107 108 - 112: 104 Image 110 - 113: 21(fvec2) ImageQueryLod 112 111 - 114: 6(float) CompositeExtract 113 0 - Store 103(txval41) 114 - 119: 116 Load 118(g_tTexcdu4a) - 120: 13 Load 15(g_sSamp) - 122: 121 SampledImage 119 120 - 127: 116 Image 122 - 128: 21(fvec2) ImageQueryLod 127 126 - 129: 6(float) CompositeExtract 128 0 - Store 115(txval42) 129 - 137: 136(ptr) AccessChain 133(psout) 24 - Store 137 135 - 139: 7(ptr) AccessChain 133(psout) 138 - Store 139 134 - 142: 136(ptr) AccessChain 133(psout) 24 - 143: 130(fvec4) Load 142 - Store 141(Color) 143 - 146: 7(ptr) AccessChain 133(psout) 138 - 147: 6(float) Load 146 - Store 145(Depth) 147 + 21: 20(fvec2) ImageQueryLod 18 19 + 24: 6(float) CompositeExtract 21 0 + Store 8(txval10) 24 + 29: 26 Load 28(g_tTex1di4a) + 30: 13 Load 15(g_sSamp) + 32: 31 SampledImage 29 30 + 34: 20(fvec2) ImageQueryLod 32 33 + 35: 6(float) CompositeExtract 34 0 + Store 25(txval11) 35 + 41: 38 Load 40(g_tTex1du4a) + 42: 13 Load 15(g_sSamp) + 44: 43 SampledImage 41 42 + 46: 20(fvec2) ImageQueryLod 44 45 + 47: 6(float) CompositeExtract 46 0 + Store 36(txval12) 47 + 52: 49 Load 51(g_tTex2df4a) + 53: 13 Load 15(g_sSamp) + 55: 54 SampledImage 52 53 + 57: 20(fvec2) ImageQueryLod 55 56 + 58: 6(float) CompositeExtract 57 0 + Store 48(txval20) 58 + 63: 60 Load 62(g_tTex2di4a) + 64: 13 Load 15(g_sSamp) + 66: 65 SampledImage 63 64 + 69: 20(fvec2) ImageQueryLod 66 68 + 70: 6(float) CompositeExtract 69 0 + Store 59(txval21) 70 + 75: 72 Load 74(g_tTex2du4a) + 76: 13 Load 15(g_sSamp) + 78: 77 SampledImage 75 76 + 82: 20(fvec2) ImageQueryLod 78 81 + 83: 6(float) CompositeExtract 82 0 + Store 71(txval22) 83 + 88: 85 Load 87(g_tTexcdf4a) + 89: 13 Load 15(g_sSamp) + 91: 90 SampledImage 88 89 + 94: 20(fvec2) ImageQueryLod 91 93 + 95: 6(float) CompositeExtract 94 0 + Store 84(txval40) 95 + 100: 97 Load 99(g_tTexcdi4a) + 101: 13 Load 15(g_sSamp) + 103: 102 SampledImage 100 101 + 105: 20(fvec2) ImageQueryLod 103 104 + 106: 6(float) CompositeExtract 105 0 + Store 96(txval41) 106 + 111: 108 Load 110(g_tTexcdu4a) + 112: 13 Load 15(g_sSamp) + 114: 113 SampledImage 111 112 + 119: 20(fvec2) ImageQueryLod 114 118 + 120: 6(float) CompositeExtract 119 0 + Store 107(txval42) 120 + 128: 127(ptr) AccessChain 124(psout) 23 + Store 128 126 + 130: 7(ptr) AccessChain 124(psout) 129 + Store 130 125 + 133: 127(ptr) AccessChain 124(psout) 23 + 134: 121(fvec4) Load 133 + Store 132(Color) 134 + 137: 7(ptr) AccessChain 124(psout) 129 + 138: 6(float) Load 137 + Store 136(Depth) 138 Return FunctionEnd diff --git a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out index 9370e14a839fb2178b118bd1e73969b3fbb0820c..799dcc37fbde3f28799435c0a751b8ce66ee4f59 100644 --- a/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out +++ b/Test/baseResults/hlsl.calculatelodunclamped.dx10.frag.out @@ -14,7 +14,7 @@ ERROR: 9 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -151,8 +151,8 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -167,6 +167,8 @@ ERROR: node is still EOpNull! 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -178,8 +180,6 @@ ERROR: node is still EOpNull! 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -188,7 +188,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence @@ -325,8 +325,8 @@ ERROR: node is still EOpNull! 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -341,6 +341,8 @@ ERROR: node is still EOpNull! 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -352,7 +354,5 @@ ERROR: node is still EOpNull! 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.cast.frag.out b/Test/baseResults/hlsl.cast.frag.out index 3bef95f0ddd158f65677eaa0157efba2339022dc..bf7183f277f05aee6516dfb9af6e17e538d3e5e2 100755 --- a/Test/baseResults/hlsl.cast.frag.out +++ b/Test/baseResults/hlsl.cast.frag.out @@ -2,7 +2,7 @@ hlsl.cast.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -33,7 +33,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.comparison.vec.frag.out b/Test/baseResults/hlsl.comparison.vec.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..1bf63ec8a70e80d13d639a301fc0e5fbb4a969e5 --- /dev/null +++ b/Test/baseResults/hlsl.comparison.vec.frag.out @@ -0,0 +1,402 @@ +hlsl.comparison.vec.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: Bug1(vf4; (temp void) +0:4 Function Parameters: +0:4 'a' (in 4-component vector of float) +0:? Sequence +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:5 'v04' (temp 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'v01' (temp float) +0:6 Constant: +0:6 0.000000 +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of bool) +0:8 'r00' (temp 4-component vector of bool) +0:8 Equal (temp 4-component vector of bool) +0:8 'a' (in 4-component vector of float) +0:8 'v04' (temp 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of bool) +0:9 'r01' (temp 4-component vector of bool) +0:9 NotEqual (temp 4-component vector of bool) +0:9 'a' (in 4-component vector of float) +0:9 'v04' (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of bool) +0:10 'r02' (temp 4-component vector of bool) +0:10 Compare Less Than (temp 4-component vector of bool) +0:10 'a' (in 4-component vector of float) +0:10 'v04' (temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r03' (temp 4-component vector of bool) +0:11 Compare Greater Than (temp 4-component vector of bool) +0:11 'a' (in 4-component vector of float) +0:11 'v04' (temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r10' (temp 4-component vector of bool) +0:13 Equal (temp 4-component vector of bool) +0:13 'a' (in 4-component vector of float) +0:13 Construct vec4 (in 4-component vector of float) +0:13 'v01' (temp float) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of bool) +0:14 'r11' (temp 4-component vector of bool) +0:14 NotEqual (temp 4-component vector of bool) +0:14 'a' (in 4-component vector of float) +0:14 Construct vec4 (in 4-component vector of float) +0:14 'v01' (temp float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r12' (temp 4-component vector of bool) +0:15 Compare Less Than (temp 4-component vector of bool) +0:15 'a' (in 4-component vector of float) +0:15 Construct vec4 (in 4-component vector of float) +0:15 'v01' (temp float) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r13' (temp 4-component vector of bool) +0:16 Compare Greater Than (temp 4-component vector of bool) +0:16 'a' (in 4-component vector of float) +0:16 Construct vec4 (in 4-component vector of float) +0:16 'v01' (temp float) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 Equal (temp 4-component vector of bool) +0:18 Construct vec4 (in 4-component vector of float) +0:18 'v01' (temp float) +0:18 'a' (in 4-component vector of float) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 NotEqual (temp 4-component vector of bool) +0:19 Construct vec4 (in 4-component vector of float) +0:19 'v01' (temp float) +0:19 'a' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of bool) +0:20 'r22' (temp 4-component vector of bool) +0:20 Compare Less Than (temp 4-component vector of bool) +0:20 Construct vec4 (in 4-component vector of float) +0:20 'v01' (temp float) +0:20 'a' (in 4-component vector of float) +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of bool) +0:21 'r23' (temp 4-component vector of bool) +0:21 Compare Greater Than (temp 4-component vector of bool) +0:21 Construct vec4 (in 4-component vector of float) +0:21 'v01' (temp float) +0:21 'a' (in 4-component vector of float) +0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:30 Function Parameters: +0:? Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color}) +0:33 Constant: +0:33 0 (const int) +0:33 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:4 Function Definition: Bug1(vf4; (temp void) +0:4 Function Parameters: +0:4 'a' (in 4-component vector of float) +0:? Sequence +0:5 Sequence +0:5 move second child to first child (temp 4-component vector of float) +0:5 'v04' (temp 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:6 Sequence +0:6 move second child to first child (temp float) +0:6 'v01' (temp float) +0:6 Constant: +0:6 0.000000 +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of bool) +0:8 'r00' (temp 4-component vector of bool) +0:8 Equal (temp 4-component vector of bool) +0:8 'a' (in 4-component vector of float) +0:8 'v04' (temp 4-component vector of float) +0:9 Sequence +0:9 move second child to first child (temp 4-component vector of bool) +0:9 'r01' (temp 4-component vector of bool) +0:9 NotEqual (temp 4-component vector of bool) +0:9 'a' (in 4-component vector of float) +0:9 'v04' (temp 4-component vector of float) +0:10 Sequence +0:10 move second child to first child (temp 4-component vector of bool) +0:10 'r02' (temp 4-component vector of bool) +0:10 Compare Less Than (temp 4-component vector of bool) +0:10 'a' (in 4-component vector of float) +0:10 'v04' (temp 4-component vector of float) +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r03' (temp 4-component vector of bool) +0:11 Compare Greater Than (temp 4-component vector of bool) +0:11 'a' (in 4-component vector of float) +0:11 'v04' (temp 4-component vector of float) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r10' (temp 4-component vector of bool) +0:13 Equal (temp 4-component vector of bool) +0:13 'a' (in 4-component vector of float) +0:13 Construct vec4 (in 4-component vector of float) +0:13 'v01' (temp float) +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of bool) +0:14 'r11' (temp 4-component vector of bool) +0:14 NotEqual (temp 4-component vector of bool) +0:14 'a' (in 4-component vector of float) +0:14 Construct vec4 (in 4-component vector of float) +0:14 'v01' (temp float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r12' (temp 4-component vector of bool) +0:15 Compare Less Than (temp 4-component vector of bool) +0:15 'a' (in 4-component vector of float) +0:15 Construct vec4 (in 4-component vector of float) +0:15 'v01' (temp float) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r13' (temp 4-component vector of bool) +0:16 Compare Greater Than (temp 4-component vector of bool) +0:16 'a' (in 4-component vector of float) +0:16 Construct vec4 (in 4-component vector of float) +0:16 'v01' (temp float) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 Equal (temp 4-component vector of bool) +0:18 Construct vec4 (in 4-component vector of float) +0:18 'v01' (temp float) +0:18 'a' (in 4-component vector of float) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 NotEqual (temp 4-component vector of bool) +0:19 Construct vec4 (in 4-component vector of float) +0:19 'v01' (temp float) +0:19 'a' (in 4-component vector of float) +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of bool) +0:20 'r22' (temp 4-component vector of bool) +0:20 Compare Less Than (temp 4-component vector of bool) +0:20 Construct vec4 (in 4-component vector of float) +0:20 'v01' (temp float) +0:20 'a' (in 4-component vector of float) +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of bool) +0:21 'r23' (temp 4-component vector of bool) +0:21 Compare Greater Than (temp 4-component vector of bool) +0:21 Construct vec4 (in 4-component vector of float) +0:21 'v01' (temp float) +0:21 'a' (in 4-component vector of float) +0:30 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:30 Function Parameters: +0:? Sequence +0:32 move second child to first child (temp 4-component vector of float) +0:32 Color: direct index for structure (temp 4-component vector of float) +0:32 'psout' (temp structure{temp 4-component vector of float Color}) +0:32 Constant: +0:32 0 (const int) +0:32 Constant: +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:32 0.000000 +0:33 Sequence +0:33 Sequence +0:33 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:33 Color: direct index for structure (temp 4-component vector of float) +0:33 'psout' (temp structure{temp 4-component vector of float Color}) +0:33 Constant: +0:33 0 (const int) +0:33 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float uf4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 91 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 84 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Bug1(vf4;" + Name 10 "a" + Name 13 "v04" + Name 17 "v01" + Name 21 "r00" + Name 25 "r01" + Name 29 "r02" + Name 33 "r03" + Name 37 "r10" + Name 42 "r11" + Name 47 "r12" + Name 52 "r13" + Name 57 "r20" + Name 62 "r21" + Name 67 "r22" + Name 72 "r23" + Name 77 "PS_OUTPUT" + MemberName 77(PS_OUTPUT) 0 "Color" + Name 79 "psout" + Name 84 "Color" + Name 88 "$Global" + MemberName 88($Global) 0 "uf4" + Name 90 "" + Decorate 84(Color) Location 0 + MemberDecorate 88($Global) 0 Offset 0 + Decorate 88($Global) Block + Decorate 90 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Function 7(fvec4) + 9: TypeFunction 2 8(ptr) + 14: 6(float) Constant 0 + 15: 7(fvec4) ConstantComposite 14 14 14 14 + 16: TypePointer Function 6(float) + 18: TypeBool + 19: TypeVector 18(bool) 4 + 20: TypePointer Function 19(bvec4) + 77(PS_OUTPUT): TypeStruct 7(fvec4) + 78: TypePointer Function 77(PS_OUTPUT) + 80: TypeInt 32 1 + 81: 80(int) Constant 0 + 83: TypePointer Output 7(fvec4) + 84(Color): 83(ptr) Variable Output + 88($Global): TypeStruct 7(fvec4) + 89: TypePointer Uniform 88($Global) + 90: 89(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 79(psout): 78(ptr) Variable Function + 82: 8(ptr) AccessChain 79(psout) 81 + Store 82 15 + 85: 8(ptr) AccessChain 79(psout) 81 + 86: 7(fvec4) Load 85 + Store 84(Color) 86 + Return + FunctionEnd + 11(Bug1(vf4;): 2 Function None 9 + 10(a): 8(ptr) FunctionParameter + 12: Label + 13(v04): 8(ptr) Variable Function + 17(v01): 16(ptr) Variable Function + 21(r00): 20(ptr) Variable Function + 25(r01): 20(ptr) Variable Function + 29(r02): 20(ptr) Variable Function + 33(r03): 20(ptr) Variable Function + 37(r10): 20(ptr) Variable Function + 42(r11): 20(ptr) Variable Function + 47(r12): 20(ptr) Variable Function + 52(r13): 20(ptr) Variable Function + 57(r20): 20(ptr) Variable Function + 62(r21): 20(ptr) Variable Function + 67(r22): 20(ptr) Variable Function + 72(r23): 20(ptr) Variable Function + Store 13(v04) 15 + Store 17(v01) 14 + 22: 7(fvec4) Load 10(a) + 23: 7(fvec4) Load 13(v04) + 24: 19(bvec4) FOrdEqual 22 23 + Store 21(r00) 24 + 26: 7(fvec4) Load 10(a) + 27: 7(fvec4) Load 13(v04) + 28: 19(bvec4) FOrdNotEqual 26 27 + Store 25(r01) 28 + 30: 7(fvec4) Load 10(a) + 31: 7(fvec4) Load 13(v04) + 32: 19(bvec4) FOrdLessThan 30 31 + Store 29(r02) 32 + 34: 7(fvec4) Load 10(a) + 35: 7(fvec4) Load 13(v04) + 36: 19(bvec4) FOrdGreaterThan 34 35 + Store 33(r03) 36 + 38: 7(fvec4) Load 10(a) + 39: 6(float) Load 17(v01) + 40: 7(fvec4) CompositeConstruct 39 39 39 39 + 41: 19(bvec4) FOrdEqual 38 40 + Store 37(r10) 41 + 43: 7(fvec4) Load 10(a) + 44: 6(float) Load 17(v01) + 45: 7(fvec4) CompositeConstruct 44 44 44 44 + 46: 19(bvec4) FOrdNotEqual 43 45 + Store 42(r11) 46 + 48: 7(fvec4) Load 10(a) + 49: 6(float) Load 17(v01) + 50: 7(fvec4) CompositeConstruct 49 49 49 49 + 51: 19(bvec4) FOrdLessThan 48 50 + Store 47(r12) 51 + 53: 7(fvec4) Load 10(a) + 54: 6(float) Load 17(v01) + 55: 7(fvec4) CompositeConstruct 54 54 54 54 + 56: 19(bvec4) FOrdGreaterThan 53 55 + Store 52(r13) 56 + 58: 6(float) Load 17(v01) + 59: 7(fvec4) CompositeConstruct 58 58 58 58 + 60: 7(fvec4) Load 10(a) + 61: 19(bvec4) FOrdEqual 59 60 + Store 57(r20) 61 + 63: 6(float) Load 17(v01) + 64: 7(fvec4) CompositeConstruct 63 63 63 63 + 65: 7(fvec4) Load 10(a) + 66: 19(bvec4) FOrdNotEqual 64 65 + Store 62(r21) 66 + 68: 6(float) Load 17(v01) + 69: 7(fvec4) CompositeConstruct 68 68 68 68 + 70: 7(fvec4) Load 10(a) + 71: 19(bvec4) FOrdLessThan 69 70 + Store 67(r22) 71 + 73: 6(float) Load 17(v01) + 74: 7(fvec4) CompositeConstruct 73 73 73 73 + 75: 7(fvec4) Load 10(a) + 76: 19(bvec4) FOrdGreaterThan 74 75 + Store 72(r23) 76 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.conditional.frag.out b/Test/baseResults/hlsl.conditional.frag.out index f6c00fe6fa5e009c150b6769e55a9fea70f92a58..32edbda72d9a67b36d6972d217975240a78e88fd 100755 --- a/Test/baseResults/hlsl.conditional.frag.out +++ b/Test/baseResults/hlsl.conditional.frag.out @@ -2,7 +2,7 @@ hlsl.conditional.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -119,7 +119,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.constructexpr.frag.out b/Test/baseResults/hlsl.constructexpr.frag.out index 956e1bb039e6fac9e63d085de1129a496642ac88..e6ed6e13b8617f13bc6f6c5b8ae5ffce1ded4db2 100644 --- a/Test/baseResults/hlsl.constructexpr.frag.out +++ b/Test/baseResults/hlsl.constructexpr.frag.out @@ -2,7 +2,7 @@ hlsl.constructexpr.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:4 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -34,8 +34,8 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:? Sequence -0:? Sequence +0:16 Sequence +0:16 Sequence 0:16 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:16 color: direct index for structure (temp 4-component vector of float) @@ -53,7 +53,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:4 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:4 Function Parameters: 0:? Sequence 0:6 Constant: @@ -85,8 +85,8 @@ gl_FragCoord origin is upper left 0:15 1.000000 0:15 1.000000 0:15 1.000000 -0:? Sequence -0:? Sequence +0:16 Sequence +0:16 Sequence 0:16 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:16 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out b/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out new file mode 100644 index 0000000000000000000000000000000000000000..71842afa478277eede9c3e3bfa535ac2d9703b1f --- /dev/null +++ b/Test/baseResults/hlsl.deadFunctionMissingBody.vert.out @@ -0,0 +1,25 @@ +hlsl.deadFunctionMissingBody.vert +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 13 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 + Name 4 "main" + Name 9 "@entryPointOutput" + Decorate 9(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) +9(@entryPointOutput): 8(ptr) Variable Output + 10: 6(float) Constant 0 + 11: 7(fvec4) ConstantComposite 10 10 10 10 + 4(main): 2 Function None 3 + 5: Label + Store 9(@entryPointOutput) 11 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.depthGreater.frag.out b/Test/baseResults/hlsl.depthGreater.frag.out index 6a44a2f987e0a0120de22b8ff109d1dfb8f3c4e6..0b532460214c33bb16c59e894872bb4ffac7e568 100755 --- a/Test/baseResults/hlsl.depthGreater.frag.out +++ b/Test/baseResults/hlsl.depthGreater.frag.out @@ -3,7 +3,7 @@ Shader version: 450 gl_FragCoord origin is upper left using depth_greater 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1; (temp void) 0:2 Function Parameters: 0:2 'depth' (out float FragDepth) 0:? Sequence @@ -22,7 +22,7 @@ Shader version: 450 gl_FragCoord origin is upper left using depth_greater 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1; (temp void) 0:2 Function Parameters: 0:2 'depth' (out float FragDepth) 0:? Sequence diff --git a/Test/baseResults/hlsl.depthLess.frag.out b/Test/baseResults/hlsl.depthLess.frag.out index b1307ce244c39fab26e24c16e3f3bc58723f618d..ec664e106155a10c72ed561b9af5bcfd5c040b59 100755 --- a/Test/baseResults/hlsl.depthLess.frag.out +++ b/Test/baseResults/hlsl.depthLess.frag.out @@ -3,7 +3,7 @@ Shader version: 450 gl_FragCoord origin is upper left using depth_less 0:? Sequence -0:2 Function Definition: PixelShaderFunction( (global float FragDepth) +0:2 Function Definition: PixelShaderFunction( (temp float FragDepth) 0:2 Function Parameters: 0:? Sequence 0:3 Sequence @@ -23,7 +23,7 @@ Shader version: 450 gl_FragCoord origin is upper left using depth_less 0:? Sequence -0:2 Function Definition: PixelShaderFunction( (global float FragDepth) +0:2 Function Definition: PixelShaderFunction( (temp float FragDepth) 0:2 Function Parameters: 0:? Sequence 0:3 Sequence diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out index 9601c7d13fee634a8f03988917ce5f98a5d851b2..9b4f2c72e07722d5a269d4ae83ab7388fa66419b 100755 --- a/Test/baseResults/hlsl.discard.frag.out +++ b/Test/baseResults/hlsl.discard.frag.out @@ -2,7 +2,7 @@ hlsl.discard.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo(f1; (global void) +0:2 Function Definition: foo(f1; (temp void) 0:2 Function Parameters: 0:2 'f' (in float) 0:? Sequence @@ -14,11 +14,11 @@ gl_FragCoord origin is upper left 0:3 1.000000 0:3 true case 0:4 Branch: Kill -0:8 Function Definition: PixelShaderFunction(vf4; (global void) +0:8 Function Definition: PixelShaderFunction(vf4; (temp void) 0:8 Function Parameters: 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:9 Function Call: foo(f1; (global void) +0:9 Function Call: foo(f1; (temp void) 0:9 direct index (temp float) 0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Constant: @@ -49,7 +49,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo(f1; (global void) +0:2 Function Definition: foo(f1; (temp void) 0:2 Function Parameters: 0:2 'f' (in float) 0:? Sequence @@ -61,11 +61,11 @@ gl_FragCoord origin is upper left 0:3 1.000000 0:3 true case 0:4 Branch: Kill -0:8 Function Definition: PixelShaderFunction(vf4; (global void) +0:8 Function Definition: PixelShaderFunction(vf4; (temp void) 0:8 Function Parameters: 0:8 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:9 Function Call: foo(f1; (global void) +0:9 Function Call: foo(f1; (temp void) 0:9 direct index (temp float) 0:9 'input' (layout(location=0 ) in 4-component vector of float) 0:9 Constant: diff --git a/Test/baseResults/hlsl.doLoop.frag.out b/Test/baseResults/hlsl.doLoop.frag.out index 019f43d711fff8cf177e34822930c0d4c4f4ed1b..c060cdc7e37ca30a437fb5db1147066d3f2f0600 100755 --- a/Test/baseResults/hlsl.doLoop.frag.out +++ b/Test/baseResults/hlsl.doLoop.frag.out @@ -2,7 +2,7 @@ hlsl.doLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -18,9 +18,10 @@ gl_FragCoord origin is upper left 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' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 all (temp bool) +0:5 Equal (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Loop Body 0:5 Sequence 0:5 move second child to first child (temp 4-component vector of float) @@ -38,7 +39,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -54,9 +55,10 @@ gl_FragCoord origin is upper left 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' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 all (temp bool) +0:5 Equal (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:5 Loop Body 0:5 Sequence 0:5 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.entry-in.frag.out b/Test/baseResults/hlsl.entry-in.frag.out index 5baea644a98ff0f7dc9933413380b6b6f8dd66fe..04e3935d1fa07b233c27da96882b97f0a87166a2 100755 --- a/Test/baseResults/hlsl.entry-in.frag.out +++ b/Test/baseResults/hlsl.entry-in.frag.out @@ -2,7 +2,7 @@ hlsl.entry-in.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:8 Function Parameters: 0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence @@ -22,11 +22,11 @@ gl_FragCoord origin is upper left 0:9 1 (const int) 0:9 Constant: 0:9 0 (const int) -0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float) 0:13 Function Parameters: 0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence -0:? Sequence +0:15 Sequence 0:15 move second child to first child (temp 2-component vector of float) 0:15 v: direct index for structure (temp 2-component vector of float) 0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) @@ -48,33 +48,33 @@ gl_FragCoord origin is upper left 0:16 Sequence 0:16 move second child to first child (temp float) 0:16 'ret1' (temp float) -0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:17 Sequence 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) -0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) -0:? Comma (temp float) -0:? Sequence -0:? move second child to first child (temp 2-component vector of float) -0:? v: direct index for structure (temp 2-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 0 (const int) +0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) +0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of float) +0:17 v: direct index for structure (temp 2-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:? move second child to first child (temp 4-component vector of float) -0:? fragCoord: direct index for structure (temp 4-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 1 (const int) +0:17 move second child to first child (temp 4-component vector of float) +0:17 fragCoord: direct index for structure (temp 4-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:? move second child to first child (temp 2-component vector of int) -0:? i2: direct index for structure (temp 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 2 (const int) +0:17 move second child to first child (temp 2-component vector of int) +0:17 i2: direct index for structure (temp 2-component vector of int) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -100,7 +100,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:8 Function Definition: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:8 Function Parameters: 0:8 'p' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence @@ -120,11 +120,11 @@ gl_FragCoord origin is upper left 0:9 1 (const int) 0:9 Constant: 0:9 0 (const int) -0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (global 4-component vector of float) +0:13 Function Definition: PixelShaderFunction(struct-InParam-vf2-vf4-vi21; (temp 4-component vector of float) 0:13 Function Parameters: 0:13 'i' (in structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? Sequence -0:? Sequence +0:15 Sequence 0:15 move second child to first child (temp 2-component vector of float) 0:15 v: direct index for structure (temp 2-component vector of float) 0:15 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) @@ -146,33 +146,33 @@ gl_FragCoord origin is upper left 0:16 Sequence 0:16 move second child to first child (temp float) 0:16 'ret1' (temp float) -0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) +0:16 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) 0:16 'local' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:17 Sequence 0:17 move second child to first child (temp float) 0:17 'ret2' (temp float) -0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (global float) -0:? Comma (temp float) -0:? Sequence -0:? move second child to first child (temp 2-component vector of float) -0:? v: direct index for structure (temp 2-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 0 (const int) +0:17 Function Call: fun(struct-InParam-vf2-vf4-vi21; (temp float) +0:17 Comma (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of float) +0:17 v: direct index for structure (temp 2-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 0 (const int) 0:? 'v' (layout(location=0 ) in 2-component vector of float) -0:? move second child to first child (temp 4-component vector of float) -0:? fragCoord: direct index for structure (temp 4-component vector of float) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 1 (const int) +0:17 move second child to first child (temp 4-component vector of float) +0:17 fragCoord: direct index for structure (temp 4-component vector of float) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 1 (const int) 0:? 'fragCoord' (in 4-component vector of float FragCoord) -0:? move second child to first child (temp 2-component vector of int) -0:? i2: direct index for structure (temp 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) -0:? Constant: -0:? 2 (const int) +0:17 move second child to first child (temp 2-component vector of int) +0:17 i2: direct index for structure (temp 2-component vector of int) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 Constant: +0:17 2 (const int) 0:? 'i2' (layout(location=1 ) in 2-component vector of int) -0:? 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) +0:17 'aggShadow' (temp structure{temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -256,7 +256,7 @@ gl_FragCoord origin is upper left 48(param): 12(ptr) Variable Function 51(ret2): 20(ptr) Variable Function 52(aggShadow): 12(ptr) Variable Function - 59(param): 20(ptr) Variable Function + 59(param): 12(ptr) Variable Function 33: 7(fvec2) Load 32(v) 35: 34(ptr) AccessChain 30(local) 17 Store 35 33 diff --git a/Test/baseResults/hlsl.entry-out.frag.out b/Test/baseResults/hlsl.entry-out.frag.out index 81926dd1c00f894060a7bde86b535a743588fc54..86fde14c632801b94acfd0c4c4c63c8301be7b66 100755 --- a/Test/baseResults/hlsl.entry-out.frag.out +++ b/Test/baseResults/hlsl.entry-out.frag.out @@ -2,60 +2,83 @@ hlsl.entry-out.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Definition: fun(struct-OutParam-vf2-vi21; (temp void) 0:7 Function Parameters: -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 'out1' (layout(location=1 ) out 4-component vector of float) -0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:7 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence -0:8 move second child to first child (temp 4-component vector of float) -0:8 'out1' (layout(location=1 ) out 4-component vector of float) -0:8 'input' (layout(location=0 ) in 4-component vector of float) -0:9 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:8 move second child to first child (temp 2-component vector of float) +0:8 v: direct index for structure (temp 2-component vector of float) +0:8 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.400000 +0:8 0.400000 +0:9 move second child to first child (temp 2-component vector of int) +0:9 i: direct index for structure (temp 2-component vector of int) +0:9 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 1 (const int) 0:9 Constant: -0:9 2.000000 -0:9 2.000000 -0:10 move second child to first child (temp 2-component vector of int) +0:9 7 (const int) +0:9 7 (const int) +0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float) +0:13 Function Parameters: +0:13 'input' (layout(location=0 ) in 4-component vector of float) +0:13 'out1' (layout(location=1 ) out 4-component vector of float) +0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 'out1' (layout(location=1 ) out 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:15 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:15 Constant: +0:15 2.000000 +0:15 2.000000 +0:16 move second child to first child (temp 2-component vector of int) 0:? 'i' (layout(location=3 ) out 2-component vector of int) -0:10 Constant: -0:10 3 (const int) -0:10 3 (const int) -0:12 move second child to first child (temp 2-component vector of float) -0:12 v: direct index for structure (temp 2-component vector of float) -0:12 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 12.000000 -0:12 12.000000 -0:13 move second child to first child (temp 2-component vector of int) -0:13 i: direct index for structure (temp 2-component vector of int) -0:13 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 13 (const int) -0:13 13 (const int) -0:? Sequence -0:14 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=4 ) out 2-component vector of float) -0:14 v: direct index for structure (temp 2-component vector of float) -0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child (temp 2-component vector of int) -0:? 'i' (layout(location=5 ) out 2-component vector of int) -0:14 i: direct index for structure (temp 2-component vector of int) -0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:14 Constant: -0:14 1 (const int) -0:16 Sequence -0:16 move second child to first child (temp 4-component vector of float) +0:16 Constant: +0:16 3 (const int) +0:16 3 (const int) +0:18 move second child to first child (temp 2-component vector of float) +0:18 v: direct index for structure (temp 2-component vector of float) +0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 12.000000 +0:18 12.000000 +0:19 move second child to first child (temp 2-component vector of int) +0:19 i: direct index for structure (temp 2-component vector of int) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const int) +0:19 13 (const int) +0:20 Comma (temp void) +0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Sequence +0:20 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:20 v: direct index for structure (temp 2-component vector of float) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=5 ) out 2-component vector of int) +0:20 i: direct index for structure (temp 2-component vector of int) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 1 (const int) +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:16 'out1' (layout(location=1 ) out 4-component vector of float) -0:16 Branch: Return +0:22 'out1' (layout(location=1 ) out 4-component vector of float) +0:22 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -72,60 +95,83 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (global 4-component vector of float) +0:7 Function Definition: fun(struct-OutParam-vf2-vi21; (temp void) 0:7 Function Parameters: -0:7 'input' (layout(location=0 ) in 4-component vector of float) -0:7 'out1' (layout(location=1 ) out 4-component vector of float) -0:7 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:7 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:7 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) 0:? Sequence -0:8 move second child to first child (temp 4-component vector of float) -0:8 'out1' (layout(location=1 ) out 4-component vector of float) -0:8 'input' (layout(location=0 ) in 4-component vector of float) -0:9 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:8 move second child to first child (temp 2-component vector of float) +0:8 v: direct index for structure (temp 2-component vector of float) +0:8 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:8 Constant: +0:8 0 (const int) +0:8 Constant: +0:8 0.400000 +0:8 0.400000 +0:9 move second child to first child (temp 2-component vector of int) +0:9 i: direct index for structure (temp 2-component vector of int) +0:9 'op' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:9 Constant: +0:9 1 (const int) 0:9 Constant: -0:9 2.000000 -0:9 2.000000 -0:10 move second child to first child (temp 2-component vector of int) +0:9 7 (const int) +0:9 7 (const int) +0:13 Function Definition: PixelShaderFunction(vf4;vf4;struct-OutParam-vf2-vi21;struct-OutParam-vf2-vi21; (temp 4-component vector of float) +0:13 Function Parameters: +0:13 'input' (layout(location=0 ) in 4-component vector of float) +0:13 'out1' (layout(location=1 ) out 4-component vector of float) +0:13 'out2' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:13 'out3' (out structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:? Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:14 'out1' (layout(location=1 ) out 4-component vector of float) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:15 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=2 ) out 2-component vector of float) +0:15 Constant: +0:15 2.000000 +0:15 2.000000 +0:16 move second child to first child (temp 2-component vector of int) 0:? 'i' (layout(location=3 ) out 2-component vector of int) -0:10 Constant: -0:10 3 (const int) -0:10 3 (const int) -0:12 move second child to first child (temp 2-component vector of float) -0:12 v: direct index for structure (temp 2-component vector of float) -0:12 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:12 Constant: -0:12 0 (const int) -0:12 Constant: -0:12 12.000000 -0:12 12.000000 -0:13 move second child to first child (temp 2-component vector of int) -0:13 i: direct index for structure (temp 2-component vector of int) -0:13 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:13 Constant: -0:13 1 (const int) -0:13 Constant: -0:13 13 (const int) -0:13 13 (const int) -0:? Sequence -0:14 move second child to first child (temp 2-component vector of float) -0:? 'v' (layout(location=4 ) out 2-component vector of float) -0:14 v: direct index for structure (temp 2-component vector of float) -0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:14 Constant: -0:14 0 (const int) -0:14 move second child to first child (temp 2-component vector of int) -0:? 'i' (layout(location=5 ) out 2-component vector of int) -0:14 i: direct index for structure (temp 2-component vector of int) -0:14 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) -0:14 Constant: -0:14 1 (const int) -0:16 Sequence -0:16 move second child to first child (temp 4-component vector of float) +0:16 Constant: +0:16 3 (const int) +0:16 3 (const int) +0:18 move second child to first child (temp 2-component vector of float) +0:18 v: direct index for structure (temp 2-component vector of float) +0:18 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:18 Constant: +0:18 0 (const int) +0:18 Constant: +0:18 12.000000 +0:18 12.000000 +0:19 move second child to first child (temp 2-component vector of int) +0:19 i: direct index for structure (temp 2-component vector of int) +0:19 'local' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:19 Constant: +0:19 1 (const int) +0:19 Constant: +0:19 13 (const int) +0:19 13 (const int) +0:20 Comma (temp void) +0:20 Function Call: fun(struct-OutParam-vf2-vi21; (temp void) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Sequence +0:20 move second child to first child (temp 2-component vector of float) +0:? 'v' (layout(location=4 ) out 2-component vector of float) +0:20 v: direct index for structure (temp 2-component vector of float) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 0 (const int) +0:20 move second child to first child (temp 2-component vector of int) +0:? 'i' (layout(location=5 ) out 2-component vector of int) +0:20 i: direct index for structure (temp 2-component vector of int) +0:20 'tempArg' (temp structure{temp 2-component vector of float v, temp 2-component vector of int i}) +0:20 Constant: +0:20 1 (const int) +0:22 Sequence +0:22 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:16 'out1' (layout(location=1 ) out 4-component vector of float) -0:16 Branch: Return +0:22 'out1' (layout(location=1 ) out 4-component vector of float) +0:22 Branch: Return 0:? Linker Objects 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -137,82 +183,105 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 46 +// Id's are bound by 60 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 9 11 15 21 37 40 43 + EntryPoint Fragment 4 "PixelShaderFunction" 28 30 33 37 51 54 57 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" - Name 9 "out1" - Name 11 "input" - Name 15 "v" - Name 21 "i" - Name 24 "OutParam" - MemberName 24(OutParam) 0 "v" - MemberName 24(OutParam) 1 "i" - Name 26 "local" - Name 37 "v" - Name 40 "i" - Name 43 "@entryPointOutput" - Decorate 9(out1) Location 1 - Decorate 11(input) Location 0 - Decorate 15(v) Location 2 - Decorate 21(i) Location 3 - Decorate 37(v) Location 4 - Decorate 40(i) Location 5 - Decorate 43(@entryPointOutput) Location 0 + Name 10 "OutParam" + MemberName 10(OutParam) 0 "v" + MemberName 10(OutParam) 1 "i" + Name 14 "fun(struct-OutParam-vf2-vi21;" + Name 13 "op" + Name 28 "out1" + Name 30 "input" + Name 33 "v" + Name 37 "i" + Name 40 "local" + Name 47 "tempArg" + Name 48 "param" + Name 51 "v" + Name 54 "i" + Name 57 "@entryPointOutput" + Decorate 28(out1) Location 1 + Decorate 30(input) Location 0 + Decorate 33(v) Location 2 + Decorate 37(i) Location 3 + Decorate 51(v) Location 4 + Decorate 54(i) Location 5 + Decorate 57(@entryPointOutput) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 - 7: TypeVector 6(float) 4 - 8: TypePointer Output 7(fvec4) - 9(out1): 8(ptr) Variable Output - 10: TypePointer Input 7(fvec4) - 11(input): 10(ptr) Variable Input - 13: TypeVector 6(float) 2 - 14: TypePointer Output 13(fvec2) - 15(v): 14(ptr) Variable Output - 16: 6(float) Constant 1073741824 - 17: 13(fvec2) ConstantComposite 16 16 - 18: TypeInt 32 1 - 19: TypeVector 18(int) 2 - 20: TypePointer Output 19(ivec2) - 21(i): 20(ptr) Variable Output - 22: 18(int) Constant 3 - 23: 19(ivec2) ConstantComposite 22 22 - 24(OutParam): TypeStruct 13(fvec2) 19(ivec2) - 25: TypePointer Function 24(OutParam) - 27: 18(int) Constant 0 - 28: 6(float) Constant 1094713344 - 29: 13(fvec2) ConstantComposite 28 28 - 30: TypePointer Function 13(fvec2) - 32: 18(int) Constant 1 - 33: 18(int) Constant 13 - 34: 19(ivec2) ConstantComposite 33 33 - 35: TypePointer Function 19(ivec2) - 37(v): 14(ptr) Variable Output - 40(i): 20(ptr) Variable Output -43(@entryPointOutput): 8(ptr) Variable Output + 7: TypeVector 6(float) 2 + 8: TypeInt 32 1 + 9: TypeVector 8(int) 2 + 10(OutParam): TypeStruct 7(fvec2) 9(ivec2) + 11: TypePointer Function 10(OutParam) + 12: TypeFunction 2 11(ptr) + 16: 8(int) Constant 0 + 17: 6(float) Constant 1053609165 + 18: 7(fvec2) ConstantComposite 17 17 + 19: TypePointer Function 7(fvec2) + 21: 8(int) Constant 1 + 22: 8(int) Constant 7 + 23: 9(ivec2) ConstantComposite 22 22 + 24: TypePointer Function 9(ivec2) + 26: TypeVector 6(float) 4 + 27: TypePointer Output 26(fvec4) + 28(out1): 27(ptr) Variable Output + 29: TypePointer Input 26(fvec4) + 30(input): 29(ptr) Variable Input + 32: TypePointer Output 7(fvec2) + 33(v): 32(ptr) Variable Output + 34: 6(float) Constant 1073741824 + 35: 7(fvec2) ConstantComposite 34 34 + 36: TypePointer Output 9(ivec2) + 37(i): 36(ptr) Variable Output + 38: 8(int) Constant 3 + 39: 9(ivec2) ConstantComposite 38 38 + 41: 6(float) Constant 1094713344 + 42: 7(fvec2) ConstantComposite 41 41 + 44: 8(int) Constant 13 + 45: 9(ivec2) ConstantComposite 44 44 + 51(v): 32(ptr) Variable Output + 54(i): 36(ptr) Variable Output +57(@entryPointOutput): 27(ptr) Variable Output 4(PixelShaderFunction): 2 Function None 3 5: Label - 26(local): 25(ptr) Variable Function - 12: 7(fvec4) Load 11(input) - Store 9(out1) 12 - Store 15(v) 17 - Store 21(i) 23 - 31: 30(ptr) AccessChain 26(local) 27 - Store 31 29 - 36: 35(ptr) AccessChain 26(local) 32 - Store 36 34 - 38: 30(ptr) AccessChain 26(local) 27 - 39: 13(fvec2) Load 38 - Store 37(v) 39 - 41: 35(ptr) AccessChain 26(local) 32 - 42: 19(ivec2) Load 41 - Store 40(i) 42 - 44: 7(fvec4) Load 9(out1) - Store 43(@entryPointOutput) 44 + 40(local): 11(ptr) Variable Function + 47(tempArg): 11(ptr) Variable Function + 48(param): 11(ptr) Variable Function + 31: 26(fvec4) Load 30(input) + Store 28(out1) 31 + Store 33(v) 35 + Store 37(i) 39 + 43: 19(ptr) AccessChain 40(local) 16 + Store 43 42 + 46: 24(ptr) AccessChain 40(local) 21 + Store 46 45 + 49: 2 FunctionCall 14(fun(struct-OutParam-vf2-vi21;) 48(param) + 50:10(OutParam) Load 48(param) + Store 47(tempArg) 50 + 52: 19(ptr) AccessChain 47(tempArg) 16 + 53: 7(fvec2) Load 52 + Store 51(v) 53 + 55: 24(ptr) AccessChain 47(tempArg) 21 + 56: 9(ivec2) Load 55 + Store 54(i) 56 + 58: 26(fvec4) Load 28(out1) + Store 57(@entryPointOutput) 58 + Return + FunctionEnd +14(fun(struct-OutParam-vf2-vi21;): 2 Function None 12 + 13(op): 11(ptr) FunctionParameter + 15: Label + 20: 19(ptr) AccessChain 13(op) 16 + Store 20 18 + 25: 24(ptr) AccessChain 13(op) 21 + Store 25 23 Return FunctionEnd diff --git a/Test/baseResults/hlsl.entry.rename.frag.out b/Test/baseResults/hlsl.entry.rename.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..b24cb7a2571b51bfd758579c57b60430bd40f22d --- /dev/null +++ b/Test/baseResults/hlsl.entry.rename.frag.out @@ -0,0 +1,119 @@ +hlsl.entry.rename.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: not_the_entry_point( (temp void) +0:7 Function Parameters: +0:11 Function Definition: main_in_spv( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:13 Color: direct index for structure (temp 4-component vector of float) +0:13 'psout' (temp structure{temp 4-component vector of float Color}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:14 Sequence +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:14 Color: direct index for structure (temp 4-component vector of float) +0:14 'psout' (temp structure{temp 4-component vector of float Color}) +0:14 Constant: +0:14 0 (const int) +0:14 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int also_not_the_entry_point}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:7 Function Definition: not_the_entry_point( (temp void) +0:7 Function Parameters: +0:11 Function Definition: main_in_spv( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:13 Color: direct index for structure (temp 4-component vector of float) +0:13 'psout' (temp structure{temp 4-component vector of float Color}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:13 0.000000 +0:14 Sequence +0:14 Sequence +0:14 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:14 Color: direct index for structure (temp 4-component vector of float) +0:14 'psout' (temp structure{temp 4-component vector of float Color}) +0:14 Constant: +0:14 0 (const int) +0:14 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int also_not_the_entry_point}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 27 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_in_spv" 20 + ExecutionMode 4 OriginUpperLeft + Name 4 "main_in_spv" + Name 6 "not_the_entry_point(" + Name 10 "PS_OUTPUT" + MemberName 10(PS_OUTPUT) 0 "Color" + Name 12 "psout" + Name 20 "Color" + Name 24 "$Global" + MemberName 24($Global) 0 "also_not_the_entry_point" + Name 26 "" + Decorate 20(Color) Location 0 + MemberDecorate 24($Global) 0 Offset 0 + Decorate 24($Global) Block + Decorate 26 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10(PS_OUTPUT): TypeStruct 9(fvec4) + 11: TypePointer Function 10(PS_OUTPUT) + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 15: 8(float) Constant 0 + 16: 9(fvec4) ConstantComposite 15 15 15 15 + 17: TypePointer Function 9(fvec4) + 19: TypePointer Output 9(fvec4) + 20(Color): 19(ptr) Variable Output + 24($Global): TypeStruct 13(int) + 25: TypePointer Uniform 24($Global) + 26: 25(ptr) Variable Uniform + 4(main_in_spv): 2 Function None 3 + 5: Label + 12(psout): 11(ptr) Variable Function + 18: 17(ptr) AccessChain 12(psout) 14 + Store 18 16 + 21: 17(ptr) AccessChain 12(psout) 14 + 22: 9(fvec4) Load 21 + Store 20(Color) 22 + Return + FunctionEnd +6(not_the_entry_point(): 2 Function None 3 + 7: Label + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.flatten.return.frag.out b/Test/baseResults/hlsl.flatten.return.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..39fbf0ef87f08bddf1d62266bbc4ed3650dbc366 --- /dev/null +++ b/Test/baseResults/hlsl.flatten.return.frag.out @@ -0,0 +1,187 @@ +hlsl.flatten.return.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:11 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:17 other_struct_member1: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 1 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:17 other_struct_member2: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 2 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member3' (layout(location=3 ) out float) +0:17 other_struct_member3: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 3 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:? 'other_struct_member3' (layout(location=3 ) out float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:11 Function Parameters: +0:? Sequence +0:12 Branch: Return with expression +0:? Constant: +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 1.000000 +0:? 2.000000 +0:? 3.000000 +0:? 4.000000 +0:16 Function Definition: main( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:16 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Function Call: Func1( (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:17 color: direct index for structure (temp 4-component vector of float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 0 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:17 other_struct_member1: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 1 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:17 other_struct_member2: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 2 (const int) +0:17 move second child to first child (temp float) +0:? 'other_struct_member3' (layout(location=3 ) out float) +0:17 other_struct_member3: direct index for structure (temp float) +0:17 'flattenTemp' (temp structure{temp 4-component vector of float color, temp float other_struct_member1, temp float other_struct_member2, temp float other_struct_member3}) +0:17 Constant: +0:17 3 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'other_struct_member1' (layout(location=1 ) out float) +0:? 'other_struct_member2' (layout(location=2 ) out float) +0:? 'other_struct_member3' (layout(location=3 ) out float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 24 31 36 40 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "color" + MemberName 8(PS_OUTPUT) 1 "other_struct_member1" + MemberName 8(PS_OUTPUT) 2 "other_struct_member2" + MemberName 8(PS_OUTPUT) 3 "other_struct_member3" + Name 10 "Func1(" + Name 21 "flattenTemp" + Name 24 "color" + Name 31 "other_struct_member1" + Name 36 "other_struct_member2" + Name 40 "other_struct_member3" + Decorate 24(color) Location 0 + Decorate 31(other_struct_member1) Location 1 + Decorate 36(other_struct_member2) Location 2 + Decorate 40(other_struct_member3) Location 3 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) 6(float) 6(float) + 9: TypeFunction 8(PS_OUTPUT) + 12: 6(float) Constant 1065353216 + 13: 7(fvec4) ConstantComposite 12 12 12 12 + 14: 6(float) Constant 1073741824 + 15: 6(float) Constant 1077936128 + 16: 6(float) Constant 1082130432 + 17:8(PS_OUTPUT) ConstantComposite 13 14 15 16 + 20: TypePointer Function 8(PS_OUTPUT) + 23: TypePointer Output 7(fvec4) + 24(color): 23(ptr) Variable Output + 25: TypeInt 32 1 + 26: 25(int) Constant 0 + 27: TypePointer Function 7(fvec4) + 30: TypePointer Output 6(float) +31(other_struct_member1): 30(ptr) Variable Output + 32: 25(int) Constant 1 + 33: TypePointer Function 6(float) +36(other_struct_member2): 30(ptr) Variable Output + 37: 25(int) Constant 2 +40(other_struct_member3): 30(ptr) Variable Output + 41: 25(int) Constant 3 + 4(main): 2 Function None 3 + 5: Label + 21(flattenTemp): 20(ptr) Variable Function + 22:8(PS_OUTPUT) FunctionCall 10(Func1() + Store 21(flattenTemp) 22 + 28: 27(ptr) AccessChain 21(flattenTemp) 26 + 29: 7(fvec4) Load 28 + Store 24(color) 29 + 34: 33(ptr) AccessChain 21(flattenTemp) 32 + 35: 6(float) Load 34 + Store 31(other_struct_member1) 35 + 38: 33(ptr) AccessChain 21(flattenTemp) 37 + 39: 6(float) Load 38 + Store 36(other_struct_member2) 39 + 42: 33(ptr) AccessChain 21(flattenTemp) 41 + 43: 6(float) Load 42 + Store 40(other_struct_member3) 43 + Return + FunctionEnd + 10(Func1():8(PS_OUTPUT) Function None 9 + 11: Label + ReturnValue 17 + FunctionEnd diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out index 313be0b541a1f2dcd352e1dabd7d852613b23903..641febd7bbb6448025778dd6a17520b1f525e3ba 100755 --- a/Test/baseResults/hlsl.float1.frag.out +++ b/Test/baseResults/hlsl.float1.frag.out @@ -12,7 +12,7 @@ gl_FragCoord origin is upper left 0:2 'scalar' (global float) 0:2 Constant: 0:2 2.000000 -0:5 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:5 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:5 Function Parameters: 0:5 'inFloat1' (in 1-component vector of float) 0:5 'inScalar' (in float) @@ -32,6 +32,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left @@ -46,7 +47,7 @@ gl_FragCoord origin is upper left 0:2 'scalar' (global float) 0:2 Constant: 0:2 2.000000 -0:5 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:5 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:5 Function Parameters: 0:5 'inFloat1' (in 1-component vector of float) 0:5 'inScalar' (in float) @@ -92,6 +93,7 @@ gl_FragCoord origin is upper left 5: Label Store 14(f1) 15 Store 16(scalar) 17 + Return FunctionEnd 11(ShaderFunction(vf1;f1;): 6(float) Function None 8 9(inFloat1): 7(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out index 85b3c9b4a0acb88fc047463bfb3e58ff212d1a0d..27c9a5c6cf06446f4ff07e398d4fa60777486130 100755 --- a/Test/baseResults/hlsl.float4.frag.out +++ b/Test/baseResults/hlsl.float4.frag.out @@ -5,62 +5,45 @@ WARNING: 0:6: 'register' : ignoring shader_profile Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (global 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:9 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:9 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:9 Function Parameters: 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' (in 4-component vector of float) -0:10 'AmbientColor' (global 4-component vector of float) +0:10 AmbientColor: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:10 Constant: +0:10 0 (const uint) 0:? Linker Objects -0:? 'AmbientColor' (global 4-component vector of float) -0:? 'ff1' (global bool Face) -0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) -0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float) -0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Sequence -0:1 move second child to first child (temp 4-component vector of float) -0:1 'AmbientColor' (global 4-component vector of float) -0:? Constant: -0:? 1.000000 -0:? 0.500000 -0:? 0.000000 -0:? 1.000000 -0:9 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:9 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:9 Function Parameters: 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' (in 4-component vector of float) -0:10 'AmbientColor' (global 4-component vector of float) +0:10 AmbientColor: direct index for structure (layout(offset=0 ) uniform 4-component vector of float) +0:10 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) +0:10 Constant: +0:10 0 (const uint) 0:? Linker Objects -0:? 'AmbientColor' (global 4-component vector of float) -0:? 'ff1' (global bool Face) -0:? 'ff2' (layout(offset=4 ) global 4-component vector of float) -0:? 'ff3' (layout(binding=0 offset=4 ) global 4-component vector of float) -0:? 'ff4' (layout(binding=1 offset=4 ) global 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float AmbientColor, layout(offset=16 ) uniform bool Face ff1, layout(offset=20 ) uniform float ff2, layout(binding=0 offset=32 ) uniform 4-component vector of float ff3, layout(binding=1 offset=48 ) uniform 4-component vector of float ff4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 30 +// Id's are bound by 26 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -70,44 +53,44 @@ gl_FragCoord origin is upper left Name 4 "PixelShaderFunction" Name 11 "ShaderFunction(vf4;" Name 10 "input" - Name 14 "AmbientColor" - Name 26 "ff1" - Name 27 "ff2" - Name 28 "ff3" - Name 29 "ff4" - Decorate 26(ff1) BuiltIn FrontFacing - Decorate 27(ff2) Offset 4 - Decorate 28(ff3) Offset 4 - Decorate 28(ff3) Binding 0 - Decorate 29(ff4) Offset 4 - Decorate 29(ff4) Binding 1 + Name 15 "$Global" + MemberName 15($Global) 0 "AmbientColor" + MemberName 15($Global) 1 "ff1" + MemberName 15($Global) 2 "ff2" + MemberName 15($Global) 3 "ff3" + MemberName 15($Global) 4 "ff4" + Name 17 "" + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 16 + MemberDecorate 15($Global) 1 BuiltIn FrontFacing + MemberDecorate 15($Global) 2 Offset 20 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) - 13: TypePointer Private 7(fvec4) -14(AmbientColor): 13(ptr) Variable Private - 15: 6(float) Constant 1065353216 - 16: 6(float) Constant 1056964608 - 17: 6(float) Constant 0 - 18: 7(fvec4) ConstantComposite 15 16 17 15 - 24: TypeBool - 25: TypePointer Private 24(bool) - 26(ff1): 25(ptr) Variable Private - 27(ff2): 13(ptr) Variable Private - 28(ff3): 13(ptr) Variable Private - 29(ff4): 13(ptr) Variable Private + 14: TypeInt 32 0 + 15($Global): TypeStruct 7(fvec4) 14(int) 6(float) 7(fvec4) 7(fvec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: TypeInt 32 1 + 19: 18(int) Constant 0 + 20: TypePointer Uniform 7(fvec4) 4(PixelShaderFunction): 2 Function None 3 5: Label - Store 14(AmbientColor) 18 + Return FunctionEnd 11(ShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter 12: Label - 19: 7(fvec4) Load 10(input) - 20: 7(fvec4) Load 14(AmbientColor) - 21: 7(fvec4) FMul 19 20 - ReturnValue 21 + 13: 7(fvec4) Load 10(input) + 21: 20(ptr) AccessChain 17 19 + 22: 7(fvec4) Load 21 + 23: 7(fvec4) FMul 13 22 + ReturnValue 23 FunctionEnd diff --git a/Test/baseResults/hlsl.forLoop.frag.out b/Test/baseResults/hlsl.forLoop.frag.out index ba8e32e7d26a90b9325454de69098e64aca0ede9..85b8fb272b47715af25f4ebef4d41ee188073262 100755 --- a/Test/baseResults/hlsl.forLoop.frag.out +++ b/Test/baseResults/hlsl.forLoop.frag.out @@ -2,7 +2,7 @@ hlsl.forLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -19,16 +19,18 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Loop with condition tested first 0:5 Loop Condition -0:5 Compare Not Equal (temp bool) -0:5 'input' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 any (temp bool) +0:5 NotEqual (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 any (temp bool) +0:6 NotEqual (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Loop Body 0:? Sequence 0:6 Sequence @@ -42,9 +44,10 @@ gl_FragCoord origin is upper left 0:7 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 any (temp bool) +0:7 NotEqual (temp 4-component vector of bool) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop Body 0:? Sequence 0:7 Sequence @@ -124,7 +127,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -141,16 +144,18 @@ gl_FragCoord origin is upper left 0:? Sequence 0:5 Loop with condition tested first 0:5 Loop Condition -0:5 Compare Not Equal (temp bool) -0:5 'input' (layout(location=0 ) in 4-component vector of float) -0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 any (temp bool) +0:5 NotEqual (temp 4-component vector of bool) +0:5 'input' (layout(location=0 ) in 4-component vector of float) +0:5 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 any (temp bool) +0:6 NotEqual (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 Loop Body 0:? Sequence 0:6 Sequence @@ -164,9 +169,10 @@ gl_FragCoord origin is upper left 0:7 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 any (temp bool) +0:7 NotEqual (temp 4-component vector of bool) +0:7 'input' (layout(location=0 ) in 4-component vector of float) +0:7 'input' (layout(location=0 ) in 4-component vector of float) 0:7 Loop Body 0:? Sequence 0:7 Sequence diff --git a/Test/baseResults/hlsl.gather.array.dx10.frag.out b/Test/baseResults/hlsl.gather.array.dx10.frag.out index d2545cca3c97d2afe05e439f38dc9b899d50c31b..ee550d165cba3d0d150ad64a436fa01405c03d20 100644 --- a/Test/baseResults/hlsl.gather.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.array.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.gather.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of float) 0:29 'txval20' (temp 4-component vector of float) -0:29 textureGather (global 4-component vector of float) +0:29 textureGather (temp 4-component vector of float) 0:29 Construct combined texture-sampler (temp sampler2DArray) 0:29 'g_tTex2df4a' (uniform texture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of int) 0:30 'txval21' (temp 4-component vector of int) -0:30 textureGather (global 4-component vector of int) +0:30 textureGather (temp 4-component vector of int) 0:30 Construct combined texture-sampler (temp isampler2DArray) 0:30 'g_tTex2di4a' (uniform itexture2DArray) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of uint) 0:31 'txval22' (temp 4-component vector of uint) -0:31 textureGather (global 4-component vector of uint) +0:31 textureGather (temp 4-component vector of uint) 0:31 Construct combined texture-sampler (temp usampler2DArray) 0:31 'g_tTex2du4a' (uniform utexture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureGather (global 4-component vector of float) +0:35 textureGather (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureGather (global 4-component vector of int) +0:36 textureGather (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureGather (global 4-component vector of uint) +0:37 textureGather (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -91,8 +91,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -107,6 +107,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -118,8 +120,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -128,13 +128,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of float) 0:29 'txval20' (temp 4-component vector of float) -0:29 textureGather (global 4-component vector of float) +0:29 textureGather (temp 4-component vector of float) 0:29 Construct combined texture-sampler (temp sampler2DArray) 0:29 'g_tTex2df4a' (uniform texture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -145,7 +145,7 @@ gl_FragCoord origin is upper left 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of int) 0:30 'txval21' (temp 4-component vector of int) -0:30 textureGather (global 4-component vector of int) +0:30 textureGather (temp 4-component vector of int) 0:30 Construct combined texture-sampler (temp isampler2DArray) 0:30 'g_tTex2di4a' (uniform itexture2DArray) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -156,7 +156,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of uint) 0:31 'txval22' (temp 4-component vector of uint) -0:31 textureGather (global 4-component vector of uint) +0:31 textureGather (temp 4-component vector of uint) 0:31 Construct combined texture-sampler (temp usampler2DArray) 0:31 'g_tTex2du4a' (uniform utexture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -167,7 +167,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureGather (global 4-component vector of float) +0:35 textureGather (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -179,7 +179,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureGather (global 4-component vector of int) +0:36 textureGather (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -191,7 +191,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureGather (global 4-component vector of uint) +0:37 textureGather (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -217,8 +217,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -233,6 +233,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -244,8 +246,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.frag.out b/Test/baseResults/hlsl.gather.basic.dx10.frag.out index 52648f7032d713730a976cdd89800372f52f012e..86e106ca05c0ad306db643249613f59df3593fd5 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.gather.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureGather (global 4-component vector of float) +0:34 textureGather (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureGather (global 4-component vector of int) +0:35 textureGather (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureGather (global 4-component vector of uint) +0:36 textureGather (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval40' (temp 4-component vector of float) -0:40 textureGather (global 4-component vector of float) +0:40 textureGather (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp samplerCube) 0:40 'g_tTexcdf4' (uniform textureCube) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -49,7 +49,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval41' (temp 4-component vector of int) -0:41 textureGather (global 4-component vector of int) +0:41 textureGather (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isamplerCube) 0:41 'g_tTexcdi4' (uniform itextureCube) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval42' (temp 4-component vector of uint) -0:42 textureGather (global 4-component vector of uint) +0:42 textureGather (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usamplerCube) 0:42 'g_tTexcdu4' (uniform utextureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -85,8 +85,8 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:? Sequence -0:? Sequence +0:47 Sequence +0:47 Sequence 0:47 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) @@ -101,6 +101,8 @@ gl_FragCoord origin is upper left 0:47 1 (const int) 0:47 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -116,8 +118,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -126,13 +126,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureGather (global 4-component vector of float) +0:34 textureGather (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureGather (global 4-component vector of int) +0:35 textureGather (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureGather (global 4-component vector of uint) +0:36 textureGather (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -162,7 +162,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval40' (temp 4-component vector of float) -0:40 textureGather (global 4-component vector of float) +0:40 textureGather (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp samplerCube) 0:40 'g_tTexcdf4' (uniform textureCube) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -173,7 +173,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval41' (temp 4-component vector of int) -0:41 textureGather (global 4-component vector of int) +0:41 textureGather (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isamplerCube) 0:41 'g_tTexcdi4' (uniform itextureCube) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval42' (temp 4-component vector of uint) -0:42 textureGather (global 4-component vector of uint) +0:42 textureGather (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usamplerCube) 0:42 'g_tTexcdu4' (uniform utextureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -209,8 +209,8 @@ gl_FragCoord origin is upper left 0:45 1 (const int) 0:45 Constant: 0:45 1.000000 -0:? Sequence -0:? Sequence +0:47 Sequence +0:47 Sequence 0:47 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) @@ -225,6 +225,8 @@ gl_FragCoord origin is upper left 0:47 1 (const int) 0:47 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -240,8 +242,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.basic.dx10.vert.out b/Test/baseResults/hlsl.gather.basic.dx10.vert.out index 1f01fc3e68f386723de9e99c6ffac680237e6a72..a8936753d30f0bd395a4c9964ff55b59551db904 100644 --- a/Test/baseResults/hlsl.gather.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.gather.basic.dx10.vert.out @@ -1,13 +1,13 @@ hlsl.gather.basic.dx10.vert Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval20' (temp 4-component vector of float) -0:33 textureGather (global 4-component vector of float) +0:33 textureGather (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -17,7 +17,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval21' (temp 4-component vector of int) -0:34 textureGather (global 4-component vector of int) +0:34 textureGather (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -27,7 +27,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval22' (temp 4-component vector of uint) -0:35 textureGather (global 4-component vector of uint) +0:35 textureGather (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -37,7 +37,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval40' (temp 4-component vector of float) -0:39 textureGather (global 4-component vector of float) +0:39 textureGather (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp samplerCube) 0:39 'g_tTexcdf4' (uniform textureCube) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -48,7 +48,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval41' (temp 4-component vector of int) -0:40 textureGather (global 4-component vector of int) +0:40 textureGather (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isamplerCube) 0:40 'g_tTexcdi4' (uniform itextureCube) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -59,7 +59,7 @@ Shader version: 450 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval42' (temp 4-component vector of uint) -0:41 textureGather (global 4-component vector of uint) +0:41 textureGather (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usamplerCube) 0:41 'g_tTexcdu4' (uniform utextureCube) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,8 +77,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:45 Sequence +0:45 Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:45 Pos: direct index for structure (temp 4-component vector of float) @@ -87,6 +87,7 @@ Shader version: 450 0:45 0 (const int) 0:45 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -102,7 +103,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -110,13 +110,13 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval20' (temp 4-component vector of float) -0:33 textureGather (global 4-component vector of float) +0:33 textureGather (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -126,7 +126,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval21' (temp 4-component vector of int) -0:34 textureGather (global 4-component vector of int) +0:34 textureGather (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -136,7 +136,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval22' (temp 4-component vector of uint) -0:35 textureGather (global 4-component vector of uint) +0:35 textureGather (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -146,7 +146,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval40' (temp 4-component vector of float) -0:39 textureGather (global 4-component vector of float) +0:39 textureGather (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp samplerCube) 0:39 'g_tTexcdf4' (uniform textureCube) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -157,7 +157,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval41' (temp 4-component vector of int) -0:40 textureGather (global 4-component vector of int) +0:40 textureGather (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isamplerCube) 0:40 'g_tTexcdi4' (uniform itextureCube) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -168,7 +168,7 @@ Shader version: 450 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval42' (temp 4-component vector of uint) -0:41 textureGather (global 4-component vector of uint) +0:41 textureGather (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usamplerCube) 0:41 'g_tTexcdu4' (uniform utextureCube) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -186,8 +186,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:45 Sequence +0:45 Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:45 Pos: direct index for structure (temp 4-component vector of float) @@ -196,6 +196,7 @@ Shader version: 450 0:45 0 (const int) 0:45 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -211,7 +212,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.offset.dx10.frag.out b/Test/baseResults/hlsl.gather.offset.dx10.frag.out index ac317915af3e715e1e26bca1b9f37b3aa0ecdd4b..5b48bf323bd0c633216920d19d933e52a62c6f55 100644 --- a/Test/baseResults/hlsl.gather.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offset.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.gather.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval20' (temp 4-component vector of float) -0:33 textureGatherOffset (global 4-component vector of float) +0:33 textureGatherOffset (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval21' (temp 4-component vector of int) -0:34 textureGatherOffset (global 4-component vector of int) +0:34 textureGatherOffset (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval22' (temp 4-component vector of uint) -0:35 textureGatherOffset (global 4-component vector of uint) +0:35 textureGatherOffset (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -61,8 +61,8 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -77,6 +77,8 @@ gl_FragCoord origin is upper left 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -91,8 +93,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -101,13 +101,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval20' (temp 4-component vector of float) -0:33 textureGatherOffset (global 4-component vector of float) +0:33 textureGatherOffset (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2D) 0:33 'g_tTex2df4' (uniform texture2D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -120,7 +120,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval21' (temp 4-component vector of int) -0:34 textureGatherOffset (global 4-component vector of int) +0:34 textureGatherOffset (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2D) 0:34 'g_tTex2di4' (uniform itexture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval22' (temp 4-component vector of uint) -0:35 textureGatherOffset (global 4-component vector of uint) +0:35 textureGatherOffset (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2D) 0:35 'g_tTex2du4' (uniform utexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -160,8 +160,8 @@ gl_FragCoord origin is upper left 0:41 1 (const int) 0:41 Constant: 0:41 1.000000 -0:? Sequence -0:? Sequence +0:43 Sequence +0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:43 Color: direct index for structure (temp 4-component vector of float) @@ -176,6 +176,8 @@ gl_FragCoord origin is upper left 0:43 1 (const int) 0:43 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -190,8 +192,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out index bf8f382277e1a3a47dc4591cede1a252246d8c8e..a7589cd9b06ff3d4505537d5326cb88fb1c0ce4b 100644 --- a/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gather.offsetarray.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.gather.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of float) 0:25 'txval20' (temp 4-component vector of float) -0:25 textureGatherOffset (global 4-component vector of float) +0:25 textureGatherOffset (temp 4-component vector of float) 0:25 Construct combined texture-sampler (temp sampler2DArray) 0:25 'g_tTex2df4' (uniform texture2DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:26 Sequence 0:26 move second child to first child (temp 4-component vector of int) 0:26 'txval21' (temp 4-component vector of int) -0:26 textureGatherOffset (global 4-component vector of int) +0:26 textureGatherOffset (temp 4-component vector of int) 0:26 Construct combined texture-sampler (temp isampler2DArray) 0:26 'g_tTex2di4' (uniform itexture2DArray) 0:26 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of uint) 0:27 'txval22' (temp 4-component vector of uint) -0:27 textureGatherOffset (global 4-component vector of uint) +0:27 textureGatherOffset (temp 4-component vector of uint) 0:27 Construct combined texture-sampler (temp usampler2DArray) 0:27 'g_tTex2du4' (uniform utexture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -64,8 +64,8 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:? Sequence -0:? Sequence +0:35 Sequence +0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:35 Color: direct index for structure (temp 4-component vector of float) @@ -80,6 +80,8 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -88,8 +90,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -98,13 +98,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of float) 0:25 'txval20' (temp 4-component vector of float) -0:25 textureGatherOffset (global 4-component vector of float) +0:25 textureGatherOffset (temp 4-component vector of float) 0:25 Construct combined texture-sampler (temp sampler2DArray) 0:25 'g_tTex2df4' (uniform texture2DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -118,7 +118,7 @@ gl_FragCoord origin is upper left 0:26 Sequence 0:26 move second child to first child (temp 4-component vector of int) 0:26 'txval21' (temp 4-component vector of int) -0:26 textureGatherOffset (global 4-component vector of int) +0:26 textureGatherOffset (temp 4-component vector of int) 0:26 Construct combined texture-sampler (temp isampler2DArray) 0:26 'g_tTex2di4' (uniform itexture2DArray) 0:26 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -132,7 +132,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of uint) 0:27 'txval22' (temp 4-component vector of uint) -0:27 textureGatherOffset (global 4-component vector of uint) +0:27 textureGatherOffset (temp 4-component vector of uint) 0:27 Construct combined texture-sampler (temp usampler2DArray) 0:27 'g_tTex2du4' (uniform utexture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -160,8 +160,8 @@ gl_FragCoord origin is upper left 0:33 1 (const int) 0:33 Constant: 0:33 1.000000 -0:? Sequence -0:? Sequence +0:35 Sequence +0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:35 Color: direct index for structure (temp 4-component vector of float) @@ -176,6 +176,8 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -184,8 +186,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out index 026fd1b74509a3b51653d504c3fa1aff19f222fa..b04a857336fbdfd6c82b623800c4732825293daa 100644 --- a/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.array.dx10.frag.out @@ -2,247 +2,319 @@ hlsl.gatherRGBA.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval00' (temp 4-component vector of float) -0:33 textureGather (global 4-component vector of float) +0:33 textureGather (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2DArray) 0:33 'g_tTex2df4a' (uniform texture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:33 'c3' (uniform 3-component vector of float) +0:33 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:33 Constant: +0:33 2 (const uint) 0:33 Constant: 0:33 0 (const int) 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval01' (temp 4-component vector of int) -0:34 textureGather (global 4-component vector of int) +0:34 textureGather (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2DArray) 0:34 'g_tTex2di4a' (uniform itexture2DArray) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:34 'c3' (uniform 3-component vector of float) +0:34 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:34 Constant: +0:34 2 (const uint) 0:34 Constant: 0:34 0 (const int) 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval02' (temp 4-component vector of uint) -0:35 textureGather (global 4-component vector of uint) +0:35 textureGather (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2DArray) 0:35 'g_tTex2du4a' (uniform utexture2DArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:35 'c3' (uniform 3-component vector of float) +0:35 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:35 Constant: +0:35 2 (const uint) 0:35 Constant: 0:35 0 (const int) 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of float) 0:37 'txval10' (temp 4-component vector of float) -0:37 textureGather (global 4-component vector of float) +0:37 textureGather (temp 4-component vector of float) 0:37 Construct combined texture-sampler (temp sampler2DArray) 0:37 'g_tTex2df4a' (uniform texture2DArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:37 'c3' (uniform 3-component vector of float) +0:37 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:37 Constant: +0:37 2 (const uint) 0:37 Constant: 0:37 1 (const int) 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of int) 0:38 'txval11' (temp 4-component vector of int) -0:38 textureGather (global 4-component vector of int) +0:38 textureGather (temp 4-component vector of int) 0:38 Construct combined texture-sampler (temp isampler2DArray) 0:38 'g_tTex2di4a' (uniform itexture2DArray) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:38 'c3' (uniform 3-component vector of float) +0:38 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:38 Constant: +0:38 2 (const uint) 0:38 Constant: 0:38 1 (const int) 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of uint) 0:39 'txval12' (temp 4-component vector of uint) -0:39 textureGather (global 4-component vector of uint) +0:39 textureGather (temp 4-component vector of uint) 0:39 Construct combined texture-sampler (temp usampler2DArray) 0:39 'g_tTex2du4a' (uniform utexture2DArray) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:39 'c3' (uniform 3-component vector of float) +0:39 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 2 (const uint) 0:39 Constant: 0:39 1 (const int) 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of float) 0:41 'txval20' (temp 4-component vector of float) -0:41 textureGather (global 4-component vector of float) +0:41 textureGather (temp 4-component vector of float) 0:41 Construct combined texture-sampler (temp sampler2DArray) 0:41 'g_tTex2df4a' (uniform texture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c3' (uniform 3-component vector of float) +0:41 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 2 (const uint) 0:41 Constant: 0:41 2 (const int) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of int) 0:42 'txval21' (temp 4-component vector of int) -0:42 textureGather (global 4-component vector of int) +0:42 textureGather (temp 4-component vector of int) 0:42 Construct combined texture-sampler (temp isampler2DArray) 0:42 'g_tTex2di4a' (uniform itexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 'c3' (uniform 3-component vector of float) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:42 Constant: +0:42 2 (const uint) 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of uint) 0:43 'txval22' (temp 4-component vector of uint) -0:43 textureGather (global 4-component vector of uint) +0:43 textureGather (temp 4-component vector of uint) 0:43 Construct combined texture-sampler (temp usampler2DArray) 0:43 'g_tTex2du4a' (uniform utexture2DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 'c3' (uniform 3-component vector of float) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 2 (const uint) 0:43 Constant: 0:43 2 (const int) 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:45 'txval30' (temp 4-component vector of float) -0:45 textureGather (global 4-component vector of float) +0:45 textureGather (temp 4-component vector of float) 0:45 Construct combined texture-sampler (temp sampler2DArray) 0:45 'g_tTex2df4a' (uniform texture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c3' (uniform 3-component vector of float) +0:45 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 2 (const uint) 0:45 Constant: 0:45 3 (const int) 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of int) 0:46 'txval31' (temp 4-component vector of int) -0:46 textureGather (global 4-component vector of int) +0:46 textureGather (temp 4-component vector of int) 0:46 Construct combined texture-sampler (temp isampler2DArray) 0:46 'g_tTex2di4a' (uniform itexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c3' (uniform 3-component vector of float) +0:46 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:46 Constant: +0:46 2 (const uint) 0:46 Constant: 0:46 3 (const int) 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of uint) 0:47 'txval32' (temp 4-component vector of uint) -0:47 textureGather (global 4-component vector of uint) +0:47 textureGather (temp 4-component vector of uint) 0:47 Construct combined texture-sampler (temp usampler2DArray) 0:47 'g_tTex2du4a' (uniform utexture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c3' (uniform 3-component vector of float) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:51 'txval40' (temp 4-component vector of float) -0:51 textureGather (global 4-component vector of float) +0:51 textureGather (temp 4-component vector of float) 0:51 Construct combined texture-sampler (temp samplerCubeArray) 0:51 'g_tTexcdf4a' (uniform textureCubeArray) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c4' (uniform 4-component vector of float) +0:51 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 3 (const uint) 0:51 Constant: 0:51 0 (const int) 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of int) 0:52 'txval41' (temp 4-component vector of int) -0:52 textureGather (global 4-component vector of int) +0:52 textureGather (temp 4-component vector of int) 0:52 Construct combined texture-sampler (temp isamplerCubeArray) 0:52 'g_tTexcdi4a' (uniform itextureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c4' (uniform 4-component vector of float) +0:52 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 3 (const uint) 0:52 Constant: 0:52 0 (const int) 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of uint) 0:53 'txval42' (temp 4-component vector of uint) -0:53 textureGather (global 4-component vector of uint) +0:53 textureGather (temp 4-component vector of uint) 0:53 Construct combined texture-sampler (temp usamplerCubeArray) 0:53 'g_tTexcdu4a' (uniform utextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 'c4' (uniform 4-component vector of float) +0:53 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 3 (const uint) 0:53 Constant: 0:53 0 (const int) 0:55 Sequence 0:55 move second child to first child (temp 4-component vector of float) 0:55 'txval50' (temp 4-component vector of float) -0:55 textureGather (global 4-component vector of float) +0:55 textureGather (temp 4-component vector of float) 0:55 Construct combined texture-sampler (temp samplerCubeArray) 0:55 'g_tTexcdf4a' (uniform textureCubeArray) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 'c4' (uniform 4-component vector of float) +0:55 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:55 Constant: +0:55 3 (const uint) 0:55 Constant: 0:55 1 (const int) 0:56 Sequence 0:56 move second child to first child (temp 4-component vector of int) 0:56 'txval51' (temp 4-component vector of int) -0:56 textureGather (global 4-component vector of int) +0:56 textureGather (temp 4-component vector of int) 0:56 Construct combined texture-sampler (temp isamplerCubeArray) 0:56 'g_tTexcdi4a' (uniform itextureCubeArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:56 'c4' (uniform 4-component vector of float) +0:56 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:56 Constant: +0:56 3 (const uint) 0:56 Constant: 0:56 1 (const int) 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of uint) 0:57 'txval52' (temp 4-component vector of uint) -0:57 textureGather (global 4-component vector of uint) +0:57 textureGather (temp 4-component vector of uint) 0:57 Construct combined texture-sampler (temp usamplerCubeArray) 0:57 'g_tTexcdu4a' (uniform utextureCubeArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c4' (uniform 4-component vector of float) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 1 (const int) 0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:59 'txval60' (temp 4-component vector of float) -0:59 textureGather (global 4-component vector of float) +0:59 textureGather (temp 4-component vector of float) 0:59 Construct combined texture-sampler (temp samplerCubeArray) 0:59 'g_tTexcdf4a' (uniform textureCubeArray) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:59 'c4' (uniform 4-component vector of float) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 2 (const int) 0:60 Sequence 0:60 move second child to first child (temp 4-component vector of int) 0:60 'txval61' (temp 4-component vector of int) -0:60 textureGather (global 4-component vector of int) +0:60 textureGather (temp 4-component vector of int) 0:60 Construct combined texture-sampler (temp isamplerCubeArray) 0:60 'g_tTexcdi4a' (uniform itextureCubeArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:60 'c4' (uniform 4-component vector of float) +0:60 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:60 Constant: +0:60 3 (const uint) 0:60 Constant: 0:60 2 (const int) 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of uint) 0:61 'txval62' (temp 4-component vector of uint) -0:61 textureGather (global 4-component vector of uint) +0:61 textureGather (temp 4-component vector of uint) 0:61 Construct combined texture-sampler (temp usamplerCubeArray) 0:61 'g_tTexcdu4a' (uniform utextureCubeArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c4' (uniform 4-component vector of float) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Constant: 0:61 2 (const int) 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of float) 0:63 'txval70' (temp 4-component vector of float) -0:63 textureGather (global 4-component vector of float) +0:63 textureGather (temp 4-component vector of float) 0:63 Construct combined texture-sampler (temp samplerCubeArray) 0:63 'g_tTexcdf4a' (uniform textureCubeArray) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c4' (uniform 4-component vector of float) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:64 Sequence 0:64 move second child to first child (temp 4-component vector of int) 0:64 'txval71' (temp 4-component vector of int) -0:64 textureGather (global 4-component vector of int) +0:64 textureGather (temp 4-component vector of int) 0:64 Construct combined texture-sampler (temp isamplerCubeArray) 0:64 'g_tTexcdi4a' (uniform itextureCubeArray) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:64 'c4' (uniform 4-component vector of float) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:65 Sequence 0:65 move second child to first child (temp 4-component vector of uint) 0:65 'txval72' (temp 4-component vector of uint) -0:65 textureGather (global 4-component vector of uint) +0:65 textureGather (temp 4-component vector of uint) 0:65 Construct combined texture-sampler (temp usamplerCubeArray) 0:65 'g_tTexcdu4a' (uniform utextureCubeArray) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:65 'c4' (uniform 4-component vector of float) +0:65 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 3 (const uint) 0:65 Constant: 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -262,8 +334,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:? Sequence -0:? Sequence +0:70 Sequence +0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) @@ -278,6 +350,8 @@ gl_FragCoord origin is upper left 0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) @@ -289,12 +363,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) Linked fragment stage: @@ -303,247 +372,319 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of float) 0:33 'txval00' (temp 4-component vector of float) -0:33 textureGather (global 4-component vector of float) +0:33 textureGather (temp 4-component vector of float) 0:33 Construct combined texture-sampler (temp sampler2DArray) 0:33 'g_tTex2df4a' (uniform texture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:33 'c3' (uniform 3-component vector of float) +0:33 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:33 Constant: +0:33 2 (const uint) 0:33 Constant: 0:33 0 (const int) 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of int) 0:34 'txval01' (temp 4-component vector of int) -0:34 textureGather (global 4-component vector of int) +0:34 textureGather (temp 4-component vector of int) 0:34 Construct combined texture-sampler (temp isampler2DArray) 0:34 'g_tTex2di4a' (uniform itexture2DArray) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:34 'c3' (uniform 3-component vector of float) +0:34 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:34 Constant: +0:34 2 (const uint) 0:34 Constant: 0:34 0 (const int) 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of uint) 0:35 'txval02' (temp 4-component vector of uint) -0:35 textureGather (global 4-component vector of uint) +0:35 textureGather (temp 4-component vector of uint) 0:35 Construct combined texture-sampler (temp usampler2DArray) 0:35 'g_tTex2du4a' (uniform utexture2DArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:35 'c3' (uniform 3-component vector of float) +0:35 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:35 Constant: +0:35 2 (const uint) 0:35 Constant: 0:35 0 (const int) 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of float) 0:37 'txval10' (temp 4-component vector of float) -0:37 textureGather (global 4-component vector of float) +0:37 textureGather (temp 4-component vector of float) 0:37 Construct combined texture-sampler (temp sampler2DArray) 0:37 'g_tTex2df4a' (uniform texture2DArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:37 'c3' (uniform 3-component vector of float) +0:37 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:37 Constant: +0:37 2 (const uint) 0:37 Constant: 0:37 1 (const int) 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of int) 0:38 'txval11' (temp 4-component vector of int) -0:38 textureGather (global 4-component vector of int) +0:38 textureGather (temp 4-component vector of int) 0:38 Construct combined texture-sampler (temp isampler2DArray) 0:38 'g_tTex2di4a' (uniform itexture2DArray) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:38 'c3' (uniform 3-component vector of float) +0:38 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:38 Constant: +0:38 2 (const uint) 0:38 Constant: 0:38 1 (const int) 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of uint) 0:39 'txval12' (temp 4-component vector of uint) -0:39 textureGather (global 4-component vector of uint) +0:39 textureGather (temp 4-component vector of uint) 0:39 Construct combined texture-sampler (temp usampler2DArray) 0:39 'g_tTex2du4a' (uniform utexture2DArray) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:39 'c3' (uniform 3-component vector of float) +0:39 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 2 (const uint) 0:39 Constant: 0:39 1 (const int) 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of float) 0:41 'txval20' (temp 4-component vector of float) -0:41 textureGather (global 4-component vector of float) +0:41 textureGather (temp 4-component vector of float) 0:41 Construct combined texture-sampler (temp sampler2DArray) 0:41 'g_tTex2df4a' (uniform texture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c3' (uniform 3-component vector of float) +0:41 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 2 (const uint) 0:41 Constant: 0:41 2 (const int) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of int) 0:42 'txval21' (temp 4-component vector of int) -0:42 textureGather (global 4-component vector of int) +0:42 textureGather (temp 4-component vector of int) 0:42 Construct combined texture-sampler (temp isampler2DArray) 0:42 'g_tTex2di4a' (uniform itexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 'c3' (uniform 3-component vector of float) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:42 Constant: +0:42 2 (const uint) 0:42 Constant: 0:42 2 (const int) 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of uint) 0:43 'txval22' (temp 4-component vector of uint) -0:43 textureGather (global 4-component vector of uint) +0:43 textureGather (temp 4-component vector of uint) 0:43 Construct combined texture-sampler (temp usampler2DArray) 0:43 'g_tTex2du4a' (uniform utexture2DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 'c3' (uniform 3-component vector of float) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 2 (const uint) 0:43 Constant: 0:43 2 (const int) 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of float) 0:45 'txval30' (temp 4-component vector of float) -0:45 textureGather (global 4-component vector of float) +0:45 textureGather (temp 4-component vector of float) 0:45 Construct combined texture-sampler (temp sampler2DArray) 0:45 'g_tTex2df4a' (uniform texture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c3' (uniform 3-component vector of float) +0:45 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 2 (const uint) 0:45 Constant: 0:45 3 (const int) 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of int) 0:46 'txval31' (temp 4-component vector of int) -0:46 textureGather (global 4-component vector of int) +0:46 textureGather (temp 4-component vector of int) 0:46 Construct combined texture-sampler (temp isampler2DArray) 0:46 'g_tTex2di4a' (uniform itexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c3' (uniform 3-component vector of float) +0:46 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:46 Constant: +0:46 2 (const uint) 0:46 Constant: 0:46 3 (const int) 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of uint) 0:47 'txval32' (temp 4-component vector of uint) -0:47 textureGather (global 4-component vector of uint) +0:47 textureGather (temp 4-component vector of uint) 0:47 Construct combined texture-sampler (temp usampler2DArray) 0:47 'g_tTex2du4a' (uniform utexture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c3' (uniform 3-component vector of float) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:51 'txval40' (temp 4-component vector of float) -0:51 textureGather (global 4-component vector of float) +0:51 textureGather (temp 4-component vector of float) 0:51 Construct combined texture-sampler (temp samplerCubeArray) 0:51 'g_tTexcdf4a' (uniform textureCubeArray) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c4' (uniform 4-component vector of float) +0:51 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 3 (const uint) 0:51 Constant: 0:51 0 (const int) 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of int) 0:52 'txval41' (temp 4-component vector of int) -0:52 textureGather (global 4-component vector of int) +0:52 textureGather (temp 4-component vector of int) 0:52 Construct combined texture-sampler (temp isamplerCubeArray) 0:52 'g_tTexcdi4a' (uniform itextureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c4' (uniform 4-component vector of float) +0:52 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 3 (const uint) 0:52 Constant: 0:52 0 (const int) 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of uint) 0:53 'txval42' (temp 4-component vector of uint) -0:53 textureGather (global 4-component vector of uint) +0:53 textureGather (temp 4-component vector of uint) 0:53 Construct combined texture-sampler (temp usamplerCubeArray) 0:53 'g_tTexcdu4a' (uniform utextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 'c4' (uniform 4-component vector of float) +0:53 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 3 (const uint) 0:53 Constant: 0:53 0 (const int) 0:55 Sequence 0:55 move second child to first child (temp 4-component vector of float) 0:55 'txval50' (temp 4-component vector of float) -0:55 textureGather (global 4-component vector of float) +0:55 textureGather (temp 4-component vector of float) 0:55 Construct combined texture-sampler (temp samplerCubeArray) 0:55 'g_tTexcdf4a' (uniform textureCubeArray) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 'c4' (uniform 4-component vector of float) +0:55 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:55 Constant: +0:55 3 (const uint) 0:55 Constant: 0:55 1 (const int) 0:56 Sequence 0:56 move second child to first child (temp 4-component vector of int) 0:56 'txval51' (temp 4-component vector of int) -0:56 textureGather (global 4-component vector of int) +0:56 textureGather (temp 4-component vector of int) 0:56 Construct combined texture-sampler (temp isamplerCubeArray) 0:56 'g_tTexcdi4a' (uniform itextureCubeArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:56 'c4' (uniform 4-component vector of float) +0:56 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:56 Constant: +0:56 3 (const uint) 0:56 Constant: 0:56 1 (const int) 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of uint) 0:57 'txval52' (temp 4-component vector of uint) -0:57 textureGather (global 4-component vector of uint) +0:57 textureGather (temp 4-component vector of uint) 0:57 Construct combined texture-sampler (temp usamplerCubeArray) 0:57 'g_tTexcdu4a' (uniform utextureCubeArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c4' (uniform 4-component vector of float) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 1 (const int) 0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:59 'txval60' (temp 4-component vector of float) -0:59 textureGather (global 4-component vector of float) +0:59 textureGather (temp 4-component vector of float) 0:59 Construct combined texture-sampler (temp samplerCubeArray) 0:59 'g_tTexcdf4a' (uniform textureCubeArray) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:59 'c4' (uniform 4-component vector of float) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 2 (const int) 0:60 Sequence 0:60 move second child to first child (temp 4-component vector of int) 0:60 'txval61' (temp 4-component vector of int) -0:60 textureGather (global 4-component vector of int) +0:60 textureGather (temp 4-component vector of int) 0:60 Construct combined texture-sampler (temp isamplerCubeArray) 0:60 'g_tTexcdi4a' (uniform itextureCubeArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:60 'c4' (uniform 4-component vector of float) +0:60 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:60 Constant: +0:60 3 (const uint) 0:60 Constant: 0:60 2 (const int) 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of uint) 0:61 'txval62' (temp 4-component vector of uint) -0:61 textureGather (global 4-component vector of uint) +0:61 textureGather (temp 4-component vector of uint) 0:61 Construct combined texture-sampler (temp usamplerCubeArray) 0:61 'g_tTexcdu4a' (uniform utextureCubeArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c4' (uniform 4-component vector of float) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Constant: 0:61 2 (const int) 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of float) 0:63 'txval70' (temp 4-component vector of float) -0:63 textureGather (global 4-component vector of float) +0:63 textureGather (temp 4-component vector of float) 0:63 Construct combined texture-sampler (temp samplerCubeArray) 0:63 'g_tTexcdf4a' (uniform textureCubeArray) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c4' (uniform 4-component vector of float) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:64 Sequence 0:64 move second child to first child (temp 4-component vector of int) 0:64 'txval71' (temp 4-component vector of int) -0:64 textureGather (global 4-component vector of int) +0:64 textureGather (temp 4-component vector of int) 0:64 Construct combined texture-sampler (temp isamplerCubeArray) 0:64 'g_tTexcdi4a' (uniform itextureCubeArray) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:64 'c4' (uniform 4-component vector of float) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:65 Sequence 0:65 move second child to first child (temp 4-component vector of uint) 0:65 'txval72' (temp 4-component vector of uint) -0:65 textureGather (global 4-component vector of uint) +0:65 textureGather (temp 4-component vector of uint) 0:65 Construct combined texture-sampler (temp usamplerCubeArray) 0:65 'g_tTexcdu4a' (uniform utextureCubeArray) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:65 'c4' (uniform 4-component vector of float) +0:65 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 3 (const uint) 0:65 Constant: 0:65 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -563,8 +704,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:? Sequence -0:? Sequence +0:70 Sequence +0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) @@ -579,6 +720,8 @@ gl_FragCoord origin is upper left 0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) @@ -590,85 +733,88 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 227 +// Id's are bound by 248 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 204 208 + EntryPoint Fragment 4 "main" 230 234 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" Name 12 "g_tTex2df4a" Name 16 "g_sSamp" - Name 22 "c3" - Name 29 "txval01" - Name 32 "g_tTex2di4a" - Name 42 "txval02" - Name 45 "g_tTex2du4a" - Name 52 "txval10" - Name 59 "txval11" - Name 65 "txval12" - Name 71 "txval20" - Name 78 "txval21" - Name 84 "txval22" - Name 90 "txval30" - Name 97 "txval31" - Name 103 "txval32" - Name 109 "txval40" - Name 112 "g_tTexcdf4a" - Name 118 "c4" - Name 121 "txval41" - Name 124 "g_tTexcdi4a" - Name 131 "txval42" - Name 134 "g_tTexcdu4a" - Name 141 "txval50" - Name 147 "txval51" - Name 153 "txval52" - Name 159 "txval60" - Name 165 "txval61" - Name 171 "txval62" - Name 177 "txval70" - Name 183 "txval71" - Name 189 "txval72" - Name 195 "PS_OUTPUT" - MemberName 195(PS_OUTPUT) 0 "Color" - MemberName 195(PS_OUTPUT) 1 "Depth" - Name 197 "psout" - Name 204 "Color" - Name 208 "Depth" - Name 212 "g_sSamp2d" - Name 215 "g_tTex1df4a" - Name 218 "g_tTex1di4a" - Name 221 "g_tTex1du4a" - Name 223 "c1" - Name 226 "c2" + Name 22 "$Global" + MemberName 22($Global) 0 "c1" + MemberName 22($Global) 1 "c2" + MemberName 22($Global) 2 "c3" + MemberName 22($Global) 3 "c4" + Name 24 "" + Name 34 "txval01" + Name 37 "g_tTex2di4a" + Name 48 "txval02" + Name 51 "g_tTex2du4a" + Name 59 "txval10" + Name 67 "txval11" + Name 74 "txval12" + Name 81 "txval20" + Name 88 "txval21" + Name 95 "txval22" + Name 102 "txval30" + Name 110 "txval31" + Name 117 "txval32" + Name 124 "txval40" + Name 127 "g_tTexcdf4a" + Name 136 "txval41" + Name 139 "g_tTexcdi4a" + Name 147 "txval42" + Name 150 "g_tTexcdu4a" + Name 158 "txval50" + Name 165 "txval51" + Name 172 "txval52" + Name 179 "txval60" + Name 186 "txval61" + Name 193 "txval62" + Name 200 "txval70" + Name 207 "txval71" + Name 214 "txval72" + Name 221 "PS_OUTPUT" + MemberName 221(PS_OUTPUT) 0 "Color" + MemberName 221(PS_OUTPUT) 1 "Depth" + Name 223 "psout" + Name 230 "Color" + Name 234 "Depth" + Name 238 "g_sSamp2d" + Name 241 "g_tTex1df4a" + Name 244 "g_tTex1di4a" + Name 247 "g_tTex1du4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex2di4a) DescriptorSet 0 - Decorate 45(g_tTex2du4a) DescriptorSet 0 - Decorate 112(g_tTexcdf4a) DescriptorSet 0 - Decorate 124(g_tTexcdi4a) DescriptorSet 0 - Decorate 134(g_tTexcdu4a) DescriptorSet 0 - Decorate 204(Color) Location 0 - Decorate 208(Depth) BuiltIn FragDepth - Decorate 212(g_sSamp2d) DescriptorSet 0 - Decorate 215(g_tTex1df4a) DescriptorSet 0 - Decorate 215(g_tTex1df4a) Binding 0 - Decorate 218(g_tTex1di4a) DescriptorSet 0 - Decorate 221(g_tTex1du4a) DescriptorSet 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 8 + MemberDecorate 22($Global) 2 Offset 16 + MemberDecorate 22($Global) 3 Offset 32 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 37(g_tTex2di4a) DescriptorSet 0 + Decorate 51(g_tTex2du4a) DescriptorSet 0 + Decorate 127(g_tTexcdf4a) DescriptorSet 0 + Decorate 139(g_tTexcdi4a) DescriptorSet 0 + Decorate 150(g_tTexcdu4a) DescriptorSet 0 + Decorate 230(Color) Location 0 + Decorate 234(Depth) BuiltIn FragDepth + Decorate 238(g_sSamp2d) DescriptorSet 0 + Decorate 241(g_tTex1df4a) DescriptorSet 0 + Decorate 241(g_tTex1df4a) Binding 0 + Decorate 244(g_tTex1di4a) DescriptorSet 0 + Decorate 247(g_tTex1du4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -681,245 +827,266 @@ gl_FragCoord origin is upper left 15: TypePointer UniformConstant 14 16(g_sSamp): 15(ptr) Variable UniformConstant 18: TypeSampledImage 10 - 20: TypeVector 6(float) 3 - 21: TypePointer UniformConstant 20(fvec3) - 22(c3): 21(ptr) Variable UniformConstant - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 27: TypeVector 24(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 24(int) 2D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex2di4a): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 39: TypeInt 32 0 - 40: TypeVector 39(int) 4 - 41: TypePointer Function 40(ivec4) - 43: TypeImage 39(int) 2D array sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex2du4a): 44(ptr) Variable UniformConstant - 48: TypeSampledImage 43 - 57: 24(int) Constant 1 - 76: 24(int) Constant 2 - 95: 24(int) Constant 3 - 110: TypeImage 6(float) Cube array sampled format:Unknown - 111: TypePointer UniformConstant 110 -112(g_tTexcdf4a): 111(ptr) Variable UniformConstant - 115: TypeSampledImage 110 - 117: TypePointer UniformConstant 7(fvec4) - 118(c4): 117(ptr) Variable UniformConstant - 122: TypeImage 24(int) Cube array sampled format:Unknown - 123: TypePointer UniformConstant 122 -124(g_tTexcdi4a): 123(ptr) Variable UniformConstant - 127: TypeSampledImage 122 - 132: TypeImage 39(int) Cube array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTexcdu4a): 133(ptr) Variable UniformConstant - 137: TypeSampledImage 132 - 195(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 196: TypePointer Function 195(PS_OUTPUT) - 198: 6(float) Constant 1065353216 - 199: 7(fvec4) ConstantComposite 198 198 198 198 - 201: TypePointer Function 6(float) - 203: TypePointer Output 7(fvec4) - 204(Color): 203(ptr) Variable Output - 207: TypePointer Output 6(float) - 208(Depth): 207(ptr) Variable Output - 212(g_sSamp2d): 15(ptr) Variable UniformConstant - 213: TypeImage 6(float) 1D array sampled format:Unknown - 214: TypePointer UniformConstant 213 -215(g_tTex1df4a): 214(ptr) Variable UniformConstant - 216: TypeImage 24(int) 1D array sampled format:Unknown - 217: TypePointer UniformConstant 216 -218(g_tTex1di4a): 217(ptr) Variable UniformConstant - 219: TypeImage 39(int) 1D array sampled format:Unknown - 220: TypePointer UniformConstant 219 -221(g_tTex1du4a): 220(ptr) Variable UniformConstant - 222: TypePointer UniformConstant 6(float) - 223(c1): 222(ptr) Variable UniformConstant - 224: TypeVector 6(float) 2 - 225: TypePointer UniformConstant 224(fvec2) - 226(c2): 225(ptr) Variable UniformConstant + 20: TypeVector 6(float) 2 + 21: TypeVector 6(float) 3 + 22($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: TypeInt 32 1 + 26: 25(int) Constant 2 + 27: TypePointer Uniform 21(fvec3) + 30: 25(int) Constant 0 + 32: TypeVector 25(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 25(int) 2D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex2di4a): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4a): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 65: 25(int) Constant 1 + 108: 25(int) Constant 3 + 125: TypeImage 6(float) Cube array sampled format:Unknown + 126: TypePointer UniformConstant 125 +127(g_tTexcdf4a): 126(ptr) Variable UniformConstant + 130: TypeSampledImage 125 + 132: TypePointer Uniform 7(fvec4) + 137: TypeImage 25(int) Cube array sampled format:Unknown + 138: TypePointer UniformConstant 137 +139(g_tTexcdi4a): 138(ptr) Variable UniformConstant + 142: TypeSampledImage 137 + 148: TypeImage 45(int) Cube array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTexcdu4a): 149(ptr) Variable UniformConstant + 153: TypeSampledImage 148 + 221(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 222: TypePointer Function 221(PS_OUTPUT) + 224: 6(float) Constant 1065353216 + 225: 7(fvec4) ConstantComposite 224 224 224 224 + 227: TypePointer Function 6(float) + 229: TypePointer Output 7(fvec4) + 230(Color): 229(ptr) Variable Output + 233: TypePointer Output 6(float) + 234(Depth): 233(ptr) Variable Output + 238(g_sSamp2d): 15(ptr) Variable UniformConstant + 239: TypeImage 6(float) 1D array sampled format:Unknown + 240: TypePointer UniformConstant 239 +241(g_tTex1df4a): 240(ptr) Variable UniformConstant + 242: TypeImage 25(int) 1D array sampled format:Unknown + 243: TypePointer UniformConstant 242 +244(g_tTex1di4a): 243(ptr) Variable UniformConstant + 245: TypeImage 45(int) 1D array sampled format:Unknown + 246: TypePointer UniformConstant 245 +247(g_tTex1du4a): 246(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function - 29(txval01): 28(ptr) Variable Function - 42(txval02): 41(ptr) Variable Function - 52(txval10): 8(ptr) Variable Function - 59(txval11): 28(ptr) Variable Function - 65(txval12): 41(ptr) Variable Function - 71(txval20): 8(ptr) Variable Function - 78(txval21): 28(ptr) Variable Function - 84(txval22): 41(ptr) Variable Function - 90(txval30): 8(ptr) Variable Function - 97(txval31): 28(ptr) Variable Function - 103(txval32): 41(ptr) Variable Function - 109(txval40): 8(ptr) Variable Function - 121(txval41): 28(ptr) Variable Function - 131(txval42): 41(ptr) Variable Function - 141(txval50): 8(ptr) Variable Function - 147(txval51): 28(ptr) Variable Function - 153(txval52): 41(ptr) Variable Function - 159(txval60): 8(ptr) Variable Function - 165(txval61): 28(ptr) Variable Function - 171(txval62): 41(ptr) Variable Function - 177(txval70): 8(ptr) Variable Function - 183(txval71): 28(ptr) Variable Function - 189(txval72): 41(ptr) Variable Function - 197(psout): 196(ptr) Variable Function + 34(txval01): 33(ptr) Variable Function + 48(txval02): 47(ptr) Variable Function + 59(txval10): 8(ptr) Variable Function + 67(txval11): 33(ptr) Variable Function + 74(txval12): 47(ptr) Variable Function + 81(txval20): 8(ptr) Variable Function + 88(txval21): 33(ptr) Variable Function + 95(txval22): 47(ptr) Variable Function + 102(txval30): 8(ptr) Variable Function + 110(txval31): 33(ptr) Variable Function + 117(txval32): 47(ptr) Variable Function + 124(txval40): 8(ptr) Variable Function + 136(txval41): 33(ptr) Variable Function + 147(txval42): 47(ptr) Variable Function + 158(txval50): 8(ptr) Variable Function + 165(txval51): 33(ptr) Variable Function + 172(txval52): 47(ptr) Variable Function + 179(txval60): 8(ptr) Variable Function + 186(txval61): 33(ptr) Variable Function + 193(txval62): 47(ptr) Variable Function + 200(txval70): 8(ptr) Variable Function + 207(txval71): 33(ptr) Variable Function + 214(txval72): 47(ptr) Variable Function + 223(psout): 222(ptr) Variable Function 13: 10 Load 12(g_tTex2df4a) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 - 23: 20(fvec3) Load 22(c3) - 26: 7(fvec4) ImageGather 19 23 25 - Store 9(txval00) 26 - 33: 30 Load 32(g_tTex2di4a) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 37: 20(fvec3) Load 22(c3) - 38: 27(ivec4) ImageGather 36 37 25 - Store 29(txval01) 38 - 46: 43 Load 45(g_tTex2du4a) - 47: 14 Load 16(g_sSamp) - 49: 48 SampledImage 46 47 - 50: 20(fvec3) Load 22(c3) - 51: 40(ivec4) ImageGather 49 50 25 - Store 42(txval02) 51 - 53: 10 Load 12(g_tTex2df4a) - 54: 14 Load 16(g_sSamp) - 55: 18 SampledImage 53 54 - 56: 20(fvec3) Load 22(c3) - 58: 7(fvec4) ImageGather 55 56 57 - Store 52(txval10) 58 - 60: 30 Load 32(g_tTex2di4a) + 28: 27(ptr) AccessChain 24 26 + 29: 21(fvec3) Load 28 + 31: 7(fvec4) ImageGather 19 29 30 + Store 9(txval00) 31 + 38: 35 Load 37(g_tTex2di4a) + 39: 14 Load 16(g_sSamp) + 41: 40 SampledImage 38 39 + 42: 27(ptr) AccessChain 24 26 + 43: 21(fvec3) Load 42 + 44: 32(ivec4) ImageGather 41 43 30 + Store 34(txval01) 44 + 52: 49 Load 51(g_tTex2du4a) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 56: 27(ptr) AccessChain 24 26 + 57: 21(fvec3) Load 56 + 58: 46(ivec4) ImageGather 55 57 30 + Store 48(txval02) 58 + 60: 10 Load 12(g_tTex2df4a) 61: 14 Load 16(g_sSamp) - 62: 35 SampledImage 60 61 - 63: 20(fvec3) Load 22(c3) - 64: 27(ivec4) ImageGather 62 63 57 - Store 59(txval11) 64 - 66: 43 Load 45(g_tTex2du4a) - 67: 14 Load 16(g_sSamp) - 68: 48 SampledImage 66 67 - 69: 20(fvec3) Load 22(c3) - 70: 40(ivec4) ImageGather 68 69 57 - Store 65(txval12) 70 - 72: 10 Load 12(g_tTex2df4a) - 73: 14 Load 16(g_sSamp) - 74: 18 SampledImage 72 73 - 75: 20(fvec3) Load 22(c3) - 77: 7(fvec4) ImageGather 74 75 76 - Store 71(txval20) 77 - 79: 30 Load 32(g_tTex2di4a) - 80: 14 Load 16(g_sSamp) - 81: 35 SampledImage 79 80 - 82: 20(fvec3) Load 22(c3) - 83: 27(ivec4) ImageGather 81 82 76 - Store 78(txval21) 83 - 85: 43 Load 45(g_tTex2du4a) - 86: 14 Load 16(g_sSamp) - 87: 48 SampledImage 85 86 - 88: 20(fvec3) Load 22(c3) - 89: 40(ivec4) ImageGather 87 88 76 - Store 84(txval22) 89 - 91: 10 Load 12(g_tTex2df4a) - 92: 14 Load 16(g_sSamp) - 93: 18 SampledImage 91 92 - 94: 20(fvec3) Load 22(c3) - 96: 7(fvec4) ImageGather 93 94 95 - Store 90(txval30) 96 - 98: 30 Load 32(g_tTex2di4a) - 99: 14 Load 16(g_sSamp) - 100: 35 SampledImage 98 99 - 101: 20(fvec3) Load 22(c3) - 102: 27(ivec4) ImageGather 100 101 95 - Store 97(txval31) 102 - 104: 43 Load 45(g_tTex2du4a) - 105: 14 Load 16(g_sSamp) - 106: 48 SampledImage 104 105 - 107: 20(fvec3) Load 22(c3) - 108: 40(ivec4) ImageGather 106 107 95 - Store 103(txval32) 108 - 113: 110 Load 112(g_tTexcdf4a) - 114: 14 Load 16(g_sSamp) - 116: 115 SampledImage 113 114 - 119: 7(fvec4) Load 118(c4) - 120: 7(fvec4) ImageGather 116 119 25 - Store 109(txval40) 120 - 125: 122 Load 124(g_tTexcdi4a) - 126: 14 Load 16(g_sSamp) - 128: 127 SampledImage 125 126 - 129: 7(fvec4) Load 118(c4) - 130: 27(ivec4) ImageGather 128 129 25 - Store 121(txval41) 130 - 135: 132 Load 134(g_tTexcdu4a) - 136: 14 Load 16(g_sSamp) - 138: 137 SampledImage 135 136 - 139: 7(fvec4) Load 118(c4) - 140: 40(ivec4) ImageGather 138 139 25 - Store 131(txval42) 140 - 142: 110 Load 112(g_tTexcdf4a) - 143: 14 Load 16(g_sSamp) - 144: 115 SampledImage 142 143 - 145: 7(fvec4) Load 118(c4) - 146: 7(fvec4) ImageGather 144 145 57 - Store 141(txval50) 146 - 148: 122 Load 124(g_tTexcdi4a) - 149: 14 Load 16(g_sSamp) - 150: 127 SampledImage 148 149 - 151: 7(fvec4) Load 118(c4) - 152: 27(ivec4) ImageGather 150 151 57 - Store 147(txval51) 152 - 154: 132 Load 134(g_tTexcdu4a) - 155: 14 Load 16(g_sSamp) - 156: 137 SampledImage 154 155 - 157: 7(fvec4) Load 118(c4) - 158: 40(ivec4) ImageGather 156 157 57 - Store 153(txval52) 158 - 160: 110 Load 112(g_tTexcdf4a) - 161: 14 Load 16(g_sSamp) - 162: 115 SampledImage 160 161 - 163: 7(fvec4) Load 118(c4) - 164: 7(fvec4) ImageGather 162 163 76 - Store 159(txval60) 164 - 166: 122 Load 124(g_tTexcdi4a) + 62: 18 SampledImage 60 61 + 63: 27(ptr) AccessChain 24 26 + 64: 21(fvec3) Load 63 + 66: 7(fvec4) ImageGather 62 64 65 + Store 59(txval10) 66 + 68: 35 Load 37(g_tTex2di4a) + 69: 14 Load 16(g_sSamp) + 70: 40 SampledImage 68 69 + 71: 27(ptr) AccessChain 24 26 + 72: 21(fvec3) Load 71 + 73: 32(ivec4) ImageGather 70 72 65 + Store 67(txval11) 73 + 75: 49 Load 51(g_tTex2du4a) + 76: 14 Load 16(g_sSamp) + 77: 54 SampledImage 75 76 + 78: 27(ptr) AccessChain 24 26 + 79: 21(fvec3) Load 78 + 80: 46(ivec4) ImageGather 77 79 65 + Store 74(txval12) 80 + 82: 10 Load 12(g_tTex2df4a) + 83: 14 Load 16(g_sSamp) + 84: 18 SampledImage 82 83 + 85: 27(ptr) AccessChain 24 26 + 86: 21(fvec3) Load 85 + 87: 7(fvec4) ImageGather 84 86 26 + Store 81(txval20) 87 + 89: 35 Load 37(g_tTex2di4a) + 90: 14 Load 16(g_sSamp) + 91: 40 SampledImage 89 90 + 92: 27(ptr) AccessChain 24 26 + 93: 21(fvec3) Load 92 + 94: 32(ivec4) ImageGather 91 93 26 + Store 88(txval21) 94 + 96: 49 Load 51(g_tTex2du4a) + 97: 14 Load 16(g_sSamp) + 98: 54 SampledImage 96 97 + 99: 27(ptr) AccessChain 24 26 + 100: 21(fvec3) Load 99 + 101: 46(ivec4) ImageGather 98 100 26 + Store 95(txval22) 101 + 103: 10 Load 12(g_tTex2df4a) + 104: 14 Load 16(g_sSamp) + 105: 18 SampledImage 103 104 + 106: 27(ptr) AccessChain 24 26 + 107: 21(fvec3) Load 106 + 109: 7(fvec4) ImageGather 105 107 108 + Store 102(txval30) 109 + 111: 35 Load 37(g_tTex2di4a) + 112: 14 Load 16(g_sSamp) + 113: 40 SampledImage 111 112 + 114: 27(ptr) AccessChain 24 26 + 115: 21(fvec3) Load 114 + 116: 32(ivec4) ImageGather 113 115 108 + Store 110(txval31) 116 + 118: 49 Load 51(g_tTex2du4a) + 119: 14 Load 16(g_sSamp) + 120: 54 SampledImage 118 119 + 121: 27(ptr) AccessChain 24 26 + 122: 21(fvec3) Load 121 + 123: 46(ivec4) ImageGather 120 122 108 + Store 117(txval32) 123 + 128: 125 Load 127(g_tTexcdf4a) + 129: 14 Load 16(g_sSamp) + 131: 130 SampledImage 128 129 + 133: 132(ptr) AccessChain 24 108 + 134: 7(fvec4) Load 133 + 135: 7(fvec4) ImageGather 131 134 30 + Store 124(txval40) 135 + 140: 137 Load 139(g_tTexcdi4a) + 141: 14 Load 16(g_sSamp) + 143: 142 SampledImage 140 141 + 144: 132(ptr) AccessChain 24 108 + 145: 7(fvec4) Load 144 + 146: 32(ivec4) ImageGather 143 145 30 + Store 136(txval41) 146 + 151: 148 Load 150(g_tTexcdu4a) + 152: 14 Load 16(g_sSamp) + 154: 153 SampledImage 151 152 + 155: 132(ptr) AccessChain 24 108 + 156: 7(fvec4) Load 155 + 157: 46(ivec4) ImageGather 154 156 30 + Store 147(txval42) 157 + 159: 125 Load 127(g_tTexcdf4a) + 160: 14 Load 16(g_sSamp) + 161: 130 SampledImage 159 160 + 162: 132(ptr) AccessChain 24 108 + 163: 7(fvec4) Load 162 + 164: 7(fvec4) ImageGather 161 163 65 + Store 158(txval50) 164 + 166: 137 Load 139(g_tTexcdi4a) 167: 14 Load 16(g_sSamp) - 168: 127 SampledImage 166 167 - 169: 7(fvec4) Load 118(c4) - 170: 27(ivec4) ImageGather 168 169 76 - Store 165(txval61) 170 - 172: 132 Load 134(g_tTexcdu4a) - 173: 14 Load 16(g_sSamp) - 174: 137 SampledImage 172 173 - 175: 7(fvec4) Load 118(c4) - 176: 40(ivec4) ImageGather 174 175 76 - Store 171(txval62) 176 - 178: 110 Load 112(g_tTexcdf4a) - 179: 14 Load 16(g_sSamp) - 180: 115 SampledImage 178 179 - 181: 7(fvec4) Load 118(c4) - 182: 7(fvec4) ImageGather 180 181 95 - Store 177(txval70) 182 - 184: 122 Load 124(g_tTexcdi4a) - 185: 14 Load 16(g_sSamp) - 186: 127 SampledImage 184 185 - 187: 7(fvec4) Load 118(c4) - 188: 27(ivec4) ImageGather 186 187 95 - Store 183(txval71) 188 - 190: 132 Load 134(g_tTexcdu4a) - 191: 14 Load 16(g_sSamp) - 192: 137 SampledImage 190 191 - 193: 7(fvec4) Load 118(c4) - 194: 40(ivec4) ImageGather 192 193 95 - Store 189(txval72) 194 - 200: 8(ptr) AccessChain 197(psout) 25 - Store 200 199 - 202: 201(ptr) AccessChain 197(psout) 57 - Store 202 198 - 205: 8(ptr) AccessChain 197(psout) 25 - 206: 7(fvec4) Load 205 - Store 204(Color) 206 - 209: 201(ptr) AccessChain 197(psout) 57 - 210: 6(float) Load 209 - Store 208(Depth) 210 + 168: 142 SampledImage 166 167 + 169: 132(ptr) AccessChain 24 108 + 170: 7(fvec4) Load 169 + 171: 32(ivec4) ImageGather 168 170 65 + Store 165(txval51) 171 + 173: 148 Load 150(g_tTexcdu4a) + 174: 14 Load 16(g_sSamp) + 175: 153 SampledImage 173 174 + 176: 132(ptr) AccessChain 24 108 + 177: 7(fvec4) Load 176 + 178: 46(ivec4) ImageGather 175 177 65 + Store 172(txval52) 178 + 180: 125 Load 127(g_tTexcdf4a) + 181: 14 Load 16(g_sSamp) + 182: 130 SampledImage 180 181 + 183: 132(ptr) AccessChain 24 108 + 184: 7(fvec4) Load 183 + 185: 7(fvec4) ImageGather 182 184 26 + Store 179(txval60) 185 + 187: 137 Load 139(g_tTexcdi4a) + 188: 14 Load 16(g_sSamp) + 189: 142 SampledImage 187 188 + 190: 132(ptr) AccessChain 24 108 + 191: 7(fvec4) Load 190 + 192: 32(ivec4) ImageGather 189 191 26 + Store 186(txval61) 192 + 194: 148 Load 150(g_tTexcdu4a) + 195: 14 Load 16(g_sSamp) + 196: 153 SampledImage 194 195 + 197: 132(ptr) AccessChain 24 108 + 198: 7(fvec4) Load 197 + 199: 46(ivec4) ImageGather 196 198 26 + Store 193(txval62) 199 + 201: 125 Load 127(g_tTexcdf4a) + 202: 14 Load 16(g_sSamp) + 203: 130 SampledImage 201 202 + 204: 132(ptr) AccessChain 24 108 + 205: 7(fvec4) Load 204 + 206: 7(fvec4) ImageGather 203 205 108 + Store 200(txval70) 206 + 208: 137 Load 139(g_tTexcdi4a) + 209: 14 Load 16(g_sSamp) + 210: 142 SampledImage 208 209 + 211: 132(ptr) AccessChain 24 108 + 212: 7(fvec4) Load 211 + 213: 32(ivec4) ImageGather 210 212 108 + Store 207(txval71) 213 + 215: 148 Load 150(g_tTexcdu4a) + 216: 14 Load 16(g_sSamp) + 217: 153 SampledImage 215 216 + 218: 132(ptr) AccessChain 24 108 + 219: 7(fvec4) Load 218 + 220: 46(ivec4) ImageGather 217 219 108 + Store 214(txval72) 220 + 226: 8(ptr) AccessChain 223(psout) 30 + Store 226 225 + 228: 227(ptr) AccessChain 223(psout) 65 + Store 228 224 + 231: 8(ptr) AccessChain 223(psout) 30 + 232: 7(fvec4) Load 231 + Store 230(Color) 232 + 235: 227(ptr) AccessChain 223(psout) 65 + 236: 6(float) Load 235 + Store 234(Depth) 236 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out index 2ec5343b1186dd97020ddb0de2183a2bdc72c020..d2fb0b171472f65386384d5b83f5ee34e2333235 100644 --- a/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.basic.dx10.frag.out @@ -2,247 +2,319 @@ hlsl.gatherRGBA.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval00' (temp 4-component vector of float) -0:39 textureGather (global 4-component vector of float) +0:39 textureGather (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler2D) 0:39 'g_tTex2df4' (uniform texture2D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:39 'c2' (uniform 2-component vector of float) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 1 (const uint) 0:39 Constant: 0:39 0 (const int) 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval01' (temp 4-component vector of int) -0:40 textureGather (global 4-component vector of int) +0:40 textureGather (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler2D) 0:40 'g_tTex2di4' (uniform itexture2D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:40 'c2' (uniform 2-component vector of float) +0:40 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:40 Constant: +0:40 1 (const uint) 0:40 Constant: 0:40 0 (const int) 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval02' (temp 4-component vector of uint) -0:41 textureGather (global 4-component vector of uint) +0:41 textureGather (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler2D) 0:41 'g_tTex2du4' (uniform utexture2D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c2' (uniform 2-component vector of float) +0:41 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 1 (const uint) 0:41 Constant: 0:41 0 (const int) 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval10' (temp 4-component vector of float) -0:43 textureGather (global 4-component vector of float) +0:43 textureGather (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp sampler2D) 0:43 'g_tTex2df4' (uniform texture2D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 'c2' (uniform 2-component vector of float) +0:43 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 1 (const uint) 0:43 Constant: 0:43 1 (const int) 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval11' (temp 4-component vector of int) -0:44 textureGather (global 4-component vector of int) +0:44 textureGather (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isampler2D) 0:44 'g_tTex2di4' (uniform itexture2D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 'c2' (uniform 2-component vector of float) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:44 Constant: +0:44 1 (const uint) 0:44 Constant: 0:44 1 (const int) 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval12' (temp 4-component vector of uint) -0:45 textureGather (global 4-component vector of uint) +0:45 textureGather (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usampler2D) 0:45 'g_tTex2du4' (uniform utexture2D) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c2' (uniform 2-component vector of float) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) 0:45 Constant: 0:45 1 (const int) 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of float) 0:47 'txval20' (temp 4-component vector of float) -0:47 textureGather (global 4-component vector of float) +0:47 textureGather (temp 4-component vector of float) 0:47 Construct combined texture-sampler (temp sampler2D) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c2' (uniform 2-component vector of float) +0:47 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) 0:47 Constant: 0:47 2 (const int) 0:48 Sequence 0:48 move second child to first child (temp 4-component vector of int) 0:48 'txval21' (temp 4-component vector of int) -0:48 textureGather (global 4-component vector of int) +0:48 textureGather (temp 4-component vector of int) 0:48 Construct combined texture-sampler (temp isampler2D) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 'c2' (uniform 2-component vector of float) +0:48 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:48 Constant: +0:48 1 (const uint) 0:48 Constant: 0:48 2 (const int) 0:49 Sequence 0:49 move second child to first child (temp 4-component vector of uint) 0:49 'txval22' (temp 4-component vector of uint) -0:49 textureGather (global 4-component vector of uint) +0:49 textureGather (temp 4-component vector of uint) 0:49 Construct combined texture-sampler (temp usampler2D) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 'c2' (uniform 2-component vector of float) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) 0:49 Constant: 0:49 2 (const int) 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:51 'txval30' (temp 4-component vector of float) -0:51 textureGather (global 4-component vector of float) +0:51 textureGather (temp 4-component vector of float) 0:51 Construct combined texture-sampler (temp sampler2D) 0:51 'g_tTex2df4' (uniform texture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c2' (uniform 2-component vector of float) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Constant: 0:51 3 (const int) 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of int) 0:52 'txval31' (temp 4-component vector of int) -0:52 textureGather (global 4-component vector of int) +0:52 textureGather (temp 4-component vector of int) 0:52 Construct combined texture-sampler (temp isampler2D) 0:52 'g_tTex2di4' (uniform itexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c2' (uniform 2-component vector of float) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 3 (const int) 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of uint) 0:53 'txval32' (temp 4-component vector of uint) -0:53 textureGather (global 4-component vector of uint) +0:53 textureGather (temp 4-component vector of uint) 0:53 Construct combined texture-sampler (temp usampler2D) 0:53 'g_tTex2du4' (uniform utexture2D) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 'c2' (uniform 2-component vector of float) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 3 (const int) 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of float) 0:57 'txval40' (temp 4-component vector of float) -0:57 textureGather (global 4-component vector of float) +0:57 textureGather (temp 4-component vector of float) 0:57 Construct combined texture-sampler (temp samplerCube) 0:57 'g_tTexcdf4' (uniform textureCube) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c3' (uniform 3-component vector of float) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 0 (const int) 0:58 Sequence 0:58 move second child to first child (temp 4-component vector of int) 0:58 'txval41' (temp 4-component vector of int) -0:58 textureGather (global 4-component vector of int) +0:58 textureGather (temp 4-component vector of int) 0:58 Construct combined texture-sampler (temp isamplerCube) 0:58 'g_tTexcdi4' (uniform itextureCube) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:58 'c3' (uniform 3-component vector of float) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 0 (const int) 0:59 Sequence 0:59 move second child to first child (temp 4-component vector of uint) 0:59 'txval42' (temp 4-component vector of uint) -0:59 textureGather (global 4-component vector of uint) +0:59 textureGather (temp 4-component vector of uint) 0:59 Construct combined texture-sampler (temp usamplerCube) 0:59 'g_tTexcdu4' (uniform utextureCube) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:59 'c3' (uniform 3-component vector of float) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 0 (const int) 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of float) 0:61 'txval50' (temp 4-component vector of float) -0:61 textureGather (global 4-component vector of float) +0:61 textureGather (temp 4-component vector of float) 0:61 Construct combined texture-sampler (temp samplerCube) 0:61 'g_tTexcdf4' (uniform textureCube) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c3' (uniform 3-component vector of float) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 2 (const uint) 0:61 Constant: 0:61 1 (const int) 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of int) 0:62 'txval51' (temp 4-component vector of int) -0:62 textureGather (global 4-component vector of int) +0:62 textureGather (temp 4-component vector of int) 0:62 Construct combined texture-sampler (temp isamplerCube) 0:62 'g_tTexcdi4' (uniform itextureCube) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c3' (uniform 3-component vector of float) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:62 Constant: +0:62 2 (const uint) 0:62 Constant: 0:62 1 (const int) 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of uint) 0:63 'txval52' (temp 4-component vector of uint) -0:63 textureGather (global 4-component vector of uint) +0:63 textureGather (temp 4-component vector of uint) 0:63 Construct combined texture-sampler (temp usamplerCube) 0:63 'g_tTexcdu4' (uniform utextureCube) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c3' (uniform 3-component vector of float) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 2 (const uint) 0:63 Constant: 0:63 1 (const int) 0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:65 'txval60' (temp 4-component vector of float) -0:65 textureGather (global 4-component vector of float) +0:65 textureGather (temp 4-component vector of float) 0:65 Construct combined texture-sampler (temp samplerCube) 0:65 'g_tTexcdf4' (uniform textureCube) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:65 'c3' (uniform 3-component vector of float) +0:65 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 2 (const uint) 0:65 Constant: 0:65 2 (const int) 0:66 Sequence 0:66 move second child to first child (temp 4-component vector of int) 0:66 'txval61' (temp 4-component vector of int) -0:66 textureGather (global 4-component vector of int) +0:66 textureGather (temp 4-component vector of int) 0:66 Construct combined texture-sampler (temp isamplerCube) 0:66 'g_tTexcdi4' (uniform itextureCube) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:66 'c3' (uniform 3-component vector of float) +0:66 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:66 Constant: +0:66 2 (const uint) 0:66 Constant: 0:66 2 (const int) 0:67 Sequence 0:67 move second child to first child (temp 4-component vector of uint) 0:67 'txval62' (temp 4-component vector of uint) -0:67 textureGather (global 4-component vector of uint) +0:67 textureGather (temp 4-component vector of uint) 0:67 Construct combined texture-sampler (temp usamplerCube) 0:67 'g_tTexcdu4' (uniform utextureCube) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:67 'c3' (uniform 3-component vector of float) +0:67 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:67 Constant: +0:67 2 (const uint) 0:67 Constant: 0:67 2 (const int) 0:69 Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:69 'txval70' (temp 4-component vector of float) -0:69 textureGather (global 4-component vector of float) +0:69 textureGather (temp 4-component vector of float) 0:69 Construct combined texture-sampler (temp samplerCube) 0:69 'g_tTexcdf4' (uniform textureCube) 0:69 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:69 'c3' (uniform 3-component vector of float) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:69 Constant: +0:69 2 (const uint) 0:69 Constant: 0:69 3 (const int) 0:70 Sequence 0:70 move second child to first child (temp 4-component vector of int) 0:70 'txval71' (temp 4-component vector of int) -0:70 textureGather (global 4-component vector of int) +0:70 textureGather (temp 4-component vector of int) 0:70 Construct combined texture-sampler (temp isamplerCube) 0:70 'g_tTexcdi4' (uniform itextureCube) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:70 'c3' (uniform 3-component vector of float) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:70 Constant: +0:70 2 (const uint) 0:70 Constant: 0:70 3 (const int) 0:71 Sequence 0:71 move second child to first child (temp 4-component vector of uint) 0:71 'txval72' (temp 4-component vector of uint) -0:71 textureGather (global 4-component vector of uint) +0:71 textureGather (temp 4-component vector of uint) 0:71 Construct combined texture-sampler (temp usamplerCube) 0:71 'g_tTexcdu4' (uniform utextureCube) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:71 'c3' (uniform 3-component vector of float) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:71 Constant: +0:71 2 (const uint) 0:71 Constant: 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) @@ -262,8 +334,8 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:? Sequence -0:? Sequence +0:76 Sequence +0:76 Sequence 0:76 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:76 Color: direct index for structure (temp 4-component vector of float) @@ -278,6 +350,8 @@ gl_FragCoord origin is upper left 0:76 1 (const int) 0:76 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -293,12 +367,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) Linked fragment stage: @@ -307,247 +376,319 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:34 Function Parameters: 0:? Sequence 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval00' (temp 4-component vector of float) -0:39 textureGather (global 4-component vector of float) +0:39 textureGather (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler2D) 0:39 'g_tTex2df4' (uniform texture2D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:39 'c2' (uniform 2-component vector of float) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:39 Constant: +0:39 1 (const uint) 0:39 Constant: 0:39 0 (const int) 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval01' (temp 4-component vector of int) -0:40 textureGather (global 4-component vector of int) +0:40 textureGather (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler2D) 0:40 'g_tTex2di4' (uniform itexture2D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:40 'c2' (uniform 2-component vector of float) +0:40 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:40 Constant: +0:40 1 (const uint) 0:40 Constant: 0:40 0 (const int) 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval02' (temp 4-component vector of uint) -0:41 textureGather (global 4-component vector of uint) +0:41 textureGather (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler2D) 0:41 'g_tTex2du4' (uniform utexture2D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c2' (uniform 2-component vector of float) +0:41 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:41 Constant: +0:41 1 (const uint) 0:41 Constant: 0:41 0 (const int) 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval10' (temp 4-component vector of float) -0:43 textureGather (global 4-component vector of float) +0:43 textureGather (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp sampler2D) 0:43 'g_tTex2df4' (uniform texture2D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 'c2' (uniform 2-component vector of float) +0:43 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:43 Constant: +0:43 1 (const uint) 0:43 Constant: 0:43 1 (const int) 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval11' (temp 4-component vector of int) -0:44 textureGather (global 4-component vector of int) +0:44 textureGather (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isampler2D) 0:44 'g_tTex2di4' (uniform itexture2D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 'c2' (uniform 2-component vector of float) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:44 Constant: +0:44 1 (const uint) 0:44 Constant: 0:44 1 (const int) 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval12' (temp 4-component vector of uint) -0:45 textureGather (global 4-component vector of uint) +0:45 textureGather (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usampler2D) 0:45 'g_tTex2du4' (uniform utexture2D) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c2' (uniform 2-component vector of float) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:45 Constant: +0:45 1 (const uint) 0:45 Constant: 0:45 1 (const int) 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of float) 0:47 'txval20' (temp 4-component vector of float) -0:47 textureGather (global 4-component vector of float) +0:47 textureGather (temp 4-component vector of float) 0:47 Construct combined texture-sampler (temp sampler2D) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c2' (uniform 2-component vector of float) +0:47 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:47 Constant: +0:47 1 (const uint) 0:47 Constant: 0:47 2 (const int) 0:48 Sequence 0:48 move second child to first child (temp 4-component vector of int) 0:48 'txval21' (temp 4-component vector of int) -0:48 textureGather (global 4-component vector of int) +0:48 textureGather (temp 4-component vector of int) 0:48 Construct combined texture-sampler (temp isampler2D) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 'c2' (uniform 2-component vector of float) +0:48 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:48 Constant: +0:48 1 (const uint) 0:48 Constant: 0:48 2 (const int) 0:49 Sequence 0:49 move second child to first child (temp 4-component vector of uint) 0:49 'txval22' (temp 4-component vector of uint) -0:49 textureGather (global 4-component vector of uint) +0:49 textureGather (temp 4-component vector of uint) 0:49 Construct combined texture-sampler (temp usampler2D) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 'c2' (uniform 2-component vector of float) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:49 Constant: +0:49 1 (const uint) 0:49 Constant: 0:49 2 (const int) 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:51 'txval30' (temp 4-component vector of float) -0:51 textureGather (global 4-component vector of float) +0:51 textureGather (temp 4-component vector of float) 0:51 Construct combined texture-sampler (temp sampler2D) 0:51 'g_tTex2df4' (uniform texture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c2' (uniform 2-component vector of float) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Constant: 0:51 3 (const int) 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of int) 0:52 'txval31' (temp 4-component vector of int) -0:52 textureGather (global 4-component vector of int) +0:52 textureGather (temp 4-component vector of int) 0:52 Construct combined texture-sampler (temp isampler2D) 0:52 'g_tTex2di4' (uniform itexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c2' (uniform 2-component vector of float) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 3 (const int) 0:53 Sequence 0:53 move second child to first child (temp 4-component vector of uint) 0:53 'txval32' (temp 4-component vector of uint) -0:53 textureGather (global 4-component vector of uint) +0:53 textureGather (temp 4-component vector of uint) 0:53 Construct combined texture-sampler (temp usampler2D) 0:53 'g_tTex2du4' (uniform utexture2D) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 'c2' (uniform 2-component vector of float) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 3 (const int) 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of float) 0:57 'txval40' (temp 4-component vector of float) -0:57 textureGather (global 4-component vector of float) +0:57 textureGather (temp 4-component vector of float) 0:57 Construct combined texture-sampler (temp samplerCube) 0:57 'g_tTexcdf4' (uniform textureCube) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c3' (uniform 3-component vector of float) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 0 (const int) 0:58 Sequence 0:58 move second child to first child (temp 4-component vector of int) 0:58 'txval41' (temp 4-component vector of int) -0:58 textureGather (global 4-component vector of int) +0:58 textureGather (temp 4-component vector of int) 0:58 Construct combined texture-sampler (temp isamplerCube) 0:58 'g_tTexcdi4' (uniform itextureCube) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:58 'c3' (uniform 3-component vector of float) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 0 (const int) 0:59 Sequence 0:59 move second child to first child (temp 4-component vector of uint) 0:59 'txval42' (temp 4-component vector of uint) -0:59 textureGather (global 4-component vector of uint) +0:59 textureGather (temp 4-component vector of uint) 0:59 Construct combined texture-sampler (temp usamplerCube) 0:59 'g_tTexcdu4' (uniform utextureCube) 0:59 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:59 'c3' (uniform 3-component vector of float) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 0 (const int) 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of float) 0:61 'txval50' (temp 4-component vector of float) -0:61 textureGather (global 4-component vector of float) +0:61 textureGather (temp 4-component vector of float) 0:61 Construct combined texture-sampler (temp samplerCube) 0:61 'g_tTexcdf4' (uniform textureCube) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c3' (uniform 3-component vector of float) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:61 Constant: +0:61 2 (const uint) 0:61 Constant: 0:61 1 (const int) 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of int) 0:62 'txval51' (temp 4-component vector of int) -0:62 textureGather (global 4-component vector of int) +0:62 textureGather (temp 4-component vector of int) 0:62 Construct combined texture-sampler (temp isamplerCube) 0:62 'g_tTexcdi4' (uniform itextureCube) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c3' (uniform 3-component vector of float) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:62 Constant: +0:62 2 (const uint) 0:62 Constant: 0:62 1 (const int) 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of uint) 0:63 'txval52' (temp 4-component vector of uint) -0:63 textureGather (global 4-component vector of uint) +0:63 textureGather (temp 4-component vector of uint) 0:63 Construct combined texture-sampler (temp usamplerCube) 0:63 'g_tTexcdu4' (uniform utextureCube) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c3' (uniform 3-component vector of float) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:63 Constant: +0:63 2 (const uint) 0:63 Constant: 0:63 1 (const int) 0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:65 'txval60' (temp 4-component vector of float) -0:65 textureGather (global 4-component vector of float) +0:65 textureGather (temp 4-component vector of float) 0:65 Construct combined texture-sampler (temp samplerCube) 0:65 'g_tTexcdf4' (uniform textureCube) 0:65 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:65 'c3' (uniform 3-component vector of float) +0:65 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:65 Constant: +0:65 2 (const uint) 0:65 Constant: 0:65 2 (const int) 0:66 Sequence 0:66 move second child to first child (temp 4-component vector of int) 0:66 'txval61' (temp 4-component vector of int) -0:66 textureGather (global 4-component vector of int) +0:66 textureGather (temp 4-component vector of int) 0:66 Construct combined texture-sampler (temp isamplerCube) 0:66 'g_tTexcdi4' (uniform itextureCube) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:66 'c3' (uniform 3-component vector of float) +0:66 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:66 Constant: +0:66 2 (const uint) 0:66 Constant: 0:66 2 (const int) 0:67 Sequence 0:67 move second child to first child (temp 4-component vector of uint) 0:67 'txval62' (temp 4-component vector of uint) -0:67 textureGather (global 4-component vector of uint) +0:67 textureGather (temp 4-component vector of uint) 0:67 Construct combined texture-sampler (temp usamplerCube) 0:67 'g_tTexcdu4' (uniform utextureCube) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:67 'c3' (uniform 3-component vector of float) +0:67 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:67 Constant: +0:67 2 (const uint) 0:67 Constant: 0:67 2 (const int) 0:69 Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:69 'txval70' (temp 4-component vector of float) -0:69 textureGather (global 4-component vector of float) +0:69 textureGather (temp 4-component vector of float) 0:69 Construct combined texture-sampler (temp samplerCube) 0:69 'g_tTexcdf4' (uniform textureCube) 0:69 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:69 'c3' (uniform 3-component vector of float) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:69 Constant: +0:69 2 (const uint) 0:69 Constant: 0:69 3 (const int) 0:70 Sequence 0:70 move second child to first child (temp 4-component vector of int) 0:70 'txval71' (temp 4-component vector of int) -0:70 textureGather (global 4-component vector of int) +0:70 textureGather (temp 4-component vector of int) 0:70 Construct combined texture-sampler (temp isamplerCube) 0:70 'g_tTexcdi4' (uniform itextureCube) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:70 'c3' (uniform 3-component vector of float) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:70 Constant: +0:70 2 (const uint) 0:70 Constant: 0:70 3 (const int) 0:71 Sequence 0:71 move second child to first child (temp 4-component vector of uint) 0:71 'txval72' (temp 4-component vector of uint) -0:71 textureGather (global 4-component vector of uint) +0:71 textureGather (temp 4-component vector of uint) 0:71 Construct combined texture-sampler (temp usamplerCube) 0:71 'g_tTexcdu4' (uniform utextureCube) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:71 'c3' (uniform 3-component vector of float) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) +0:71 Constant: +0:71 2 (const uint) 0:71 Constant: 0:71 3 (const int) 0:73 move second child to first child (temp 4-component vector of float) @@ -567,8 +708,8 @@ gl_FragCoord origin is upper left 0:74 1 (const int) 0:74 Constant: 0:74 1.000000 -0:? Sequence -0:? Sequence +0:76 Sequence +0:76 Sequence 0:76 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:76 Color: direct index for structure (temp 4-component vector of float) @@ -583,6 +724,8 @@ gl_FragCoord origin is upper left 0:76 1 (const int) 0:76 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -598,93 +741,96 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 237 +// Id's are bound by 258 Capability Shader Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 205 209 + EntryPoint Fragment 4 "main" 230 234 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval00" Name 12 "g_tTex2df4" Name 16 "g_sSamp" - Name 22 "c2" - Name 29 "txval01" - Name 32 "g_tTex2di4" - Name 42 "txval02" - Name 45 "g_tTex2du4" - Name 52 "txval10" - Name 59 "txval11" - Name 65 "txval12" - Name 71 "txval20" - Name 78 "txval21" - Name 84 "txval22" - Name 90 "txval30" - Name 97 "txval31" - Name 103 "txval32" - Name 109 "txval40" - Name 112 "g_tTexcdf4" - Name 119 "c3" - Name 122 "txval41" - Name 125 "g_tTexcdi4" - Name 132 "txval42" - Name 135 "g_tTexcdu4" - Name 142 "txval50" - Name 148 "txval51" - Name 154 "txval52" - Name 160 "txval60" - Name 166 "txval61" - Name 172 "txval62" - Name 178 "txval70" - Name 184 "txval71" - Name 190 "txval72" - Name 196 "PS_OUTPUT" - MemberName 196(PS_OUTPUT) 0 "Color" - MemberName 196(PS_OUTPUT) 1 "Depth" - Name 198 "psout" - Name 205 "Color" - Name 209 "Depth" - Name 213 "g_sSamp2d" - Name 216 "g_tTex1df4a" - Name 217 "g_tTex1df4" - Name 220 "g_tTex1di4" - Name 223 "g_tTex1du4" - Name 226 "g_tTex3df4" - Name 229 "g_tTex3di4" - Name 232 "g_tTex3du4" - Name 234 "c1" - Name 236 "c4" + Name 22 "$Global" + MemberName 22($Global) 0 "c1" + MemberName 22($Global) 1 "c2" + MemberName 22($Global) 2 "c3" + MemberName 22($Global) 3 "c4" + Name 24 "" + Name 34 "txval01" + Name 37 "g_tTex2di4" + Name 48 "txval02" + Name 51 "g_tTex2du4" + Name 59 "txval10" + Name 66 "txval11" + Name 73 "txval12" + Name 80 "txval20" + Name 88 "txval21" + Name 95 "txval22" + Name 102 "txval30" + Name 110 "txval31" + Name 117 "txval32" + Name 124 "txval40" + Name 127 "g_tTexcdf4" + Name 136 "txval41" + Name 139 "g_tTexcdi4" + Name 147 "txval42" + Name 150 "g_tTexcdu4" + Name 158 "txval50" + Name 165 "txval51" + Name 172 "txval52" + Name 179 "txval60" + Name 186 "txval61" + Name 193 "txval62" + Name 200 "txval70" + Name 207 "txval71" + Name 214 "txval72" + Name 221 "PS_OUTPUT" + MemberName 221(PS_OUTPUT) 0 "Color" + MemberName 221(PS_OUTPUT) 1 "Depth" + Name 223 "psout" + Name 230 "Color" + Name 234 "Depth" + Name 238 "g_sSamp2d" + Name 241 "g_tTex1df4a" + Name 242 "g_tTex1df4" + Name 245 "g_tTex1di4" + Name 248 "g_tTex1du4" + Name 251 "g_tTex3df4" + Name 254 "g_tTex3di4" + Name 257 "g_tTex3du4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 - Decorate 32(g_tTex2di4) DescriptorSet 0 - Decorate 45(g_tTex2du4) DescriptorSet 0 - Decorate 112(g_tTexcdf4) DescriptorSet 0 - Decorate 125(g_tTexcdi4) DescriptorSet 0 - Decorate 135(g_tTexcdu4) DescriptorSet 0 - Decorate 205(Color) Location 0 - Decorate 209(Depth) BuiltIn FragDepth - Decorate 213(g_sSamp2d) DescriptorSet 0 - Decorate 216(g_tTex1df4a) DescriptorSet 0 - Decorate 216(g_tTex1df4a) Binding 1 - Decorate 217(g_tTex1df4) DescriptorSet 0 - Decorate 217(g_tTex1df4) Binding 0 - Decorate 220(g_tTex1di4) DescriptorSet 0 - Decorate 223(g_tTex1du4) DescriptorSet 0 - Decorate 226(g_tTex3df4) DescriptorSet 0 - Decorate 229(g_tTex3di4) DescriptorSet 0 - Decorate 232(g_tTex3du4) DescriptorSet 0 + MemberDecorate 22($Global) 0 Offset 0 + MemberDecorate 22($Global) 1 Offset 8 + MemberDecorate 22($Global) 2 Offset 16 + MemberDecorate 22($Global) 3 Offset 32 + Decorate 22($Global) Block + Decorate 24 DescriptorSet 0 + Decorate 37(g_tTex2di4) DescriptorSet 0 + Decorate 51(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 150(g_tTexcdu4) DescriptorSet 0 + Decorate 230(Color) Location 0 + Decorate 234(Depth) BuiltIn FragDepth + Decorate 238(g_sSamp2d) DescriptorSet 0 + Decorate 241(g_tTex1df4a) DescriptorSet 0 + Decorate 241(g_tTex1df4a) Binding 1 + Decorate 242(g_tTex1df4) DescriptorSet 0 + Decorate 242(g_tTex1df4) Binding 0 + Decorate 245(g_tTex1di4) DescriptorSet 0 + Decorate 248(g_tTex1du4) DescriptorSet 0 + Decorate 251(g_tTex3df4) DescriptorSet 0 + Decorate 254(g_tTex3di4) DescriptorSet 0 + Decorate 257(g_tTex3du4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -698,254 +844,275 @@ gl_FragCoord origin is upper left 16(g_sSamp): 15(ptr) Variable UniformConstant 18: TypeSampledImage 10 20: TypeVector 6(float) 2 - 21: TypePointer UniformConstant 20(fvec2) - 22(c2): 21(ptr) Variable UniformConstant - 24: TypeInt 32 1 - 25: 24(int) Constant 0 - 27: TypeVector 24(int) 4 - 28: TypePointer Function 27(ivec4) - 30: TypeImage 24(int) 2D sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex2di4): 31(ptr) Variable UniformConstant - 35: TypeSampledImage 30 - 39: TypeInt 32 0 - 40: TypeVector 39(int) 4 - 41: TypePointer Function 40(ivec4) - 43: TypeImage 39(int) 2D sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex2du4): 44(ptr) Variable UniformConstant - 48: TypeSampledImage 43 - 57: 24(int) Constant 1 - 76: 24(int) Constant 2 - 95: 24(int) Constant 3 - 110: TypeImage 6(float) Cube sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTexcdf4): 111(ptr) Variable UniformConstant - 115: TypeSampledImage 110 - 117: TypeVector 6(float) 3 - 118: TypePointer UniformConstant 117(fvec3) - 119(c3): 118(ptr) Variable UniformConstant - 123: TypeImage 24(int) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdi4): 124(ptr) Variable UniformConstant - 128: TypeSampledImage 123 - 133: TypeImage 39(int) Cube sampled format:Unknown - 134: TypePointer UniformConstant 133 - 135(g_tTexcdu4): 134(ptr) Variable UniformConstant - 138: TypeSampledImage 133 - 196(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 197: TypePointer Function 196(PS_OUTPUT) - 199: 6(float) Constant 1065353216 - 200: 7(fvec4) ConstantComposite 199 199 199 199 - 202: TypePointer Function 6(float) - 204: TypePointer Output 7(fvec4) - 205(Color): 204(ptr) Variable Output - 208: TypePointer Output 6(float) - 209(Depth): 208(ptr) Variable Output - 213(g_sSamp2d): 15(ptr) Variable UniformConstant - 214: TypeImage 6(float) 1D sampled format:Unknown - 215: TypePointer UniformConstant 214 -216(g_tTex1df4a): 215(ptr) Variable UniformConstant - 217(g_tTex1df4): 215(ptr) Variable UniformConstant - 218: TypeImage 24(int) 1D sampled format:Unknown - 219: TypePointer UniformConstant 218 - 220(g_tTex1di4): 219(ptr) Variable UniformConstant - 221: TypeImage 39(int) 1D sampled format:Unknown - 222: TypePointer UniformConstant 221 - 223(g_tTex1du4): 222(ptr) Variable UniformConstant - 224: TypeImage 6(float) 3D sampled format:Unknown - 225: TypePointer UniformConstant 224 - 226(g_tTex3df4): 225(ptr) Variable UniformConstant - 227: TypeImage 24(int) 3D sampled format:Unknown - 228: TypePointer UniformConstant 227 - 229(g_tTex3di4): 228(ptr) Variable UniformConstant - 230: TypeImage 39(int) 3D sampled format:Unknown - 231: TypePointer UniformConstant 230 - 232(g_tTex3du4): 231(ptr) Variable UniformConstant - 233: TypePointer UniformConstant 6(float) - 234(c1): 233(ptr) Variable UniformConstant - 235: TypePointer UniformConstant 7(fvec4) - 236(c4): 235(ptr) Variable UniformConstant + 21: TypeVector 6(float) 3 + 22($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) + 23: TypePointer Uniform 22($Global) + 24: 23(ptr) Variable Uniform + 25: TypeInt 32 1 + 26: 25(int) Constant 1 + 27: TypePointer Uniform 20(fvec2) + 30: 25(int) Constant 0 + 32: TypeVector 25(int) 4 + 33: TypePointer Function 32(ivec4) + 35: TypeImage 25(int) 2D sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex2di4): 36(ptr) Variable UniformConstant + 40: TypeSampledImage 35 + 45: TypeInt 32 0 + 46: TypeVector 45(int) 4 + 47: TypePointer Function 46(ivec4) + 49: TypeImage 45(int) 2D sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex2du4): 50(ptr) Variable UniformConstant + 54: TypeSampledImage 49 + 86: 25(int) Constant 2 + 108: 25(int) Constant 3 + 125: TypeImage 6(float) Cube sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTexcdf4): 126(ptr) Variable UniformConstant + 130: TypeSampledImage 125 + 132: TypePointer Uniform 21(fvec3) + 137: TypeImage 25(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 142: TypeSampledImage 137 + 148: TypeImage 45(int) Cube sampled format:Unknown + 149: TypePointer UniformConstant 148 + 150(g_tTexcdu4): 149(ptr) Variable UniformConstant + 153: TypeSampledImage 148 + 221(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 222: TypePointer Function 221(PS_OUTPUT) + 224: 6(float) Constant 1065353216 + 225: 7(fvec4) ConstantComposite 224 224 224 224 + 227: TypePointer Function 6(float) + 229: TypePointer Output 7(fvec4) + 230(Color): 229(ptr) Variable Output + 233: TypePointer Output 6(float) + 234(Depth): 233(ptr) Variable Output + 238(g_sSamp2d): 15(ptr) Variable UniformConstant + 239: TypeImage 6(float) 1D sampled format:Unknown + 240: TypePointer UniformConstant 239 +241(g_tTex1df4a): 240(ptr) Variable UniformConstant + 242(g_tTex1df4): 240(ptr) Variable UniformConstant + 243: TypeImage 25(int) 1D sampled format:Unknown + 244: TypePointer UniformConstant 243 + 245(g_tTex1di4): 244(ptr) Variable UniformConstant + 246: TypeImage 45(int) 1D sampled format:Unknown + 247: TypePointer UniformConstant 246 + 248(g_tTex1du4): 247(ptr) Variable UniformConstant + 249: TypeImage 6(float) 3D sampled format:Unknown + 250: TypePointer UniformConstant 249 + 251(g_tTex3df4): 250(ptr) Variable UniformConstant + 252: TypeImage 25(int) 3D sampled format:Unknown + 253: TypePointer UniformConstant 252 + 254(g_tTex3di4): 253(ptr) Variable UniformConstant + 255: TypeImage 45(int) 3D sampled format:Unknown + 256: TypePointer UniformConstant 255 + 257(g_tTex3du4): 256(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval00): 8(ptr) Variable Function - 29(txval01): 28(ptr) Variable Function - 42(txval02): 41(ptr) Variable Function - 52(txval10): 8(ptr) Variable Function - 59(txval11): 28(ptr) Variable Function - 65(txval12): 41(ptr) Variable Function - 71(txval20): 8(ptr) Variable Function - 78(txval21): 28(ptr) Variable Function - 84(txval22): 41(ptr) Variable Function - 90(txval30): 8(ptr) Variable Function - 97(txval31): 28(ptr) Variable Function - 103(txval32): 41(ptr) Variable Function - 109(txval40): 8(ptr) Variable Function - 122(txval41): 28(ptr) Variable Function - 132(txval42): 41(ptr) Variable Function - 142(txval50): 8(ptr) Variable Function - 148(txval51): 28(ptr) Variable Function - 154(txval52): 41(ptr) Variable Function - 160(txval60): 8(ptr) Variable Function - 166(txval61): 28(ptr) Variable Function - 172(txval62): 41(ptr) Variable Function - 178(txval70): 8(ptr) Variable Function - 184(txval71): 28(ptr) Variable Function - 190(txval72): 41(ptr) Variable Function - 198(psout): 197(ptr) Variable Function + 34(txval01): 33(ptr) Variable Function + 48(txval02): 47(ptr) Variable Function + 59(txval10): 8(ptr) Variable Function + 66(txval11): 33(ptr) Variable Function + 73(txval12): 47(ptr) Variable Function + 80(txval20): 8(ptr) Variable Function + 88(txval21): 33(ptr) Variable Function + 95(txval22): 47(ptr) Variable Function + 102(txval30): 8(ptr) Variable Function + 110(txval31): 33(ptr) Variable Function + 117(txval32): 47(ptr) Variable Function + 124(txval40): 8(ptr) Variable Function + 136(txval41): 33(ptr) Variable Function + 147(txval42): 47(ptr) Variable Function + 158(txval50): 8(ptr) Variable Function + 165(txval51): 33(ptr) Variable Function + 172(txval52): 47(ptr) Variable Function + 179(txval60): 8(ptr) Variable Function + 186(txval61): 33(ptr) Variable Function + 193(txval62): 47(ptr) Variable Function + 200(txval70): 8(ptr) Variable Function + 207(txval71): 33(ptr) Variable Function + 214(txval72): 47(ptr) Variable Function + 223(psout): 222(ptr) Variable Function 13: 10 Load 12(g_tTex2df4) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 - 23: 20(fvec2) Load 22(c2) - 26: 7(fvec4) ImageGather 19 23 25 - Store 9(txval00) 26 - 33: 30 Load 32(g_tTex2di4) - 34: 14 Load 16(g_sSamp) - 36: 35 SampledImage 33 34 - 37: 20(fvec2) Load 22(c2) - 38: 27(ivec4) ImageGather 36 37 25 - Store 29(txval01) 38 - 46: 43 Load 45(g_tTex2du4) - 47: 14 Load 16(g_sSamp) - 49: 48 SampledImage 46 47 - 50: 20(fvec2) Load 22(c2) - 51: 40(ivec4) ImageGather 49 50 25 - Store 42(txval02) 51 - 53: 10 Load 12(g_tTex2df4) - 54: 14 Load 16(g_sSamp) - 55: 18 SampledImage 53 54 - 56: 20(fvec2) Load 22(c2) - 58: 7(fvec4) ImageGather 55 56 57 - Store 52(txval10) 58 - 60: 30 Load 32(g_tTex2di4) + 28: 27(ptr) AccessChain 24 26 + 29: 20(fvec2) Load 28 + 31: 7(fvec4) ImageGather 19 29 30 + Store 9(txval00) 31 + 38: 35 Load 37(g_tTex2di4) + 39: 14 Load 16(g_sSamp) + 41: 40 SampledImage 38 39 + 42: 27(ptr) AccessChain 24 26 + 43: 20(fvec2) Load 42 + 44: 32(ivec4) ImageGather 41 43 30 + Store 34(txval01) 44 + 52: 49 Load 51(g_tTex2du4) + 53: 14 Load 16(g_sSamp) + 55: 54 SampledImage 52 53 + 56: 27(ptr) AccessChain 24 26 + 57: 20(fvec2) Load 56 + 58: 46(ivec4) ImageGather 55 57 30 + Store 48(txval02) 58 + 60: 10 Load 12(g_tTex2df4) 61: 14 Load 16(g_sSamp) - 62: 35 SampledImage 60 61 - 63: 20(fvec2) Load 22(c2) - 64: 27(ivec4) ImageGather 62 63 57 - Store 59(txval11) 64 - 66: 43 Load 45(g_tTex2du4) - 67: 14 Load 16(g_sSamp) - 68: 48 SampledImage 66 67 - 69: 20(fvec2) Load 22(c2) - 70: 40(ivec4) ImageGather 68 69 57 - Store 65(txval12) 70 - 72: 10 Load 12(g_tTex2df4) - 73: 14 Load 16(g_sSamp) - 74: 18 SampledImage 72 73 - 75: 20(fvec2) Load 22(c2) - 77: 7(fvec4) ImageGather 74 75 76 - Store 71(txval20) 77 - 79: 30 Load 32(g_tTex2di4) - 80: 14 Load 16(g_sSamp) - 81: 35 SampledImage 79 80 - 82: 20(fvec2) Load 22(c2) - 83: 27(ivec4) ImageGather 81 82 76 - Store 78(txval21) 83 - 85: 43 Load 45(g_tTex2du4) - 86: 14 Load 16(g_sSamp) - 87: 48 SampledImage 85 86 - 88: 20(fvec2) Load 22(c2) - 89: 40(ivec4) ImageGather 87 88 76 - Store 84(txval22) 89 - 91: 10 Load 12(g_tTex2df4) - 92: 14 Load 16(g_sSamp) - 93: 18 SampledImage 91 92 - 94: 20(fvec2) Load 22(c2) - 96: 7(fvec4) ImageGather 93 94 95 - Store 90(txval30) 96 - 98: 30 Load 32(g_tTex2di4) - 99: 14 Load 16(g_sSamp) - 100: 35 SampledImage 98 99 - 101: 20(fvec2) Load 22(c2) - 102: 27(ivec4) ImageGather 100 101 95 - Store 97(txval31) 102 - 104: 43 Load 45(g_tTex2du4) - 105: 14 Load 16(g_sSamp) - 106: 48 SampledImage 104 105 - 107: 20(fvec2) Load 22(c2) - 108: 40(ivec4) ImageGather 106 107 95 - Store 103(txval32) 108 - 113: 110 Load 112(g_tTexcdf4) - 114: 14 Load 16(g_sSamp) - 116: 115 SampledImage 113 114 - 120: 117(fvec3) Load 119(c3) - 121: 7(fvec4) ImageGather 116 120 25 - Store 109(txval40) 121 - 126: 123 Load 125(g_tTexcdi4) - 127: 14 Load 16(g_sSamp) - 129: 128 SampledImage 126 127 - 130: 117(fvec3) Load 119(c3) - 131: 27(ivec4) ImageGather 129 130 25 - Store 122(txval41) 131 - 136: 133 Load 135(g_tTexcdu4) - 137: 14 Load 16(g_sSamp) - 139: 138 SampledImage 136 137 - 140: 117(fvec3) Load 119(c3) - 141: 40(ivec4) ImageGather 139 140 25 - Store 132(txval42) 141 - 143: 110 Load 112(g_tTexcdf4) - 144: 14 Load 16(g_sSamp) - 145: 115 SampledImage 143 144 - 146: 117(fvec3) Load 119(c3) - 147: 7(fvec4) ImageGather 145 146 57 - Store 142(txval50) 147 - 149: 123 Load 125(g_tTexcdi4) - 150: 14 Load 16(g_sSamp) - 151: 128 SampledImage 149 150 - 152: 117(fvec3) Load 119(c3) - 153: 27(ivec4) ImageGather 151 152 57 - Store 148(txval51) 153 - 155: 133 Load 135(g_tTexcdu4) - 156: 14 Load 16(g_sSamp) - 157: 138 SampledImage 155 156 - 158: 117(fvec3) Load 119(c3) - 159: 40(ivec4) ImageGather 157 158 57 - Store 154(txval52) 159 - 161: 110 Load 112(g_tTexcdf4) - 162: 14 Load 16(g_sSamp) - 163: 115 SampledImage 161 162 - 164: 117(fvec3) Load 119(c3) - 165: 7(fvec4) ImageGather 163 164 76 - Store 160(txval60) 165 - 167: 123 Load 125(g_tTexcdi4) - 168: 14 Load 16(g_sSamp) - 169: 128 SampledImage 167 168 - 170: 117(fvec3) Load 119(c3) - 171: 27(ivec4) ImageGather 169 170 76 - Store 166(txval61) 171 - 173: 133 Load 135(g_tTexcdu4) + 62: 18 SampledImage 60 61 + 63: 27(ptr) AccessChain 24 26 + 64: 20(fvec2) Load 63 + 65: 7(fvec4) ImageGather 62 64 26 + Store 59(txval10) 65 + 67: 35 Load 37(g_tTex2di4) + 68: 14 Load 16(g_sSamp) + 69: 40 SampledImage 67 68 + 70: 27(ptr) AccessChain 24 26 + 71: 20(fvec2) Load 70 + 72: 32(ivec4) ImageGather 69 71 26 + Store 66(txval11) 72 + 74: 49 Load 51(g_tTex2du4) + 75: 14 Load 16(g_sSamp) + 76: 54 SampledImage 74 75 + 77: 27(ptr) AccessChain 24 26 + 78: 20(fvec2) Load 77 + 79: 46(ivec4) ImageGather 76 78 26 + Store 73(txval12) 79 + 81: 10 Load 12(g_tTex2df4) + 82: 14 Load 16(g_sSamp) + 83: 18 SampledImage 81 82 + 84: 27(ptr) AccessChain 24 26 + 85: 20(fvec2) Load 84 + 87: 7(fvec4) ImageGather 83 85 86 + Store 80(txval20) 87 + 89: 35 Load 37(g_tTex2di4) + 90: 14 Load 16(g_sSamp) + 91: 40 SampledImage 89 90 + 92: 27(ptr) AccessChain 24 26 + 93: 20(fvec2) Load 92 + 94: 32(ivec4) ImageGather 91 93 86 + Store 88(txval21) 94 + 96: 49 Load 51(g_tTex2du4) + 97: 14 Load 16(g_sSamp) + 98: 54 SampledImage 96 97 + 99: 27(ptr) AccessChain 24 26 + 100: 20(fvec2) Load 99 + 101: 46(ivec4) ImageGather 98 100 86 + Store 95(txval22) 101 + 103: 10 Load 12(g_tTex2df4) + 104: 14 Load 16(g_sSamp) + 105: 18 SampledImage 103 104 + 106: 27(ptr) AccessChain 24 26 + 107: 20(fvec2) Load 106 + 109: 7(fvec4) ImageGather 105 107 108 + Store 102(txval30) 109 + 111: 35 Load 37(g_tTex2di4) + 112: 14 Load 16(g_sSamp) + 113: 40 SampledImage 111 112 + 114: 27(ptr) AccessChain 24 26 + 115: 20(fvec2) Load 114 + 116: 32(ivec4) ImageGather 113 115 108 + Store 110(txval31) 116 + 118: 49 Load 51(g_tTex2du4) + 119: 14 Load 16(g_sSamp) + 120: 54 SampledImage 118 119 + 121: 27(ptr) AccessChain 24 26 + 122: 20(fvec2) Load 121 + 123: 46(ivec4) ImageGather 120 122 108 + Store 117(txval32) 123 + 128: 125 Load 127(g_tTexcdf4) + 129: 14 Load 16(g_sSamp) + 131: 130 SampledImage 128 129 + 133: 132(ptr) AccessChain 24 86 + 134: 21(fvec3) Load 133 + 135: 7(fvec4) ImageGather 131 134 30 + Store 124(txval40) 135 + 140: 137 Load 139(g_tTexcdi4) + 141: 14 Load 16(g_sSamp) + 143: 142 SampledImage 140 141 + 144: 132(ptr) AccessChain 24 86 + 145: 21(fvec3) Load 144 + 146: 32(ivec4) ImageGather 143 145 30 + Store 136(txval41) 146 + 151: 148 Load 150(g_tTexcdu4) + 152: 14 Load 16(g_sSamp) + 154: 153 SampledImage 151 152 + 155: 132(ptr) AccessChain 24 86 + 156: 21(fvec3) Load 155 + 157: 46(ivec4) ImageGather 154 156 30 + Store 147(txval42) 157 + 159: 125 Load 127(g_tTexcdf4) + 160: 14 Load 16(g_sSamp) + 161: 130 SampledImage 159 160 + 162: 132(ptr) AccessChain 24 86 + 163: 21(fvec3) Load 162 + 164: 7(fvec4) ImageGather 161 163 26 + Store 158(txval50) 164 + 166: 137 Load 139(g_tTexcdi4) + 167: 14 Load 16(g_sSamp) + 168: 142 SampledImage 166 167 + 169: 132(ptr) AccessChain 24 86 + 170: 21(fvec3) Load 169 + 171: 32(ivec4) ImageGather 168 170 26 + Store 165(txval51) 171 + 173: 148 Load 150(g_tTexcdu4) 174: 14 Load 16(g_sSamp) - 175: 138 SampledImage 173 174 - 176: 117(fvec3) Load 119(c3) - 177: 40(ivec4) ImageGather 175 176 76 - Store 172(txval62) 177 - 179: 110 Load 112(g_tTexcdf4) - 180: 14 Load 16(g_sSamp) - 181: 115 SampledImage 179 180 - 182: 117(fvec3) Load 119(c3) - 183: 7(fvec4) ImageGather 181 182 95 - Store 178(txval70) 183 - 185: 123 Load 125(g_tTexcdi4) - 186: 14 Load 16(g_sSamp) - 187: 128 SampledImage 185 186 - 188: 117(fvec3) Load 119(c3) - 189: 27(ivec4) ImageGather 187 188 95 - Store 184(txval71) 189 - 191: 133 Load 135(g_tTexcdu4) - 192: 14 Load 16(g_sSamp) - 193: 138 SampledImage 191 192 - 194: 117(fvec3) Load 119(c3) - 195: 40(ivec4) ImageGather 193 194 95 - Store 190(txval72) 195 - 201: 8(ptr) AccessChain 198(psout) 25 - Store 201 200 - 203: 202(ptr) AccessChain 198(psout) 57 - Store 203 199 - 206: 8(ptr) AccessChain 198(psout) 25 - 207: 7(fvec4) Load 206 - Store 205(Color) 207 - 210: 202(ptr) AccessChain 198(psout) 57 - 211: 6(float) Load 210 - Store 209(Depth) 211 + 175: 153 SampledImage 173 174 + 176: 132(ptr) AccessChain 24 86 + 177: 21(fvec3) Load 176 + 178: 46(ivec4) ImageGather 175 177 26 + Store 172(txval52) 178 + 180: 125 Load 127(g_tTexcdf4) + 181: 14 Load 16(g_sSamp) + 182: 130 SampledImage 180 181 + 183: 132(ptr) AccessChain 24 86 + 184: 21(fvec3) Load 183 + 185: 7(fvec4) ImageGather 182 184 86 + Store 179(txval60) 185 + 187: 137 Load 139(g_tTexcdi4) + 188: 14 Load 16(g_sSamp) + 189: 142 SampledImage 187 188 + 190: 132(ptr) AccessChain 24 86 + 191: 21(fvec3) Load 190 + 192: 32(ivec4) ImageGather 189 191 86 + Store 186(txval61) 192 + 194: 148 Load 150(g_tTexcdu4) + 195: 14 Load 16(g_sSamp) + 196: 153 SampledImage 194 195 + 197: 132(ptr) AccessChain 24 86 + 198: 21(fvec3) Load 197 + 199: 46(ivec4) ImageGather 196 198 86 + Store 193(txval62) 199 + 201: 125 Load 127(g_tTexcdf4) + 202: 14 Load 16(g_sSamp) + 203: 130 SampledImage 201 202 + 204: 132(ptr) AccessChain 24 86 + 205: 21(fvec3) Load 204 + 206: 7(fvec4) ImageGather 203 205 108 + Store 200(txval70) 206 + 208: 137 Load 139(g_tTexcdi4) + 209: 14 Load 16(g_sSamp) + 210: 142 SampledImage 208 209 + 211: 132(ptr) AccessChain 24 86 + 212: 21(fvec3) Load 211 + 213: 32(ivec4) ImageGather 210 212 108 + Store 207(txval71) 213 + 215: 148 Load 150(g_tTexcdu4) + 216: 14 Load 16(g_sSamp) + 217: 153 SampledImage 215 216 + 218: 132(ptr) AccessChain 24 86 + 219: 21(fvec3) Load 218 + 220: 46(ivec4) ImageGather 217 219 108 + Store 214(txval72) 220 + 226: 8(ptr) AccessChain 223(psout) 30 + Store 226 225 + 228: 227(ptr) AccessChain 223(psout) 26 + Store 228 224 + 231: 8(ptr) AccessChain 223(psout) 30 + 232: 7(fvec4) Load 231 + Store 230(Color) 232 + 235: 227(ptr) AccessChain 223(psout) 26 + 236: 6(float) Load 235 + Store 234(Depth) 236 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out index a869ba731f2b4fa80eb9b57297b1366911dad8c0..433957417e5dc504bc074ac174be350aa0ef411a 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offset.dx10.frag.out @@ -2,319 +2,571 @@ hlsl.gatherRGBA.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:39 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of float) 0:46 'txval001' (temp 4-component vector of float) -0:46 textureGatherOffset (global 4-component vector of float) +0:46 textureGatherOffset (temp 4-component vector of float) 0:46 Construct combined texture-sampler (temp sampler2D) 0:46 'g_tTex2df4' (uniform texture2D) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c2' (uniform 2-component vector of float) -0:46 'o2' (uniform 2-component vector of int) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) 0:46 Constant: 0:46 0 (const int) 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of int) 0:47 'txval011' (temp 4-component vector of int) -0:47 textureGatherOffset (global 4-component vector of int) +0:47 textureGatherOffset (temp 4-component vector of int) 0:47 Construct combined texture-sampler (temp isampler2D) 0:47 'g_tTex2di4' (uniform itexture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c2' (uniform 2-component vector of float) -0:47 'o2' (uniform 2-component vector of int) +0:47 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 1 (const uint) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) 0:47 Constant: 0:47 0 (const int) 0:48 Sequence 0:48 move second child to first child (temp 4-component vector of uint) 0:48 'txval021' (temp 4-component vector of uint) -0:48 textureGatherOffset (global 4-component vector of uint) +0:48 textureGatherOffset (temp 4-component vector of uint) 0:48 Construct combined texture-sampler (temp usampler2D) 0:48 'g_tTex2du4' (uniform utexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 'c2' (uniform 2-component vector of float) -0:48 'o2' (uniform 2-component vector of int) +0:48 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 1 (const uint) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) 0:48 Constant: 0:48 0 (const int) 0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:50 'txval004' (temp 4-component vector of float) -0:50 textureGatherOffsets (global 4-component vector of float) +0:50 textureGatherOffsets (temp 4-component vector of float) 0:50 Construct combined texture-sampler (temp sampler2D) 0:50 'g_tTex2df4' (uniform texture2D) 0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:50 'c2' (uniform 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) 0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) 0:50 Constant: 0:50 0 (const int) 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of int) 0:51 'txval014' (temp 4-component vector of int) -0:51 textureGatherOffsets (global 4-component vector of int) +0:51 textureGatherOffsets (temp 4-component vector of int) 0:51 Construct combined texture-sampler (temp isampler2D) 0:51 'g_tTex2di4' (uniform itexture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c2' (uniform 2-component vector of float) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) 0:51 Constant: 0:51 0 (const int) 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of uint) 0:52 'txval024' (temp 4-component vector of uint) -0:52 textureGatherOffsets (global 4-component vector of uint) +0:52 textureGatherOffsets (temp 4-component vector of uint) 0:52 Construct combined texture-sampler (temp usampler2D) 0:52 'g_tTex2du4' (uniform utexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c2' (uniform 2-component vector of float) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) 0:52 Constant: 0:52 0 (const int) 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of float) 0:62 'txval101' (temp 4-component vector of float) -0:62 textureGatherOffset (global 4-component vector of float) +0:62 textureGatherOffset (temp 4-component vector of float) 0:62 Construct combined texture-sampler (temp sampler2D) 0:62 'g_tTex2df4' (uniform texture2D) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c2' (uniform 2-component vector of float) -0:62 'o2' (uniform 2-component vector of int) +0:62 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) 0:62 Constant: 0:62 1 (const int) 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of int) 0:63 'txval111' (temp 4-component vector of int) -0:63 textureGatherOffset (global 4-component vector of int) +0:63 textureGatherOffset (temp 4-component vector of int) 0:63 Construct combined texture-sampler (temp isampler2D) 0:63 'g_tTex2di4' (uniform itexture2D) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c2' (uniform 2-component vector of float) -0:63 'o2' (uniform 2-component vector of int) +0:63 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 1 (const uint) +0:63 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 5 (const uint) 0:63 Constant: 0:63 1 (const int) 0:64 Sequence 0:64 move second child to first child (temp 4-component vector of uint) 0:64 'txval121' (temp 4-component vector of uint) -0:64 textureGatherOffset (global 4-component vector of uint) +0:64 textureGatherOffset (temp 4-component vector of uint) 0:64 Construct combined texture-sampler (temp usampler2D) 0:64 'g_tTex2du4' (uniform utexture2D) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:64 'c2' (uniform 2-component vector of float) -0:64 'o2' (uniform 2-component vector of int) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 1 (const uint) +0:64 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 5 (const uint) 0:64 Constant: 0:64 1 (const int) 0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:66 'txval104' (temp 4-component vector of float) -0:66 textureGatherOffsets (global 4-component vector of float) +0:66 textureGatherOffsets (temp 4-component vector of float) 0:66 Construct combined texture-sampler (temp sampler2D) 0:66 'g_tTex2df4' (uniform texture2D) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:66 'c2' (uniform 2-component vector of float) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 1 (const uint) 0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) 0:66 Constant: 0:66 1 (const int) 0:67 Sequence 0:67 move second child to first child (temp 4-component vector of int) 0:67 'txval114' (temp 4-component vector of int) -0:67 textureGatherOffsets (global 4-component vector of int) +0:67 textureGatherOffsets (temp 4-component vector of int) 0:67 Construct combined texture-sampler (temp isampler2D) 0:67 'g_tTex2di4' (uniform itexture2D) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:67 'c2' (uniform 2-component vector of float) +0:67 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 1 (const uint) 0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) 0:67 Constant: 0:67 1 (const int) 0:68 Sequence 0:68 move second child to first child (temp 4-component vector of uint) 0:68 'txval124' (temp 4-component vector of uint) -0:68 textureGatherOffsets (global 4-component vector of uint) +0:68 textureGatherOffsets (temp 4-component vector of uint) 0:68 Construct combined texture-sampler (temp usampler2D) 0:68 'g_tTex2du4' (uniform utexture2D) 0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:68 'c2' (uniform 2-component vector of float) +0:68 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 1 (const uint) 0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) 0:68 Constant: 0:68 1 (const int) 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of float) 0:78 'txval201' (temp 4-component vector of float) -0:78 textureGatherOffset (global 4-component vector of float) +0:78 textureGatherOffset (temp 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler2D) 0:78 'g_tTex2df4' (uniform texture2D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:78 'c2' (uniform 2-component vector of float) -0:78 'o2' (uniform 2-component vector of int) +0:78 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 1 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) 0:78 Constant: 0:78 2 (const int) 0:79 Sequence 0:79 move second child to first child (temp 4-component vector of int) 0:79 'txval211' (temp 4-component vector of int) -0:79 textureGatherOffset (global 4-component vector of int) +0:79 textureGatherOffset (temp 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler2D) 0:79 'g_tTex2di4' (uniform itexture2D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:79 'c2' (uniform 2-component vector of float) -0:79 'o2' (uniform 2-component vector of int) +0:79 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 1 (const uint) +0:79 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 5 (const uint) 0:79 Constant: 0:79 2 (const int) 0:80 Sequence 0:80 move second child to first child (temp 4-component vector of uint) 0:80 'txval221' (temp 4-component vector of uint) -0:80 textureGatherOffset (global 4-component vector of uint) +0:80 textureGatherOffset (temp 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler2D) 0:80 'g_tTex2du4' (uniform utexture2D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:80 'c2' (uniform 2-component vector of float) -0:80 'o2' (uniform 2-component vector of int) +0:80 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 1 (const uint) +0:80 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 5 (const uint) 0:80 Constant: 0:80 2 (const int) 0:82 Sequence 0:82 move second child to first child (temp 4-component vector of float) 0:82 'txval204' (temp 4-component vector of float) -0:82 textureGatherOffsets (global 4-component vector of float) +0:82 textureGatherOffsets (temp 4-component vector of float) 0:82 Construct combined texture-sampler (temp sampler2D) 0:82 'g_tTex2df4' (uniform texture2D) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:82 'c2' (uniform 2-component vector of float) +0:82 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 1 (const uint) 0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) 0:82 Constant: 0:82 2 (const int) 0:83 Sequence 0:83 move second child to first child (temp 4-component vector of int) 0:83 'txval214' (temp 4-component vector of int) -0:83 textureGatherOffsets (global 4-component vector of int) +0:83 textureGatherOffsets (temp 4-component vector of int) 0:83 Construct combined texture-sampler (temp isampler2D) 0:83 'g_tTex2di4' (uniform itexture2D) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:83 'c2' (uniform 2-component vector of float) +0:83 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 1 (const uint) 0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) 0:83 Constant: 0:83 2 (const int) 0:84 Sequence 0:84 move second child to first child (temp 4-component vector of uint) 0:84 'txval224' (temp 4-component vector of uint) -0:84 textureGatherOffsets (global 4-component vector of uint) +0:84 textureGatherOffsets (temp 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usampler2D) 0:84 'g_tTex2du4' (uniform utexture2D) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:84 'c2' (uniform 2-component vector of float) +0:84 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 1 (const uint) 0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) 0:84 Constant: 0:84 2 (const int) 0:94 Sequence 0:94 move second child to first child (temp 4-component vector of float) 0:94 'txval301' (temp 4-component vector of float) -0:94 textureGatherOffset (global 4-component vector of float) +0:94 textureGatherOffset (temp 4-component vector of float) 0:94 Construct combined texture-sampler (temp sampler2D) 0:94 'g_tTex2df4' (uniform texture2D) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:94 'c2' (uniform 2-component vector of float) -0:94 'o2' (uniform 2-component vector of int) +0:94 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 1 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) 0:94 Constant: 0:94 3 (const int) 0:95 Sequence 0:95 move second child to first child (temp 4-component vector of int) 0:95 'txval311' (temp 4-component vector of int) -0:95 textureGatherOffset (global 4-component vector of int) +0:95 textureGatherOffset (temp 4-component vector of int) 0:95 Construct combined texture-sampler (temp isampler2D) 0:95 'g_tTex2di4' (uniform itexture2D) 0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:95 'c2' (uniform 2-component vector of float) -0:95 'o2' (uniform 2-component vector of int) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 1 (const uint) +0:95 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 5 (const uint) 0:95 Constant: 0:95 3 (const int) 0:96 Sequence 0:96 move second child to first child (temp 4-component vector of uint) 0:96 'txval321' (temp 4-component vector of uint) -0:96 textureGatherOffset (global 4-component vector of uint) +0:96 textureGatherOffset (temp 4-component vector of uint) 0:96 Construct combined texture-sampler (temp usampler2D) 0:96 'g_tTex2du4' (uniform utexture2D) 0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:96 'c2' (uniform 2-component vector of float) -0:96 'o2' (uniform 2-component vector of int) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 1 (const uint) +0:96 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 5 (const uint) 0:96 Constant: 0:96 3 (const int) 0:98 Sequence 0:98 move second child to first child (temp 4-component vector of float) 0:98 'txval304' (temp 4-component vector of float) -0:98 textureGatherOffsets (global 4-component vector of float) +0:98 textureGatherOffsets (temp 4-component vector of float) 0:98 Construct combined texture-sampler (temp sampler2D) 0:98 'g_tTex2df4' (uniform texture2D) 0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:98 'c2' (uniform 2-component vector of float) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 1 (const uint) 0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) 0:98 Constant: 0:98 3 (const int) 0:99 Sequence 0:99 move second child to first child (temp 4-component vector of int) 0:99 'txval314' (temp 4-component vector of int) -0:99 textureGatherOffsets (global 4-component vector of int) +0:99 textureGatherOffsets (temp 4-component vector of int) 0:99 Construct combined texture-sampler (temp isampler2D) 0:99 'g_tTex2di4' (uniform itexture2D) 0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:99 'c2' (uniform 2-component vector of float) +0:99 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 1 (const uint) 0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) 0:99 Constant: 0:99 3 (const int) 0:100 Sequence 0:100 move second child to first child (temp 4-component vector of uint) 0:100 'txval324' (temp 4-component vector of uint) -0:100 textureGatherOffsets (global 4-component vector of uint) +0:100 textureGatherOffsets (temp 4-component vector of uint) 0:100 Construct combined texture-sampler (temp usampler2D) 0:100 'g_tTex2du4' (uniform utexture2D) 0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:100 'c2' (uniform 2-component vector of float) +0:100 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 1 (const uint) 0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) 0:100 Constant: 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) @@ -334,8 +586,8 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:? Sequence -0:? Sequence +0:115 Sequence +0:115 Sequence 0:115 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:115 Color: direct index for structure (temp 4-component vector of float) @@ -350,6 +602,8 @@ gl_FragCoord origin is upper left 0:115 1 (const int) 0:115 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -365,16 +619,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -383,319 +628,571 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:39 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:39 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:39 Function Parameters: 0:? Sequence 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of float) 0:46 'txval001' (temp 4-component vector of float) -0:46 textureGatherOffset (global 4-component vector of float) +0:46 textureGatherOffset (temp 4-component vector of float) 0:46 Construct combined texture-sampler (temp sampler2D) 0:46 'g_tTex2df4' (uniform texture2D) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c2' (uniform 2-component vector of float) -0:46 'o2' (uniform 2-component vector of int) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) 0:46 Constant: 0:46 0 (const int) 0:47 Sequence 0:47 move second child to first child (temp 4-component vector of int) 0:47 'txval011' (temp 4-component vector of int) -0:47 textureGatherOffset (global 4-component vector of int) +0:47 textureGatherOffset (temp 4-component vector of int) 0:47 Construct combined texture-sampler (temp isampler2D) 0:47 'g_tTex2di4' (uniform itexture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 'c2' (uniform 2-component vector of float) -0:47 'o2' (uniform 2-component vector of int) +0:47 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 1 (const uint) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) 0:47 Constant: 0:47 0 (const int) 0:48 Sequence 0:48 move second child to first child (temp 4-component vector of uint) 0:48 'txval021' (temp 4-component vector of uint) -0:48 textureGatherOffset (global 4-component vector of uint) +0:48 textureGatherOffset (temp 4-component vector of uint) 0:48 Construct combined texture-sampler (temp usampler2D) 0:48 'g_tTex2du4' (uniform utexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 'c2' (uniform 2-component vector of float) -0:48 'o2' (uniform 2-component vector of int) +0:48 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 1 (const uint) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) 0:48 Constant: 0:48 0 (const int) 0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:50 'txval004' (temp 4-component vector of float) -0:50 textureGatherOffsets (global 4-component vector of float) +0:50 textureGatherOffsets (temp 4-component vector of float) 0:50 Construct combined texture-sampler (temp sampler2D) 0:50 'g_tTex2df4' (uniform texture2D) 0:50 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:50 'c2' (uniform 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) 0:50 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) -0:50 'o2' (uniform 2-component vector of int) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) +0:50 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 5 (const uint) 0:50 Constant: 0:50 0 (const int) 0:51 Sequence 0:51 move second child to first child (temp 4-component vector of int) 0:51 'txval014' (temp 4-component vector of int) -0:51 textureGatherOffsets (global 4-component vector of int) +0:51 textureGatherOffsets (temp 4-component vector of int) 0:51 Construct combined texture-sampler (temp isampler2D) 0:51 'g_tTex2di4' (uniform itexture2D) 0:51 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:51 'c2' (uniform 2-component vector of float) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) -0:51 'o2' (uniform 2-component vector of int) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) +0:51 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 5 (const uint) 0:51 Constant: 0:51 0 (const int) 0:52 Sequence 0:52 move second child to first child (temp 4-component vector of uint) 0:52 'txval024' (temp 4-component vector of uint) -0:52 textureGatherOffsets (global 4-component vector of uint) +0:52 textureGatherOffsets (temp 4-component vector of uint) 0:52 Construct combined texture-sampler (temp usampler2D) 0:52 'g_tTex2du4' (uniform utexture2D) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 'c2' (uniform 2-component vector of float) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) -0:52 'o2' (uniform 2-component vector of int) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) +0:52 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 5 (const uint) 0:52 Constant: 0:52 0 (const int) 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of float) 0:62 'txval101' (temp 4-component vector of float) -0:62 textureGatherOffset (global 4-component vector of float) +0:62 textureGatherOffset (temp 4-component vector of float) 0:62 Construct combined texture-sampler (temp sampler2D) 0:62 'g_tTex2df4' (uniform texture2D) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c2' (uniform 2-component vector of float) -0:62 'o2' (uniform 2-component vector of int) +0:62 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 1 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) 0:62 Constant: 0:62 1 (const int) 0:63 Sequence 0:63 move second child to first child (temp 4-component vector of int) 0:63 'txval111' (temp 4-component vector of int) -0:63 textureGatherOffset (global 4-component vector of int) +0:63 textureGatherOffset (temp 4-component vector of int) 0:63 Construct combined texture-sampler (temp isampler2D) 0:63 'g_tTex2di4' (uniform itexture2D) 0:63 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:63 'c2' (uniform 2-component vector of float) -0:63 'o2' (uniform 2-component vector of int) +0:63 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 1 (const uint) +0:63 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 5 (const uint) 0:63 Constant: 0:63 1 (const int) 0:64 Sequence 0:64 move second child to first child (temp 4-component vector of uint) 0:64 'txval121' (temp 4-component vector of uint) -0:64 textureGatherOffset (global 4-component vector of uint) +0:64 textureGatherOffset (temp 4-component vector of uint) 0:64 Construct combined texture-sampler (temp usampler2D) 0:64 'g_tTex2du4' (uniform utexture2D) 0:64 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:64 'c2' (uniform 2-component vector of float) -0:64 'o2' (uniform 2-component vector of int) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 1 (const uint) +0:64 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 5 (const uint) 0:64 Constant: 0:64 1 (const int) 0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:66 'txval104' (temp 4-component vector of float) -0:66 textureGatherOffsets (global 4-component vector of float) +0:66 textureGatherOffsets (temp 4-component vector of float) 0:66 Construct combined texture-sampler (temp sampler2D) 0:66 'g_tTex2df4' (uniform texture2D) 0:66 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:66 'c2' (uniform 2-component vector of float) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 1 (const uint) 0:66 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) -0:66 'o2' (uniform 2-component vector of int) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) +0:66 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 5 (const uint) 0:66 Constant: 0:66 1 (const int) 0:67 Sequence 0:67 move second child to first child (temp 4-component vector of int) 0:67 'txval114' (temp 4-component vector of int) -0:67 textureGatherOffsets (global 4-component vector of int) +0:67 textureGatherOffsets (temp 4-component vector of int) 0:67 Construct combined texture-sampler (temp isampler2D) 0:67 'g_tTex2di4' (uniform itexture2D) 0:67 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:67 'c2' (uniform 2-component vector of float) +0:67 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 1 (const uint) 0:67 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) -0:67 'o2' (uniform 2-component vector of int) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) +0:67 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 5 (const uint) 0:67 Constant: 0:67 1 (const int) 0:68 Sequence 0:68 move second child to first child (temp 4-component vector of uint) 0:68 'txval124' (temp 4-component vector of uint) -0:68 textureGatherOffsets (global 4-component vector of uint) +0:68 textureGatherOffsets (temp 4-component vector of uint) 0:68 Construct combined texture-sampler (temp usampler2D) 0:68 'g_tTex2du4' (uniform utexture2D) 0:68 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:68 'c2' (uniform 2-component vector of float) +0:68 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 1 (const uint) 0:68 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) -0:68 'o2' (uniform 2-component vector of int) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) +0:68 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 5 (const uint) 0:68 Constant: 0:68 1 (const int) 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of float) 0:78 'txval201' (temp 4-component vector of float) -0:78 textureGatherOffset (global 4-component vector of float) +0:78 textureGatherOffset (temp 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler2D) 0:78 'g_tTex2df4' (uniform texture2D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:78 'c2' (uniform 2-component vector of float) -0:78 'o2' (uniform 2-component vector of int) +0:78 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 1 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) 0:78 Constant: 0:78 2 (const int) 0:79 Sequence 0:79 move second child to first child (temp 4-component vector of int) 0:79 'txval211' (temp 4-component vector of int) -0:79 textureGatherOffset (global 4-component vector of int) +0:79 textureGatherOffset (temp 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler2D) 0:79 'g_tTex2di4' (uniform itexture2D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:79 'c2' (uniform 2-component vector of float) -0:79 'o2' (uniform 2-component vector of int) +0:79 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 1 (const uint) +0:79 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:79 Constant: +0:79 5 (const uint) 0:79 Constant: 0:79 2 (const int) 0:80 Sequence 0:80 move second child to first child (temp 4-component vector of uint) 0:80 'txval221' (temp 4-component vector of uint) -0:80 textureGatherOffset (global 4-component vector of uint) +0:80 textureGatherOffset (temp 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler2D) 0:80 'g_tTex2du4' (uniform utexture2D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:80 'c2' (uniform 2-component vector of float) -0:80 'o2' (uniform 2-component vector of int) +0:80 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 1 (const uint) +0:80 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:80 Constant: +0:80 5 (const uint) 0:80 Constant: 0:80 2 (const int) 0:82 Sequence 0:82 move second child to first child (temp 4-component vector of float) 0:82 'txval204' (temp 4-component vector of float) -0:82 textureGatherOffsets (global 4-component vector of float) +0:82 textureGatherOffsets (temp 4-component vector of float) 0:82 Construct combined texture-sampler (temp sampler2D) 0:82 'g_tTex2df4' (uniform texture2D) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:82 'c2' (uniform 2-component vector of float) +0:82 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 1 (const uint) 0:82 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) -0:82 'o2' (uniform 2-component vector of int) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) +0:82 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:82 Constant: +0:82 5 (const uint) 0:82 Constant: 0:82 2 (const int) 0:83 Sequence 0:83 move second child to first child (temp 4-component vector of int) 0:83 'txval214' (temp 4-component vector of int) -0:83 textureGatherOffsets (global 4-component vector of int) +0:83 textureGatherOffsets (temp 4-component vector of int) 0:83 Construct combined texture-sampler (temp isampler2D) 0:83 'g_tTex2di4' (uniform itexture2D) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:83 'c2' (uniform 2-component vector of float) +0:83 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 1 (const uint) 0:83 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) -0:83 'o2' (uniform 2-component vector of int) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) +0:83 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:83 Constant: +0:83 5 (const uint) 0:83 Constant: 0:83 2 (const int) 0:84 Sequence 0:84 move second child to first child (temp 4-component vector of uint) 0:84 'txval224' (temp 4-component vector of uint) -0:84 textureGatherOffsets (global 4-component vector of uint) +0:84 textureGatherOffsets (temp 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usampler2D) 0:84 'g_tTex2du4' (uniform utexture2D) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:84 'c2' (uniform 2-component vector of float) +0:84 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 1 (const uint) 0:84 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) -0:84 'o2' (uniform 2-component vector of int) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) +0:84 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:84 Constant: +0:84 5 (const uint) 0:84 Constant: 0:84 2 (const int) 0:94 Sequence 0:94 move second child to first child (temp 4-component vector of float) 0:94 'txval301' (temp 4-component vector of float) -0:94 textureGatherOffset (global 4-component vector of float) +0:94 textureGatherOffset (temp 4-component vector of float) 0:94 Construct combined texture-sampler (temp sampler2D) 0:94 'g_tTex2df4' (uniform texture2D) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:94 'c2' (uniform 2-component vector of float) -0:94 'o2' (uniform 2-component vector of int) +0:94 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 1 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) 0:94 Constant: 0:94 3 (const int) 0:95 Sequence 0:95 move second child to first child (temp 4-component vector of int) 0:95 'txval311' (temp 4-component vector of int) -0:95 textureGatherOffset (global 4-component vector of int) +0:95 textureGatherOffset (temp 4-component vector of int) 0:95 Construct combined texture-sampler (temp isampler2D) 0:95 'g_tTex2di4' (uniform itexture2D) 0:95 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:95 'c2' (uniform 2-component vector of float) -0:95 'o2' (uniform 2-component vector of int) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 1 (const uint) +0:95 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:95 Constant: +0:95 5 (const uint) 0:95 Constant: 0:95 3 (const int) 0:96 Sequence 0:96 move second child to first child (temp 4-component vector of uint) 0:96 'txval321' (temp 4-component vector of uint) -0:96 textureGatherOffset (global 4-component vector of uint) +0:96 textureGatherOffset (temp 4-component vector of uint) 0:96 Construct combined texture-sampler (temp usampler2D) 0:96 'g_tTex2du4' (uniform utexture2D) 0:96 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:96 'c2' (uniform 2-component vector of float) -0:96 'o2' (uniform 2-component vector of int) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 1 (const uint) +0:96 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:96 Constant: +0:96 5 (const uint) 0:96 Constant: 0:96 3 (const int) 0:98 Sequence 0:98 move second child to first child (temp 4-component vector of float) 0:98 'txval304' (temp 4-component vector of float) -0:98 textureGatherOffsets (global 4-component vector of float) +0:98 textureGatherOffsets (temp 4-component vector of float) 0:98 Construct combined texture-sampler (temp sampler2D) 0:98 'g_tTex2df4' (uniform texture2D) 0:98 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:98 'c2' (uniform 2-component vector of float) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 1 (const uint) 0:98 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) -0:98 'o2' (uniform 2-component vector of int) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) +0:98 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:98 Constant: +0:98 5 (const uint) 0:98 Constant: 0:98 3 (const int) 0:99 Sequence 0:99 move second child to first child (temp 4-component vector of int) 0:99 'txval314' (temp 4-component vector of int) -0:99 textureGatherOffsets (global 4-component vector of int) +0:99 textureGatherOffsets (temp 4-component vector of int) 0:99 Construct combined texture-sampler (temp isampler2D) 0:99 'g_tTex2di4' (uniform itexture2D) 0:99 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:99 'c2' (uniform 2-component vector of float) +0:99 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 1 (const uint) 0:99 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) -0:99 'o2' (uniform 2-component vector of int) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) +0:99 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:99 Constant: +0:99 5 (const uint) 0:99 Constant: 0:99 3 (const int) 0:100 Sequence 0:100 move second child to first child (temp 4-component vector of uint) 0:100 'txval324' (temp 4-component vector of uint) -0:100 textureGatherOffsets (global 4-component vector of uint) +0:100 textureGatherOffsets (temp 4-component vector of uint) 0:100 Construct combined texture-sampler (temp usampler2D) 0:100 'g_tTex2du4' (uniform utexture2D) 0:100 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:100 'c2' (uniform 2-component vector of float) +0:100 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of float) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 1 (const uint) 0:100 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) -0:100 'o2' (uniform 2-component vector of int) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) +0:100 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:100 Constant: +0:100 5 (const uint) 0:100 Constant: 0:100 3 (const int) 0:112 move second child to first child (temp 4-component vector of float) @@ -715,8 +1212,8 @@ gl_FragCoord origin is upper left 0:113 1 (const int) 0:113 Constant: 0:113 1.000000 -0:? Sequence -0:? Sequence +0:115 Sequence +0:115 Sequence 0:115 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:115 Color: direct index for structure (temp 4-component vector of float) @@ -731,6 +1228,8 @@ gl_FragCoord origin is upper left 0:115 1 (const int) 0:115 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -746,102 +1245,105 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 318 +// Id's are bound by 392 Capability Shader Capability ImageGatherExtended Capability Sampled1D 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 271 + EntryPoint Fragment 4 "main" 355 359 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" Name 12 "g_tTex2df4" Name 16 "g_sSamp" - Name 22 "c2" - Name 27 "o2" - Name 33 "txval011" - Name 36 "g_tTex2di4" - Name 47 "txval021" - Name 50 "g_tTex2du4" - Name 58 "txval004" - Name 71 "txval014" - Name 82 "txval024" - Name 93 "txval101" - Name 101 "txval111" - Name 108 "txval121" - Name 115 "txval104" - Name 126 "txval114" - Name 137 "txval124" - Name 148 "txval201" - Name 156 "txval211" - Name 163 "txval221" - Name 170 "txval204" - Name 181 "txval214" - Name 192 "txval224" - Name 203 "txval301" - Name 211 "txval311" - Name 218 "txval321" - Name 225 "txval304" - Name 236 "txval314" - Name 247 "txval324" - Name 258 "PS_OUTPUT" - MemberName 258(PS_OUTPUT) 0 "Color" - MemberName 258(PS_OUTPUT) 1 "Depth" - Name 260 "psout" - Name 267 "Color" - Name 271 "Depth" - Name 275 "g_sSamp2d" - Name 278 "g_tTex1df4a" - Name 279 "g_tTex1df4" - Name 282 "g_tTex1di4" - Name 285 "g_tTex1du4" - Name 288 "g_tTex3df4" - Name 291 "g_tTex3di4" - Name 294 "g_tTex3du4" - Name 297 "g_tTexcdf4" - Name 300 "g_tTexcdi4" - Name 303 "g_tTexcdu4" - Name 305 "c1" - Name 308 "c3" - Name 310 "c4" - Name 312 "o1" - Name 315 "o3" - Name 317 "o4" + Name 26 "$Global" + MemberName 26($Global) 0 "c1" + MemberName 26($Global) 1 "c2" + MemberName 26($Global) 2 "c3" + MemberName 26($Global) 3 "c4" + MemberName 26($Global) 4 "o1" + MemberName 26($Global) 5 "o2" + MemberName 26($Global) 6 "o3" + MemberName 26($Global) 7 "o4" + Name 28 "" + Name 40 "txval011" + Name 43 "g_tTex2di4" + Name 56 "txval021" + Name 59 "g_tTex2du4" + Name 69 "txval004" + Name 87 "txval014" + Name 103 "txval024" + Name 119 "txval101" + Name 128 "txval111" + Name 137 "txval121" + Name 146 "txval104" + Name 162 "txval114" + Name 178 "txval124" + Name 194 "txval201" + Name 204 "txval211" + Name 213 "txval221" + Name 222 "txval204" + Name 238 "txval214" + Name 254 "txval224" + Name 270 "txval301" + Name 280 "txval311" + Name 289 "txval321" + Name 298 "txval304" + Name 314 "txval314" + Name 330 "txval324" + Name 346 "PS_OUTPUT" + MemberName 346(PS_OUTPUT) 0 "Color" + MemberName 346(PS_OUTPUT) 1 "Depth" + Name 348 "psout" + Name 355 "Color" + Name 359 "Depth" + Name 363 "g_sSamp2d" + Name 366 "g_tTex1df4a" + Name 367 "g_tTex1df4" + Name 370 "g_tTex1di4" + Name 373 "g_tTex1du4" + Name 376 "g_tTex3df4" + Name 379 "g_tTex3di4" + Name 382 "g_tTex3du4" + Name 385 "g_tTexcdf4" + Name 388 "g_tTexcdi4" + Name 391 "g_tTexcdu4" Decorate 12(g_tTex2df4) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 - Decorate 36(g_tTex2di4) DescriptorSet 0 - Decorate 50(g_tTex2du4) DescriptorSet 0 - Decorate 267(Color) Location 0 - Decorate 271(Depth) BuiltIn FragDepth - Decorate 275(g_sSamp2d) DescriptorSet 0 - Decorate 278(g_tTex1df4a) DescriptorSet 0 - Decorate 278(g_tTex1df4a) Binding 1 - Decorate 279(g_tTex1df4) DescriptorSet 0 - Decorate 279(g_tTex1df4) Binding 0 - Decorate 282(g_tTex1di4) DescriptorSet 0 - Decorate 285(g_tTex1du4) DescriptorSet 0 - Decorate 288(g_tTex3df4) DescriptorSet 0 - Decorate 291(g_tTex3di4) DescriptorSet 0 - Decorate 294(g_tTex3du4) DescriptorSet 0 - Decorate 297(g_tTexcdf4) DescriptorSet 0 - Decorate 300(g_tTexcdi4) DescriptorSet 0 - Decorate 303(g_tTexcdu4) DescriptorSet 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + MemberDecorate 26($Global) 4 Offset 48 + MemberDecorate 26($Global) 5 Offset 56 + MemberDecorate 26($Global) 6 Offset 64 + MemberDecorate 26($Global) 7 Offset 80 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 43(g_tTex2di4) DescriptorSet 0 + Decorate 59(g_tTex2du4) DescriptorSet 0 + Decorate 355(Color) Location 0 + Decorate 359(Depth) BuiltIn FragDepth + Decorate 363(g_sSamp2d) DescriptorSet 0 + Decorate 366(g_tTex1df4a) DescriptorSet 0 + Decorate 366(g_tTex1df4a) Binding 1 + Decorate 367(g_tTex1df4) DescriptorSet 0 + Decorate 367(g_tTex1df4) Binding 0 + Decorate 370(g_tTex1di4) DescriptorSet 0 + Decorate 373(g_tTex1du4) DescriptorSet 0 + Decorate 376(g_tTex3df4) DescriptorSet 0 + Decorate 379(g_tTex3di4) DescriptorSet 0 + Decorate 382(g_tTex3du4) DescriptorSet 0 + Decorate 385(g_tTexcdf4) DescriptorSet 0 + Decorate 388(g_tTexcdi4) DescriptorSet 0 + Decorate 391(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -855,335 +1357,409 @@ gl_FragCoord origin is upper left 16(g_sSamp): 15(ptr) Variable UniformConstant 18: TypeSampledImage 10 20: TypeVector 6(float) 2 - 21: TypePointer UniformConstant 20(fvec2) - 22(c2): 21(ptr) Variable UniformConstant - 24: TypeInt 32 1 - 25: TypeVector 24(int) 2 - 26: TypePointer UniformConstant 25(ivec2) - 27(o2): 26(ptr) Variable UniformConstant - 29: 24(int) Constant 0 - 31: TypeVector 24(int) 4 - 32: TypePointer Function 31(ivec4) - 34: TypeImage 24(int) 2D sampled format:Unknown - 35: TypePointer UniformConstant 34 - 36(g_tTex2di4): 35(ptr) Variable UniformConstant - 39: TypeSampledImage 34 - 44: TypeInt 32 0 - 45: TypeVector 44(int) 4 - 46: TypePointer Function 45(ivec4) - 48: TypeImage 44(int) 2D sampled format:Unknown - 49: TypePointer UniformConstant 48 - 50(g_tTex2du4): 49(ptr) Variable UniformConstant - 53: TypeSampledImage 48 - 67: 44(int) Constant 4 - 68: TypeArray 25(ivec2) 67 - 99: 24(int) Constant 1 - 154: 24(int) Constant 2 - 209: 24(int) Constant 3 - 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 259: TypePointer Function 258(PS_OUTPUT) - 261: 6(float) Constant 1065353216 - 262: 7(fvec4) ConstantComposite 261 261 261 261 - 264: TypePointer Function 6(float) - 266: TypePointer Output 7(fvec4) - 267(Color): 266(ptr) Variable Output - 270: TypePointer Output 6(float) - 271(Depth): 270(ptr) Variable Output - 275(g_sSamp2d): 15(ptr) Variable UniformConstant - 276: TypeImage 6(float) 1D sampled format:Unknown - 277: TypePointer UniformConstant 276 -278(g_tTex1df4a): 277(ptr) Variable UniformConstant - 279(g_tTex1df4): 277(ptr) Variable UniformConstant - 280: TypeImage 24(int) 1D sampled format:Unknown - 281: TypePointer UniformConstant 280 - 282(g_tTex1di4): 281(ptr) Variable UniformConstant - 283: TypeImage 44(int) 1D sampled format:Unknown - 284: TypePointer UniformConstant 283 - 285(g_tTex1du4): 284(ptr) Variable UniformConstant - 286: TypeImage 6(float) 3D sampled format:Unknown - 287: TypePointer UniformConstant 286 - 288(g_tTex3df4): 287(ptr) Variable UniformConstant - 289: TypeImage 24(int) 3D sampled format:Unknown - 290: TypePointer UniformConstant 289 - 291(g_tTex3di4): 290(ptr) Variable UniformConstant - 292: TypeImage 44(int) 3D sampled format:Unknown - 293: TypePointer UniformConstant 292 - 294(g_tTex3du4): 293(ptr) Variable UniformConstant - 295: TypeImage 6(float) Cube sampled format:Unknown - 296: TypePointer UniformConstant 295 - 297(g_tTexcdf4): 296(ptr) Variable UniformConstant - 298: TypeImage 24(int) Cube sampled format:Unknown - 299: TypePointer UniformConstant 298 - 300(g_tTexcdi4): 299(ptr) Variable UniformConstant - 301: TypeImage 44(int) Cube sampled format:Unknown - 302: TypePointer UniformConstant 301 - 303(g_tTexcdu4): 302(ptr) Variable UniformConstant - 304: TypePointer UniformConstant 6(float) - 305(c1): 304(ptr) Variable UniformConstant - 306: TypeVector 6(float) 3 - 307: TypePointer UniformConstant 306(fvec3) - 308(c3): 307(ptr) Variable UniformConstant - 309: TypePointer UniformConstant 7(fvec4) - 310(c4): 309(ptr) Variable UniformConstant - 311: TypePointer UniformConstant 24(int) - 312(o1): 311(ptr) Variable UniformConstant - 313: TypeVector 24(int) 3 - 314: TypePointer UniformConstant 313(ivec3) - 315(o3): 314(ptr) Variable UniformConstant - 316: TypePointer UniformConstant 31(ivec4) - 317(o4): 316(ptr) Variable UniformConstant + 21: TypeVector 6(float) 3 + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypeVector 22(int) 3 + 25: TypeVector 22(int) 4 + 26($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) 22(int) 23(ivec2) 24(ivec3) 25(ivec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: 22(int) Constant 1 + 30: TypePointer Uniform 20(fvec2) + 33: 22(int) Constant 5 + 34: TypePointer Uniform 23(ivec2) + 37: 22(int) Constant 0 + 39: TypePointer Function 25(ivec4) + 41: TypeImage 22(int) 2D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex2di4): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 53: TypeInt 32 0 + 54: TypeVector 53(int) 4 + 55: TypePointer Function 54(ivec4) + 57: TypeImage 53(int) 2D sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2du4): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 83: 53(int) Constant 4 + 84: TypeArray 23(ivec2) 83 + 202: 22(int) Constant 2 + 278: 22(int) Constant 3 + 346(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 347: TypePointer Function 346(PS_OUTPUT) + 349: 6(float) Constant 1065353216 + 350: 7(fvec4) ConstantComposite 349 349 349 349 + 352: TypePointer Function 6(float) + 354: TypePointer Output 7(fvec4) + 355(Color): 354(ptr) Variable Output + 358: TypePointer Output 6(float) + 359(Depth): 358(ptr) Variable Output + 363(g_sSamp2d): 15(ptr) Variable UniformConstant + 364: TypeImage 6(float) 1D sampled format:Unknown + 365: TypePointer UniformConstant 364 +366(g_tTex1df4a): 365(ptr) Variable UniformConstant + 367(g_tTex1df4): 365(ptr) Variable UniformConstant + 368: TypeImage 22(int) 1D sampled format:Unknown + 369: TypePointer UniformConstant 368 + 370(g_tTex1di4): 369(ptr) Variable UniformConstant + 371: TypeImage 53(int) 1D sampled format:Unknown + 372: TypePointer UniformConstant 371 + 373(g_tTex1du4): 372(ptr) Variable UniformConstant + 374: TypeImage 6(float) 3D sampled format:Unknown + 375: TypePointer UniformConstant 374 + 376(g_tTex3df4): 375(ptr) Variable UniformConstant + 377: TypeImage 22(int) 3D sampled format:Unknown + 378: TypePointer UniformConstant 377 + 379(g_tTex3di4): 378(ptr) Variable UniformConstant + 380: TypeImage 53(int) 3D sampled format:Unknown + 381: TypePointer UniformConstant 380 + 382(g_tTex3du4): 381(ptr) Variable UniformConstant + 383: TypeImage 6(float) Cube sampled format:Unknown + 384: TypePointer UniformConstant 383 + 385(g_tTexcdf4): 384(ptr) Variable UniformConstant + 386: TypeImage 22(int) Cube sampled format:Unknown + 387: TypePointer UniformConstant 386 + 388(g_tTexcdi4): 387(ptr) Variable UniformConstant + 389: TypeImage 53(int) Cube sampled format:Unknown + 390: TypePointer UniformConstant 389 + 391(g_tTexcdu4): 390(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function - 33(txval011): 32(ptr) Variable Function - 47(txval021): 46(ptr) Variable Function - 58(txval004): 8(ptr) Variable Function - 71(txval014): 32(ptr) Variable Function - 82(txval024): 46(ptr) Variable Function - 93(txval101): 8(ptr) Variable Function - 101(txval111): 32(ptr) Variable Function - 108(txval121): 46(ptr) Variable Function - 115(txval104): 8(ptr) Variable Function - 126(txval114): 32(ptr) Variable Function - 137(txval124): 46(ptr) Variable Function - 148(txval201): 8(ptr) Variable Function - 156(txval211): 32(ptr) Variable Function - 163(txval221): 46(ptr) Variable Function - 170(txval204): 8(ptr) Variable Function - 181(txval214): 32(ptr) Variable Function - 192(txval224): 46(ptr) Variable Function - 203(txval301): 8(ptr) Variable Function - 211(txval311): 32(ptr) Variable Function - 218(txval321): 46(ptr) Variable Function - 225(txval304): 8(ptr) Variable Function - 236(txval314): 32(ptr) Variable Function - 247(txval324): 46(ptr) Variable Function - 260(psout): 259(ptr) Variable Function + 40(txval011): 39(ptr) Variable Function + 56(txval021): 55(ptr) Variable Function + 69(txval004): 8(ptr) Variable Function + 87(txval014): 39(ptr) Variable Function + 103(txval024): 55(ptr) Variable Function + 119(txval101): 8(ptr) Variable Function + 128(txval111): 39(ptr) Variable Function + 137(txval121): 55(ptr) Variable Function + 146(txval104): 8(ptr) Variable Function + 162(txval114): 39(ptr) Variable Function + 178(txval124): 55(ptr) Variable Function + 194(txval201): 8(ptr) Variable Function + 204(txval211): 39(ptr) Variable Function + 213(txval221): 55(ptr) Variable Function + 222(txval204): 8(ptr) Variable Function + 238(txval214): 39(ptr) Variable Function + 254(txval224): 55(ptr) Variable Function + 270(txval301): 8(ptr) Variable Function + 280(txval311): 39(ptr) Variable Function + 289(txval321): 55(ptr) Variable Function + 298(txval304): 8(ptr) Variable Function + 314(txval314): 39(ptr) Variable Function + 330(txval324): 55(ptr) Variable Function + 348(psout): 347(ptr) Variable Function 13: 10 Load 12(g_tTex2df4) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 - 23: 20(fvec2) Load 22(c2) - 28: 25(ivec2) Load 27(o2) - 30: 7(fvec4) ImageGather 19 23 29 Offset 28 - Store 9(txval001) 30 - 37: 34 Load 36(g_tTex2di4) - 38: 14 Load 16(g_sSamp) - 40: 39 SampledImage 37 38 - 41: 20(fvec2) Load 22(c2) - 42: 25(ivec2) Load 27(o2) - 43: 31(ivec4) ImageGather 40 41 29 Offset 42 - Store 33(txval011) 43 - 51: 48 Load 50(g_tTex2du4) - 52: 14 Load 16(g_sSamp) - 54: 53 SampledImage 51 52 - 55: 20(fvec2) Load 22(c2) - 56: 25(ivec2) Load 27(o2) - 57: 45(ivec4) ImageGather 54 55 29 Offset 56 - Store 47(txval021) 57 - 59: 10 Load 12(g_tTex2df4) - 60: 14 Load 16(g_sSamp) - 61: 18 SampledImage 59 60 - 62: 20(fvec2) Load 22(c2) - 63: 25(ivec2) Load 27(o2) - 64: 25(ivec2) Load 27(o2) - 65: 25(ivec2) Load 27(o2) - 66: 25(ivec2) Load 27(o2) - 69: 68 CompositeConstruct 63 64 65 66 - 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69 - Store 58(txval004) 70 - 72: 34 Load 36(g_tTex2di4) - 73: 14 Load 16(g_sSamp) - 74: 39 SampledImage 72 73 - 75: 20(fvec2) Load 22(c2) - 76: 25(ivec2) Load 27(o2) - 77: 25(ivec2) Load 27(o2) - 78: 25(ivec2) Load 27(o2) - 79: 25(ivec2) Load 27(o2) - 80: 68 CompositeConstruct 76 77 78 79 - 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80 - Store 71(txval014) 81 - 83: 48 Load 50(g_tTex2du4) - 84: 14 Load 16(g_sSamp) - 85: 53 SampledImage 83 84 - 86: 20(fvec2) Load 22(c2) - 87: 25(ivec2) Load 27(o2) - 88: 25(ivec2) Load 27(o2) - 89: 25(ivec2) Load 27(o2) - 90: 25(ivec2) Load 27(o2) - 91: 68 CompositeConstruct 87 88 89 90 - 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91 - Store 82(txval024) 92 - 94: 10 Load 12(g_tTex2df4) - 95: 14 Load 16(g_sSamp) - 96: 18 SampledImage 94 95 - 97: 20(fvec2) Load 22(c2) - 98: 25(ivec2) Load 27(o2) - 100: 7(fvec4) ImageGather 96 97 99 Offset 98 - Store 93(txval101) 100 - 102: 34 Load 36(g_tTex2di4) - 103: 14 Load 16(g_sSamp) - 104: 39 SampledImage 102 103 - 105: 20(fvec2) Load 22(c2) - 106: 25(ivec2) Load 27(o2) - 107: 31(ivec4) ImageGather 104 105 99 Offset 106 - Store 101(txval111) 107 - 109: 48 Load 50(g_tTex2du4) - 110: 14 Load 16(g_sSamp) - 111: 53 SampledImage 109 110 - 112: 20(fvec2) Load 22(c2) - 113: 25(ivec2) Load 27(o2) - 114: 45(ivec4) ImageGather 111 112 99 Offset 113 - Store 108(txval121) 114 - 116: 10 Load 12(g_tTex2df4) - 117: 14 Load 16(g_sSamp) - 118: 18 SampledImage 116 117 - 119: 20(fvec2) Load 22(c2) - 120: 25(ivec2) Load 27(o2) - 121: 25(ivec2) Load 27(o2) - 122: 25(ivec2) Load 27(o2) - 123: 25(ivec2) Load 27(o2) - 124: 68 CompositeConstruct 120 121 122 123 - 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124 - Store 115(txval104) 125 - 127: 34 Load 36(g_tTex2di4) - 128: 14 Load 16(g_sSamp) - 129: 39 SampledImage 127 128 - 130: 20(fvec2) Load 22(c2) - 131: 25(ivec2) Load 27(o2) - 132: 25(ivec2) Load 27(o2) - 133: 25(ivec2) Load 27(o2) - 134: 25(ivec2) Load 27(o2) - 135: 68 CompositeConstruct 131 132 133 134 - 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135 - Store 126(txval114) 136 - 138: 48 Load 50(g_tTex2du4) + 31: 30(ptr) AccessChain 28 29 + 32: 20(fvec2) Load 31 + 35: 34(ptr) AccessChain 28 33 + 36: 23(ivec2) Load 35 + 38: 7(fvec4) ImageGather 19 32 37 Offset 36 + Store 9(txval001) 38 + 44: 41 Load 43(g_tTex2di4) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 48: 30(ptr) AccessChain 28 29 + 49: 20(fvec2) Load 48 + 50: 34(ptr) AccessChain 28 33 + 51: 23(ivec2) Load 50 + 52: 25(ivec4) ImageGather 47 49 37 Offset 51 + Store 40(txval011) 52 + 60: 57 Load 59(g_tTex2du4) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 64: 30(ptr) AccessChain 28 29 + 65: 20(fvec2) Load 64 + 66: 34(ptr) AccessChain 28 33 + 67: 23(ivec2) Load 66 + 68: 54(ivec4) ImageGather 63 65 37 Offset 67 + Store 56(txval021) 68 + 70: 10 Load 12(g_tTex2df4) + 71: 14 Load 16(g_sSamp) + 72: 18 SampledImage 70 71 + 73: 30(ptr) AccessChain 28 29 + 74: 20(fvec2) Load 73 + 75: 34(ptr) AccessChain 28 33 + 76: 23(ivec2) Load 75 + 77: 34(ptr) AccessChain 28 33 + 78: 23(ivec2) Load 77 + 79: 34(ptr) AccessChain 28 33 + 80: 23(ivec2) Load 79 + 81: 34(ptr) AccessChain 28 33 + 82: 23(ivec2) Load 81 + 85: 84 CompositeConstruct 76 78 80 82 + 86: 7(fvec4) ImageGather 72 74 37 ConstOffsets 85 + Store 69(txval004) 86 + 88: 41 Load 43(g_tTex2di4) + 89: 14 Load 16(g_sSamp) + 90: 46 SampledImage 88 89 + 91: 30(ptr) AccessChain 28 29 + 92: 20(fvec2) Load 91 + 93: 34(ptr) AccessChain 28 33 + 94: 23(ivec2) Load 93 + 95: 34(ptr) AccessChain 28 33 + 96: 23(ivec2) Load 95 + 97: 34(ptr) AccessChain 28 33 + 98: 23(ivec2) Load 97 + 99: 34(ptr) AccessChain 28 33 + 100: 23(ivec2) Load 99 + 101: 84 CompositeConstruct 94 96 98 100 + 102: 25(ivec4) ImageGather 90 92 37 ConstOffsets 101 + Store 87(txval014) 102 + 104: 57 Load 59(g_tTex2du4) + 105: 14 Load 16(g_sSamp) + 106: 62 SampledImage 104 105 + 107: 30(ptr) AccessChain 28 29 + 108: 20(fvec2) Load 107 + 109: 34(ptr) AccessChain 28 33 + 110: 23(ivec2) Load 109 + 111: 34(ptr) AccessChain 28 33 + 112: 23(ivec2) Load 111 + 113: 34(ptr) AccessChain 28 33 + 114: 23(ivec2) Load 113 + 115: 34(ptr) AccessChain 28 33 + 116: 23(ivec2) Load 115 + 117: 84 CompositeConstruct 110 112 114 116 + 118: 54(ivec4) ImageGather 106 108 37 ConstOffsets 117 + Store 103(txval024) 118 + 120: 10 Load 12(g_tTex2df4) + 121: 14 Load 16(g_sSamp) + 122: 18 SampledImage 120 121 + 123: 30(ptr) AccessChain 28 29 + 124: 20(fvec2) Load 123 + 125: 34(ptr) AccessChain 28 33 + 126: 23(ivec2) Load 125 + 127: 7(fvec4) ImageGather 122 124 29 Offset 126 + Store 119(txval101) 127 + 129: 41 Load 43(g_tTex2di4) + 130: 14 Load 16(g_sSamp) + 131: 46 SampledImage 129 130 + 132: 30(ptr) AccessChain 28 29 + 133: 20(fvec2) Load 132 + 134: 34(ptr) AccessChain 28 33 + 135: 23(ivec2) Load 134 + 136: 25(ivec4) ImageGather 131 133 29 Offset 135 + Store 128(txval111) 136 + 138: 57 Load 59(g_tTex2du4) 139: 14 Load 16(g_sSamp) - 140: 53 SampledImage 138 139 - 141: 20(fvec2) Load 22(c2) - 142: 25(ivec2) Load 27(o2) - 143: 25(ivec2) Load 27(o2) - 144: 25(ivec2) Load 27(o2) - 145: 25(ivec2) Load 27(o2) - 146: 68 CompositeConstruct 142 143 144 145 - 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146 - Store 137(txval124) 147 - 149: 10 Load 12(g_tTex2df4) - 150: 14 Load 16(g_sSamp) - 151: 18 SampledImage 149 150 - 152: 20(fvec2) Load 22(c2) - 153: 25(ivec2) Load 27(o2) - 155: 7(fvec4) ImageGather 151 152 154 Offset 153 - Store 148(txval201) 155 - 157: 34 Load 36(g_tTex2di4) - 158: 14 Load 16(g_sSamp) - 159: 39 SampledImage 157 158 - 160: 20(fvec2) Load 22(c2) - 161: 25(ivec2) Load 27(o2) - 162: 31(ivec4) ImageGather 159 160 154 Offset 161 - Store 156(txval211) 162 - 164: 48 Load 50(g_tTex2du4) - 165: 14 Load 16(g_sSamp) - 166: 53 SampledImage 164 165 - 167: 20(fvec2) Load 22(c2) - 168: 25(ivec2) Load 27(o2) - 169: 45(ivec4) ImageGather 166 167 154 Offset 168 - Store 163(txval221) 169 - 171: 10 Load 12(g_tTex2df4) - 172: 14 Load 16(g_sSamp) - 173: 18 SampledImage 171 172 - 174: 20(fvec2) Load 22(c2) - 175: 25(ivec2) Load 27(o2) - 176: 25(ivec2) Load 27(o2) - 177: 25(ivec2) Load 27(o2) - 178: 25(ivec2) Load 27(o2) - 179: 68 CompositeConstruct 175 176 177 178 - 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179 - Store 170(txval204) 180 - 182: 34 Load 36(g_tTex2di4) - 183: 14 Load 16(g_sSamp) - 184: 39 SampledImage 182 183 - 185: 20(fvec2) Load 22(c2) - 186: 25(ivec2) Load 27(o2) - 187: 25(ivec2) Load 27(o2) - 188: 25(ivec2) Load 27(o2) - 189: 25(ivec2) Load 27(o2) - 190: 68 CompositeConstruct 186 187 188 189 - 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190 - Store 181(txval214) 191 - 193: 48 Load 50(g_tTex2du4) - 194: 14 Load 16(g_sSamp) - 195: 53 SampledImage 193 194 - 196: 20(fvec2) Load 22(c2) - 197: 25(ivec2) Load 27(o2) - 198: 25(ivec2) Load 27(o2) - 199: 25(ivec2) Load 27(o2) - 200: 25(ivec2) Load 27(o2) - 201: 68 CompositeConstruct 197 198 199 200 - 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201 - Store 192(txval224) 202 - 204: 10 Load 12(g_tTex2df4) - 205: 14 Load 16(g_sSamp) - 206: 18 SampledImage 204 205 - 207: 20(fvec2) Load 22(c2) - 208: 25(ivec2) Load 27(o2) - 210: 7(fvec4) ImageGather 206 207 209 Offset 208 - Store 203(txval301) 210 - 212: 34 Load 36(g_tTex2di4) - 213: 14 Load 16(g_sSamp) - 214: 39 SampledImage 212 213 - 215: 20(fvec2) Load 22(c2) - 216: 25(ivec2) Load 27(o2) - 217: 31(ivec4) ImageGather 214 215 209 Offset 216 - Store 211(txval311) 217 - 219: 48 Load 50(g_tTex2du4) - 220: 14 Load 16(g_sSamp) - 221: 53 SampledImage 219 220 - 222: 20(fvec2) Load 22(c2) - 223: 25(ivec2) Load 27(o2) - 224: 45(ivec4) ImageGather 221 222 209 Offset 223 - Store 218(txval321) 224 - 226: 10 Load 12(g_tTex2df4) - 227: 14 Load 16(g_sSamp) - 228: 18 SampledImage 226 227 - 229: 20(fvec2) Load 22(c2) - 230: 25(ivec2) Load 27(o2) - 231: 25(ivec2) Load 27(o2) - 232: 25(ivec2) Load 27(o2) - 233: 25(ivec2) Load 27(o2) - 234: 68 CompositeConstruct 230 231 232 233 - 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234 - Store 225(txval304) 235 - 237: 34 Load 36(g_tTex2di4) - 238: 14 Load 16(g_sSamp) - 239: 39 SampledImage 237 238 - 240: 20(fvec2) Load 22(c2) - 241: 25(ivec2) Load 27(o2) - 242: 25(ivec2) Load 27(o2) - 243: 25(ivec2) Load 27(o2) - 244: 25(ivec2) Load 27(o2) - 245: 68 CompositeConstruct 241 242 243 244 - 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245 - Store 236(txval314) 246 - 248: 48 Load 50(g_tTex2du4) - 249: 14 Load 16(g_sSamp) - 250: 53 SampledImage 248 249 - 251: 20(fvec2) Load 22(c2) - 252: 25(ivec2) Load 27(o2) - 253: 25(ivec2) Load 27(o2) - 254: 25(ivec2) Load 27(o2) - 255: 25(ivec2) Load 27(o2) - 256: 68 CompositeConstruct 252 253 254 255 - 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256 - Store 247(txval324) 257 - 263: 8(ptr) AccessChain 260(psout) 29 - Store 263 262 - 265: 264(ptr) AccessChain 260(psout) 99 - Store 265 261 - 268: 8(ptr) AccessChain 260(psout) 29 - 269: 7(fvec4) Load 268 - Store 267(Color) 269 - 272: 264(ptr) AccessChain 260(psout) 99 - 273: 6(float) Load 272 - Store 271(Depth) 273 + 140: 62 SampledImage 138 139 + 141: 30(ptr) AccessChain 28 29 + 142: 20(fvec2) Load 141 + 143: 34(ptr) AccessChain 28 33 + 144: 23(ivec2) Load 143 + 145: 54(ivec4) ImageGather 140 142 29 Offset 144 + Store 137(txval121) 145 + 147: 10 Load 12(g_tTex2df4) + 148: 14 Load 16(g_sSamp) + 149: 18 SampledImage 147 148 + 150: 30(ptr) AccessChain 28 29 + 151: 20(fvec2) Load 150 + 152: 34(ptr) AccessChain 28 33 + 153: 23(ivec2) Load 152 + 154: 34(ptr) AccessChain 28 33 + 155: 23(ivec2) Load 154 + 156: 34(ptr) AccessChain 28 33 + 157: 23(ivec2) Load 156 + 158: 34(ptr) AccessChain 28 33 + 159: 23(ivec2) Load 158 + 160: 84 CompositeConstruct 153 155 157 159 + 161: 7(fvec4) ImageGather 149 151 29 ConstOffsets 160 + Store 146(txval104) 161 + 163: 41 Load 43(g_tTex2di4) + 164: 14 Load 16(g_sSamp) + 165: 46 SampledImage 163 164 + 166: 30(ptr) AccessChain 28 29 + 167: 20(fvec2) Load 166 + 168: 34(ptr) AccessChain 28 33 + 169: 23(ivec2) Load 168 + 170: 34(ptr) AccessChain 28 33 + 171: 23(ivec2) Load 170 + 172: 34(ptr) AccessChain 28 33 + 173: 23(ivec2) Load 172 + 174: 34(ptr) AccessChain 28 33 + 175: 23(ivec2) Load 174 + 176: 84 CompositeConstruct 169 171 173 175 + 177: 25(ivec4) ImageGather 165 167 29 ConstOffsets 176 + Store 162(txval114) 177 + 179: 57 Load 59(g_tTex2du4) + 180: 14 Load 16(g_sSamp) + 181: 62 SampledImage 179 180 + 182: 30(ptr) AccessChain 28 29 + 183: 20(fvec2) Load 182 + 184: 34(ptr) AccessChain 28 33 + 185: 23(ivec2) Load 184 + 186: 34(ptr) AccessChain 28 33 + 187: 23(ivec2) Load 186 + 188: 34(ptr) AccessChain 28 33 + 189: 23(ivec2) Load 188 + 190: 34(ptr) AccessChain 28 33 + 191: 23(ivec2) Load 190 + 192: 84 CompositeConstruct 185 187 189 191 + 193: 54(ivec4) ImageGather 181 183 29 ConstOffsets 192 + Store 178(txval124) 193 + 195: 10 Load 12(g_tTex2df4) + 196: 14 Load 16(g_sSamp) + 197: 18 SampledImage 195 196 + 198: 30(ptr) AccessChain 28 29 + 199: 20(fvec2) Load 198 + 200: 34(ptr) AccessChain 28 33 + 201: 23(ivec2) Load 200 + 203: 7(fvec4) ImageGather 197 199 202 Offset 201 + Store 194(txval201) 203 + 205: 41 Load 43(g_tTex2di4) + 206: 14 Load 16(g_sSamp) + 207: 46 SampledImage 205 206 + 208: 30(ptr) AccessChain 28 29 + 209: 20(fvec2) Load 208 + 210: 34(ptr) AccessChain 28 33 + 211: 23(ivec2) Load 210 + 212: 25(ivec4) ImageGather 207 209 202 Offset 211 + Store 204(txval211) 212 + 214: 57 Load 59(g_tTex2du4) + 215: 14 Load 16(g_sSamp) + 216: 62 SampledImage 214 215 + 217: 30(ptr) AccessChain 28 29 + 218: 20(fvec2) Load 217 + 219: 34(ptr) AccessChain 28 33 + 220: 23(ivec2) Load 219 + 221: 54(ivec4) ImageGather 216 218 202 Offset 220 + Store 213(txval221) 221 + 223: 10 Load 12(g_tTex2df4) + 224: 14 Load 16(g_sSamp) + 225: 18 SampledImage 223 224 + 226: 30(ptr) AccessChain 28 29 + 227: 20(fvec2) Load 226 + 228: 34(ptr) AccessChain 28 33 + 229: 23(ivec2) Load 228 + 230: 34(ptr) AccessChain 28 33 + 231: 23(ivec2) Load 230 + 232: 34(ptr) AccessChain 28 33 + 233: 23(ivec2) Load 232 + 234: 34(ptr) AccessChain 28 33 + 235: 23(ivec2) Load 234 + 236: 84 CompositeConstruct 229 231 233 235 + 237: 7(fvec4) ImageGather 225 227 202 ConstOffsets 236 + Store 222(txval204) 237 + 239: 41 Load 43(g_tTex2di4) + 240: 14 Load 16(g_sSamp) + 241: 46 SampledImage 239 240 + 242: 30(ptr) AccessChain 28 29 + 243: 20(fvec2) Load 242 + 244: 34(ptr) AccessChain 28 33 + 245: 23(ivec2) Load 244 + 246: 34(ptr) AccessChain 28 33 + 247: 23(ivec2) Load 246 + 248: 34(ptr) AccessChain 28 33 + 249: 23(ivec2) Load 248 + 250: 34(ptr) AccessChain 28 33 + 251: 23(ivec2) Load 250 + 252: 84 CompositeConstruct 245 247 249 251 + 253: 25(ivec4) ImageGather 241 243 202 ConstOffsets 252 + Store 238(txval214) 253 + 255: 57 Load 59(g_tTex2du4) + 256: 14 Load 16(g_sSamp) + 257: 62 SampledImage 255 256 + 258: 30(ptr) AccessChain 28 29 + 259: 20(fvec2) Load 258 + 260: 34(ptr) AccessChain 28 33 + 261: 23(ivec2) Load 260 + 262: 34(ptr) AccessChain 28 33 + 263: 23(ivec2) Load 262 + 264: 34(ptr) AccessChain 28 33 + 265: 23(ivec2) Load 264 + 266: 34(ptr) AccessChain 28 33 + 267: 23(ivec2) Load 266 + 268: 84 CompositeConstruct 261 263 265 267 + 269: 54(ivec4) ImageGather 257 259 202 ConstOffsets 268 + Store 254(txval224) 269 + 271: 10 Load 12(g_tTex2df4) + 272: 14 Load 16(g_sSamp) + 273: 18 SampledImage 271 272 + 274: 30(ptr) AccessChain 28 29 + 275: 20(fvec2) Load 274 + 276: 34(ptr) AccessChain 28 33 + 277: 23(ivec2) Load 276 + 279: 7(fvec4) ImageGather 273 275 278 Offset 277 + Store 270(txval301) 279 + 281: 41 Load 43(g_tTex2di4) + 282: 14 Load 16(g_sSamp) + 283: 46 SampledImage 281 282 + 284: 30(ptr) AccessChain 28 29 + 285: 20(fvec2) Load 284 + 286: 34(ptr) AccessChain 28 33 + 287: 23(ivec2) Load 286 + 288: 25(ivec4) ImageGather 283 285 278 Offset 287 + Store 280(txval311) 288 + 290: 57 Load 59(g_tTex2du4) + 291: 14 Load 16(g_sSamp) + 292: 62 SampledImage 290 291 + 293: 30(ptr) AccessChain 28 29 + 294: 20(fvec2) Load 293 + 295: 34(ptr) AccessChain 28 33 + 296: 23(ivec2) Load 295 + 297: 54(ivec4) ImageGather 292 294 278 Offset 296 + Store 289(txval321) 297 + 299: 10 Load 12(g_tTex2df4) + 300: 14 Load 16(g_sSamp) + 301: 18 SampledImage 299 300 + 302: 30(ptr) AccessChain 28 29 + 303: 20(fvec2) Load 302 + 304: 34(ptr) AccessChain 28 33 + 305: 23(ivec2) Load 304 + 306: 34(ptr) AccessChain 28 33 + 307: 23(ivec2) Load 306 + 308: 34(ptr) AccessChain 28 33 + 309: 23(ivec2) Load 308 + 310: 34(ptr) AccessChain 28 33 + 311: 23(ivec2) Load 310 + 312: 84 CompositeConstruct 305 307 309 311 + 313: 7(fvec4) ImageGather 301 303 278 ConstOffsets 312 + Store 298(txval304) 313 + 315: 41 Load 43(g_tTex2di4) + 316: 14 Load 16(g_sSamp) + 317: 46 SampledImage 315 316 + 318: 30(ptr) AccessChain 28 29 + 319: 20(fvec2) Load 318 + 320: 34(ptr) AccessChain 28 33 + 321: 23(ivec2) Load 320 + 322: 34(ptr) AccessChain 28 33 + 323: 23(ivec2) Load 322 + 324: 34(ptr) AccessChain 28 33 + 325: 23(ivec2) Load 324 + 326: 34(ptr) AccessChain 28 33 + 327: 23(ivec2) Load 326 + 328: 84 CompositeConstruct 321 323 325 327 + 329: 25(ivec4) ImageGather 317 319 278 ConstOffsets 328 + Store 314(txval314) 329 + 331: 57 Load 59(g_tTex2du4) + 332: 14 Load 16(g_sSamp) + 333: 62 SampledImage 331 332 + 334: 30(ptr) AccessChain 28 29 + 335: 20(fvec2) Load 334 + 336: 34(ptr) AccessChain 28 33 + 337: 23(ivec2) Load 336 + 338: 34(ptr) AccessChain 28 33 + 339: 23(ivec2) Load 338 + 340: 34(ptr) AccessChain 28 33 + 341: 23(ivec2) Load 340 + 342: 34(ptr) AccessChain 28 33 + 343: 23(ivec2) Load 342 + 344: 84 CompositeConstruct 337 339 341 343 + 345: 54(ivec4) ImageGather 333 335 278 ConstOffsets 344 + Store 330(txval324) 345 + 351: 8(ptr) AccessChain 348(psout) 37 + Store 351 350 + 353: 352(ptr) AccessChain 348(psout) 29 + Store 353 349 + 356: 8(ptr) AccessChain 348(psout) 37 + 357: 7(fvec4) Load 356 + Store 355(Color) 357 + 360: 352(ptr) AccessChain 348(psout) 29 + 361: 6(float) Load 360 + Store 359(Depth) 361 Return FunctionEnd diff --git a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out index 022f63edac3383f6b70a399c90fd58ad4af6b553..4722cff67d961bd0c80959cf331cbb990b051fd0 100644 --- a/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.gatherRGBA.offsetarray.dx10.frag.out @@ -2,319 +2,571 @@ hlsl.gatherRGBA.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:33 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval001' (temp 4-component vector of float) -0:40 textureGatherOffset (global 4-component vector of float) +0:40 textureGatherOffset (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler2DArray) 0:40 'g_tTex2df4a' (uniform texture2DArray) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:40 'c3' (uniform 3-component vector of float) -0:40 'o2' (uniform 2-component vector of int) +0:40 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 2 (const uint) +0:40 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 5 (const uint) 0:40 Constant: 0:40 0 (const int) 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval011' (temp 4-component vector of int) -0:41 textureGatherOffset (global 4-component vector of int) +0:41 textureGatherOffset (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler2DArray) 0:41 'g_tTex2di4a' (uniform itexture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c3' (uniform 3-component vector of float) -0:41 'o2' (uniform 2-component vector of int) +0:41 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 2 (const uint) +0:41 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 5 (const uint) 0:41 Constant: 0:41 0 (const int) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval021' (temp 4-component vector of uint) -0:42 textureGatherOffset (global 4-component vector of uint) +0:42 textureGatherOffset (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler2DArray) 0:42 'g_tTex2du4a' (uniform utexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 'c3' (uniform 3-component vector of float) -0:42 'o2' (uniform 2-component vector of int) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 5 (const uint) 0:42 Constant: 0:42 0 (const int) 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of float) 0:44 'txval004' (temp 4-component vector of float) -0:44 textureGatherOffsets (global 4-component vector of float) +0:44 textureGatherOffsets (temp 4-component vector of float) 0:44 Construct combined texture-sampler (temp sampler2DArray) 0:44 'g_tTex2df4a' (uniform texture2DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 'c3' (uniform 3-component vector of float) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) 0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) 0:44 Constant: 0:44 0 (const int) 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of int) 0:45 'txval014' (temp 4-component vector of int) -0:45 textureGatherOffsets (global 4-component vector of int) +0:45 textureGatherOffsets (temp 4-component vector of int) 0:45 Construct combined texture-sampler (temp isampler2DArray) 0:45 'g_tTex2di4a' (uniform itexture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c3' (uniform 3-component vector of float) +0:45 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 2 (const uint) 0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) 0:45 Constant: 0:45 0 (const int) 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of uint) 0:46 'txval024' (temp 4-component vector of uint) -0:46 textureGatherOffsets (global 4-component vector of uint) +0:46 textureGatherOffsets (temp 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usampler2DArray) 0:46 'g_tTex2du4a' (uniform utexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c3' (uniform 3-component vector of float) +0:46 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 2 (const uint) 0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) 0:46 Constant: 0:46 0 (const int) 0:56 Sequence 0:56 move second child to first child (temp 4-component vector of float) 0:56 'txval101' (temp 4-component vector of float) -0:56 textureGatherOffset (global 4-component vector of float) +0:56 textureGatherOffset (temp 4-component vector of float) 0:56 Construct combined texture-sampler (temp sampler2DArray) 0:56 'g_tTex2df4a' (uniform texture2DArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:56 'c3' (uniform 3-component vector of float) -0:56 'o2' (uniform 2-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 5 (const uint) 0:56 Constant: 0:56 1 (const int) 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of int) 0:57 'txval111' (temp 4-component vector of int) -0:57 textureGatherOffset (global 4-component vector of int) +0:57 textureGatherOffset (temp 4-component vector of int) 0:57 Construct combined texture-sampler (temp isampler2DArray) 0:57 'g_tTex2di4a' (uniform itexture2DArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c3' (uniform 3-component vector of float) -0:57 'o2' (uniform 2-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) 0:57 Constant: 0:57 1 (const int) 0:58 Sequence 0:58 move second child to first child (temp 4-component vector of uint) 0:58 'txval121' (temp 4-component vector of uint) -0:58 textureGatherOffset (global 4-component vector of uint) +0:58 textureGatherOffset (temp 4-component vector of uint) 0:58 Construct combined texture-sampler (temp usampler2DArray) 0:58 'g_tTex2du4a' (uniform utexture2DArray) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:58 'c3' (uniform 3-component vector of float) -0:58 'o2' (uniform 2-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) 0:58 Constant: 0:58 1 (const int) 0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:60 'txval104' (temp 4-component vector of float) -0:60 textureGatherOffsets (global 4-component vector of float) +0:60 textureGatherOffsets (temp 4-component vector of float) 0:60 Construct combined texture-sampler (temp sampler2DArray) 0:60 'g_tTex2df4a' (uniform texture2DArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:60 'c3' (uniform 3-component vector of float) +0:60 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 2 (const uint) 0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) 0:60 Constant: 0:60 1 (const int) 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of int) 0:61 'txval114' (temp 4-component vector of int) -0:61 textureGatherOffsets (global 4-component vector of int) +0:61 textureGatherOffsets (temp 4-component vector of int) 0:61 Construct combined texture-sampler (temp isampler2DArray) 0:61 'g_tTex2di4a' (uniform itexture2DArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c3' (uniform 3-component vector of float) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) 0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) 0:61 Constant: 0:61 1 (const int) 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of uint) 0:62 'txval124' (temp 4-component vector of uint) -0:62 textureGatherOffsets (global 4-component vector of uint) +0:62 textureGatherOffsets (temp 4-component vector of uint) 0:62 Construct combined texture-sampler (temp usampler2DArray) 0:62 'g_tTex2du4a' (uniform utexture2DArray) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c3' (uniform 3-component vector of float) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) 0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) 0:62 Constant: 0:62 1 (const int) 0:72 Sequence 0:72 move second child to first child (temp 4-component vector of float) 0:72 'txval201' (temp 4-component vector of float) -0:72 textureGatherOffset (global 4-component vector of float) +0:72 textureGatherOffset (temp 4-component vector of float) 0:72 Construct combined texture-sampler (temp sampler2DArray) 0:72 'g_tTex2df4a' (uniform texture2DArray) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:72 'c3' (uniform 3-component vector of float) -0:72 'o2' (uniform 2-component vector of int) +0:72 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 2 (const uint) +0:72 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 5 (const uint) 0:72 Constant: 0:72 2 (const int) 0:73 Sequence 0:73 move second child to first child (temp 4-component vector of int) 0:73 'txval211' (temp 4-component vector of int) -0:73 textureGatherOffset (global 4-component vector of int) +0:73 textureGatherOffset (temp 4-component vector of int) 0:73 Construct combined texture-sampler (temp isampler2DArray) 0:73 'g_tTex2di4a' (uniform itexture2DArray) 0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:73 'c3' (uniform 3-component vector of float) -0:73 'o2' (uniform 2-component vector of int) +0:73 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 2 (const uint) +0:73 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 5 (const uint) 0:73 Constant: 0:73 2 (const int) 0:74 Sequence 0:74 move second child to first child (temp 4-component vector of uint) 0:74 'txval221' (temp 4-component vector of uint) -0:74 textureGatherOffset (global 4-component vector of uint) +0:74 textureGatherOffset (temp 4-component vector of uint) 0:74 Construct combined texture-sampler (temp usampler2DArray) 0:74 'g_tTex2du4a' (uniform utexture2DArray) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:74 'c3' (uniform 3-component vector of float) -0:74 'o2' (uniform 2-component vector of int) +0:74 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 2 (const uint) +0:74 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 5 (const uint) 0:74 Constant: 0:74 2 (const int) 0:76 Sequence 0:76 move second child to first child (temp 4-component vector of float) 0:76 'txval204' (temp 4-component vector of float) -0:76 textureGatherOffsets (global 4-component vector of float) +0:76 textureGatherOffsets (temp 4-component vector of float) 0:76 Construct combined texture-sampler (temp sampler2DArray) 0:76 'g_tTex2df4a' (uniform texture2DArray) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:76 'c3' (uniform 3-component vector of float) +0:76 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 2 (const uint) 0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) 0:76 Constant: 0:76 2 (const int) 0:77 Sequence 0:77 move second child to first child (temp 4-component vector of int) 0:77 'txval214' (temp 4-component vector of int) -0:77 textureGatherOffsets (global 4-component vector of int) +0:77 textureGatherOffsets (temp 4-component vector of int) 0:77 Construct combined texture-sampler (temp isampler2DArray) 0:77 'g_tTex2di4a' (uniform itexture2DArray) 0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:77 'c3' (uniform 3-component vector of float) +0:77 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 2 (const uint) 0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) 0:77 Constant: 0:77 2 (const int) 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of uint) 0:78 'txval224' (temp 4-component vector of uint) -0:78 textureGatherOffsets (global 4-component vector of uint) +0:78 textureGatherOffsets (temp 4-component vector of uint) 0:78 Construct combined texture-sampler (temp usampler2DArray) 0:78 'g_tTex2du4a' (uniform utexture2DArray) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:78 'c3' (uniform 3-component vector of float) +0:78 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 2 (const uint) 0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) 0:78 Constant: 0:78 2 (const int) 0:88 Sequence 0:88 move second child to first child (temp 4-component vector of float) 0:88 'txval301' (temp 4-component vector of float) -0:88 textureGatherOffset (global 4-component vector of float) +0:88 textureGatherOffset (temp 4-component vector of float) 0:88 Construct combined texture-sampler (temp sampler2DArray) 0:88 'g_tTex2df4a' (uniform texture2DArray) 0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:88 'c3' (uniform 3-component vector of float) -0:88 'o2' (uniform 2-component vector of int) +0:88 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 2 (const uint) +0:88 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 5 (const uint) 0:88 Constant: 0:88 3 (const int) 0:89 Sequence 0:89 move second child to first child (temp 4-component vector of int) 0:89 'txval311' (temp 4-component vector of int) -0:89 textureGatherOffset (global 4-component vector of int) +0:89 textureGatherOffset (temp 4-component vector of int) 0:89 Construct combined texture-sampler (temp isampler2DArray) 0:89 'g_tTex2di4a' (uniform itexture2DArray) 0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:89 'c3' (uniform 3-component vector of float) -0:89 'o2' (uniform 2-component vector of int) +0:89 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 2 (const uint) +0:89 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 5 (const uint) 0:89 Constant: 0:89 3 (const int) 0:90 Sequence 0:90 move second child to first child (temp 4-component vector of uint) 0:90 'txval321' (temp 4-component vector of uint) -0:90 textureGatherOffset (global 4-component vector of uint) +0:90 textureGatherOffset (temp 4-component vector of uint) 0:90 Construct combined texture-sampler (temp usampler2DArray) 0:90 'g_tTex2du4a' (uniform utexture2DArray) 0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:90 'c3' (uniform 3-component vector of float) -0:90 'o2' (uniform 2-component vector of int) +0:90 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 2 (const uint) +0:90 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 5 (const uint) 0:90 Constant: 0:90 3 (const int) 0:92 Sequence 0:92 move second child to first child (temp 4-component vector of float) 0:92 'txval304' (temp 4-component vector of float) -0:92 textureGatherOffsets (global 4-component vector of float) +0:92 textureGatherOffsets (temp 4-component vector of float) 0:92 Construct combined texture-sampler (temp sampler2DArray) 0:92 'g_tTex2df4a' (uniform texture2DArray) 0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:92 'c3' (uniform 3-component vector of float) +0:92 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 2 (const uint) 0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) 0:92 Constant: 0:92 3 (const int) 0:93 Sequence 0:93 move second child to first child (temp 4-component vector of int) 0:93 'txval314' (temp 4-component vector of int) -0:93 textureGatherOffsets (global 4-component vector of int) +0:93 textureGatherOffsets (temp 4-component vector of int) 0:93 Construct combined texture-sampler (temp isampler2DArray) 0:93 'g_tTex2di4a' (uniform itexture2DArray) 0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:93 'c3' (uniform 3-component vector of float) +0:93 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 2 (const uint) 0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) 0:93 Constant: 0:93 3 (const int) 0:94 Sequence 0:94 move second child to first child (temp 4-component vector of uint) 0:94 'txval324' (temp 4-component vector of uint) -0:94 textureGatherOffsets (global 4-component vector of uint) +0:94 textureGatherOffsets (temp 4-component vector of uint) 0:94 Construct combined texture-sampler (temp usampler2DArray) 0:94 'g_tTex2du4a' (uniform utexture2DArray) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:94 'c3' (uniform 3-component vector of float) +0:94 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 2 (const uint) 0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) 0:94 Constant: 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) @@ -334,8 +586,8 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:? Sequence -0:? Sequence +0:109 Sequence +0:109 Sequence 0:109 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:109 Color: direct index for structure (temp 4-component vector of float) @@ -350,6 +602,8 @@ gl_FragCoord origin is upper left 0:109 1 (const int) 0:109 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) @@ -361,16 +615,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -379,319 +624,571 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:33 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:33 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:33 Function Parameters: 0:? Sequence 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval001' (temp 4-component vector of float) -0:40 textureGatherOffset (global 4-component vector of float) +0:40 textureGatherOffset (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler2DArray) 0:40 'g_tTex2df4a' (uniform texture2DArray) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:40 'c3' (uniform 3-component vector of float) -0:40 'o2' (uniform 2-component vector of int) +0:40 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 2 (const uint) +0:40 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:40 Constant: +0:40 5 (const uint) 0:40 Constant: 0:40 0 (const int) 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval011' (temp 4-component vector of int) -0:41 textureGatherOffset (global 4-component vector of int) +0:41 textureGatherOffset (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler2DArray) 0:41 'g_tTex2di4a' (uniform itexture2DArray) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:41 'c3' (uniform 3-component vector of float) -0:41 'o2' (uniform 2-component vector of int) +0:41 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 2 (const uint) +0:41 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:41 Constant: +0:41 5 (const uint) 0:41 Constant: 0:41 0 (const int) 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval021' (temp 4-component vector of uint) -0:42 textureGatherOffset (global 4-component vector of uint) +0:42 textureGatherOffset (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler2DArray) 0:42 'g_tTex2du4a' (uniform utexture2DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 'c3' (uniform 3-component vector of float) -0:42 'o2' (uniform 2-component vector of int) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) +0:42 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 5 (const uint) 0:42 Constant: 0:42 0 (const int) 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of float) 0:44 'txval004' (temp 4-component vector of float) -0:44 textureGatherOffsets (global 4-component vector of float) +0:44 textureGatherOffsets (temp 4-component vector of float) 0:44 Construct combined texture-sampler (temp sampler2DArray) 0:44 'g_tTex2df4a' (uniform texture2DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 'c3' (uniform 3-component vector of float) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) 0:44 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) -0:44 'o2' (uniform 2-component vector of int) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) +0:44 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 5 (const uint) 0:44 Constant: 0:44 0 (const int) 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of int) 0:45 'txval014' (temp 4-component vector of int) -0:45 textureGatherOffsets (global 4-component vector of int) +0:45 textureGatherOffsets (temp 4-component vector of int) 0:45 Construct combined texture-sampler (temp isampler2DArray) 0:45 'g_tTex2di4a' (uniform itexture2DArray) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:45 'c3' (uniform 3-component vector of float) +0:45 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 2 (const uint) 0:45 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) -0:45 'o2' (uniform 2-component vector of int) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) +0:45 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 5 (const uint) 0:45 Constant: 0:45 0 (const int) 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of uint) 0:46 'txval024' (temp 4-component vector of uint) -0:46 textureGatherOffsets (global 4-component vector of uint) +0:46 textureGatherOffsets (temp 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usampler2DArray) 0:46 'g_tTex2du4a' (uniform utexture2DArray) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:46 'c3' (uniform 3-component vector of float) +0:46 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 2 (const uint) 0:46 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) -0:46 'o2' (uniform 2-component vector of int) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) +0:46 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 5 (const uint) 0:46 Constant: 0:46 0 (const int) 0:56 Sequence 0:56 move second child to first child (temp 4-component vector of float) 0:56 'txval101' (temp 4-component vector of float) -0:56 textureGatherOffset (global 4-component vector of float) +0:56 textureGatherOffset (temp 4-component vector of float) 0:56 Construct combined texture-sampler (temp sampler2DArray) 0:56 'g_tTex2df4a' (uniform texture2DArray) 0:56 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:56 'c3' (uniform 3-component vector of float) -0:56 'o2' (uniform 2-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:56 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 5 (const uint) 0:56 Constant: 0:56 1 (const int) 0:57 Sequence 0:57 move second child to first child (temp 4-component vector of int) 0:57 'txval111' (temp 4-component vector of int) -0:57 textureGatherOffset (global 4-component vector of int) +0:57 textureGatherOffset (temp 4-component vector of int) 0:57 Construct combined texture-sampler (temp isampler2DArray) 0:57 'g_tTex2di4a' (uniform itexture2DArray) 0:57 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:57 'c3' (uniform 3-component vector of float) -0:57 'o2' (uniform 2-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) 0:57 Constant: 0:57 1 (const int) 0:58 Sequence 0:58 move second child to first child (temp 4-component vector of uint) 0:58 'txval121' (temp 4-component vector of uint) -0:58 textureGatherOffset (global 4-component vector of uint) +0:58 textureGatherOffset (temp 4-component vector of uint) 0:58 Construct combined texture-sampler (temp usampler2DArray) 0:58 'g_tTex2du4a' (uniform utexture2DArray) 0:58 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:58 'c3' (uniform 3-component vector of float) -0:58 'o2' (uniform 2-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) 0:58 Constant: 0:58 1 (const int) 0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:60 'txval104' (temp 4-component vector of float) -0:60 textureGatherOffsets (global 4-component vector of float) +0:60 textureGatherOffsets (temp 4-component vector of float) 0:60 Construct combined texture-sampler (temp sampler2DArray) 0:60 'g_tTex2df4a' (uniform texture2DArray) 0:60 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:60 'c3' (uniform 3-component vector of float) +0:60 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 2 (const uint) 0:60 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) -0:60 'o2' (uniform 2-component vector of int) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) +0:60 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:60 Constant: +0:60 5 (const uint) 0:60 Constant: 0:60 1 (const int) 0:61 Sequence 0:61 move second child to first child (temp 4-component vector of int) 0:61 'txval114' (temp 4-component vector of int) -0:61 textureGatherOffsets (global 4-component vector of int) +0:61 textureGatherOffsets (temp 4-component vector of int) 0:61 Construct combined texture-sampler (temp isampler2DArray) 0:61 'g_tTex2di4a' (uniform itexture2DArray) 0:61 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:61 'c3' (uniform 3-component vector of float) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) 0:61 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) -0:61 'o2' (uniform 2-component vector of int) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) +0:61 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 5 (const uint) 0:61 Constant: 0:61 1 (const int) 0:62 Sequence 0:62 move second child to first child (temp 4-component vector of uint) 0:62 'txval124' (temp 4-component vector of uint) -0:62 textureGatherOffsets (global 4-component vector of uint) +0:62 textureGatherOffsets (temp 4-component vector of uint) 0:62 Construct combined texture-sampler (temp usampler2DArray) 0:62 'g_tTex2du4a' (uniform utexture2DArray) 0:62 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:62 'c3' (uniform 3-component vector of float) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) 0:62 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) -0:62 'o2' (uniform 2-component vector of int) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) +0:62 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 5 (const uint) 0:62 Constant: 0:62 1 (const int) 0:72 Sequence 0:72 move second child to first child (temp 4-component vector of float) 0:72 'txval201' (temp 4-component vector of float) -0:72 textureGatherOffset (global 4-component vector of float) +0:72 textureGatherOffset (temp 4-component vector of float) 0:72 Construct combined texture-sampler (temp sampler2DArray) 0:72 'g_tTex2df4a' (uniform texture2DArray) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:72 'c3' (uniform 3-component vector of float) -0:72 'o2' (uniform 2-component vector of int) +0:72 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 2 (const uint) +0:72 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:72 Constant: +0:72 5 (const uint) 0:72 Constant: 0:72 2 (const int) 0:73 Sequence 0:73 move second child to first child (temp 4-component vector of int) 0:73 'txval211' (temp 4-component vector of int) -0:73 textureGatherOffset (global 4-component vector of int) +0:73 textureGatherOffset (temp 4-component vector of int) 0:73 Construct combined texture-sampler (temp isampler2DArray) 0:73 'g_tTex2di4a' (uniform itexture2DArray) 0:73 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:73 'c3' (uniform 3-component vector of float) -0:73 'o2' (uniform 2-component vector of int) +0:73 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 2 (const uint) +0:73 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:73 Constant: +0:73 5 (const uint) 0:73 Constant: 0:73 2 (const int) 0:74 Sequence 0:74 move second child to first child (temp 4-component vector of uint) 0:74 'txval221' (temp 4-component vector of uint) -0:74 textureGatherOffset (global 4-component vector of uint) +0:74 textureGatherOffset (temp 4-component vector of uint) 0:74 Construct combined texture-sampler (temp usampler2DArray) 0:74 'g_tTex2du4a' (uniform utexture2DArray) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:74 'c3' (uniform 3-component vector of float) -0:74 'o2' (uniform 2-component vector of int) +0:74 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 2 (const uint) +0:74 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:74 Constant: +0:74 5 (const uint) 0:74 Constant: 0:74 2 (const int) 0:76 Sequence 0:76 move second child to first child (temp 4-component vector of float) 0:76 'txval204' (temp 4-component vector of float) -0:76 textureGatherOffsets (global 4-component vector of float) +0:76 textureGatherOffsets (temp 4-component vector of float) 0:76 Construct combined texture-sampler (temp sampler2DArray) 0:76 'g_tTex2df4a' (uniform texture2DArray) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:76 'c3' (uniform 3-component vector of float) +0:76 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 2 (const uint) 0:76 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) -0:76 'o2' (uniform 2-component vector of int) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) +0:76 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:76 Constant: +0:76 5 (const uint) 0:76 Constant: 0:76 2 (const int) 0:77 Sequence 0:77 move second child to first child (temp 4-component vector of int) 0:77 'txval214' (temp 4-component vector of int) -0:77 textureGatherOffsets (global 4-component vector of int) +0:77 textureGatherOffsets (temp 4-component vector of int) 0:77 Construct combined texture-sampler (temp isampler2DArray) 0:77 'g_tTex2di4a' (uniform itexture2DArray) 0:77 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:77 'c3' (uniform 3-component vector of float) +0:77 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 2 (const uint) 0:77 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) -0:77 'o2' (uniform 2-component vector of int) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) +0:77 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:77 Constant: +0:77 5 (const uint) 0:77 Constant: 0:77 2 (const int) 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of uint) 0:78 'txval224' (temp 4-component vector of uint) -0:78 textureGatherOffsets (global 4-component vector of uint) +0:78 textureGatherOffsets (temp 4-component vector of uint) 0:78 Construct combined texture-sampler (temp usampler2DArray) 0:78 'g_tTex2du4a' (uniform utexture2DArray) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:78 'c3' (uniform 3-component vector of float) +0:78 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 2 (const uint) 0:78 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) -0:78 'o2' (uniform 2-component vector of int) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) +0:78 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:78 Constant: +0:78 5 (const uint) 0:78 Constant: 0:78 2 (const int) 0:88 Sequence 0:88 move second child to first child (temp 4-component vector of float) 0:88 'txval301' (temp 4-component vector of float) -0:88 textureGatherOffset (global 4-component vector of float) +0:88 textureGatherOffset (temp 4-component vector of float) 0:88 Construct combined texture-sampler (temp sampler2DArray) 0:88 'g_tTex2df4a' (uniform texture2DArray) 0:88 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:88 'c3' (uniform 3-component vector of float) -0:88 'o2' (uniform 2-component vector of int) +0:88 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 2 (const uint) +0:88 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:88 Constant: +0:88 5 (const uint) 0:88 Constant: 0:88 3 (const int) 0:89 Sequence 0:89 move second child to first child (temp 4-component vector of int) 0:89 'txval311' (temp 4-component vector of int) -0:89 textureGatherOffset (global 4-component vector of int) +0:89 textureGatherOffset (temp 4-component vector of int) 0:89 Construct combined texture-sampler (temp isampler2DArray) 0:89 'g_tTex2di4a' (uniform itexture2DArray) 0:89 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:89 'c3' (uniform 3-component vector of float) -0:89 'o2' (uniform 2-component vector of int) +0:89 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 2 (const uint) +0:89 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:89 Constant: +0:89 5 (const uint) 0:89 Constant: 0:89 3 (const int) 0:90 Sequence 0:90 move second child to first child (temp 4-component vector of uint) 0:90 'txval321' (temp 4-component vector of uint) -0:90 textureGatherOffset (global 4-component vector of uint) +0:90 textureGatherOffset (temp 4-component vector of uint) 0:90 Construct combined texture-sampler (temp usampler2DArray) 0:90 'g_tTex2du4a' (uniform utexture2DArray) 0:90 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:90 'c3' (uniform 3-component vector of float) -0:90 'o2' (uniform 2-component vector of int) +0:90 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 2 (const uint) +0:90 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:90 Constant: +0:90 5 (const uint) 0:90 Constant: 0:90 3 (const int) 0:92 Sequence 0:92 move second child to first child (temp 4-component vector of float) 0:92 'txval304' (temp 4-component vector of float) -0:92 textureGatherOffsets (global 4-component vector of float) +0:92 textureGatherOffsets (temp 4-component vector of float) 0:92 Construct combined texture-sampler (temp sampler2DArray) 0:92 'g_tTex2df4a' (uniform texture2DArray) 0:92 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:92 'c3' (uniform 3-component vector of float) +0:92 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 2 (const uint) 0:92 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) -0:92 'o2' (uniform 2-component vector of int) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) +0:92 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:92 Constant: +0:92 5 (const uint) 0:92 Constant: 0:92 3 (const int) 0:93 Sequence 0:93 move second child to first child (temp 4-component vector of int) 0:93 'txval314' (temp 4-component vector of int) -0:93 textureGatherOffsets (global 4-component vector of int) +0:93 textureGatherOffsets (temp 4-component vector of int) 0:93 Construct combined texture-sampler (temp isampler2DArray) 0:93 'g_tTex2di4a' (uniform itexture2DArray) 0:93 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:93 'c3' (uniform 3-component vector of float) +0:93 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 2 (const uint) 0:93 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) -0:93 'o2' (uniform 2-component vector of int) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) +0:93 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:93 Constant: +0:93 5 (const uint) 0:93 Constant: 0:93 3 (const int) 0:94 Sequence 0:94 move second child to first child (temp 4-component vector of uint) 0:94 'txval324' (temp 4-component vector of uint) -0:94 textureGatherOffsets (global 4-component vector of uint) +0:94 textureGatherOffsets (temp 4-component vector of uint) 0:94 Construct combined texture-sampler (temp usampler2DArray) 0:94 'g_tTex2du4a' (uniform utexture2DArray) 0:94 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:94 'c3' (uniform 3-component vector of float) +0:94 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of float) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 2 (const uint) 0:94 Construct ivec2 (temp 4-element array of 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) -0:94 'o2' (uniform 2-component vector of int) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) +0:94 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:94 Constant: +0:94 5 (const uint) 0:94 Constant: 0:94 3 (const int) 0:106 move second child to first child (temp 4-component vector of float) @@ -711,8 +1208,8 @@ gl_FragCoord origin is upper left 0:107 1 (const int) 0:107 Constant: 0:107 1.000000 -0:? Sequence -0:? Sequence +0:109 Sequence +0:109 Sequence 0:109 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:109 Color: direct index for structure (temp 4-component vector of float) @@ -727,6 +1224,8 @@ gl_FragCoord origin is upper left 0:109 1 (const int) 0:109 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=0 ) uniform texture1DArray) @@ -738,20 +1237,11 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform float) -0:? 'c2' (uniform 2-component vector of float) -0:? 'c3' (uniform 3-component vector of float) -0:? 'c4' (uniform 4-component vector of float) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform float c1, layout(offset=8 ) uniform 2-component vector of float c2, layout(offset=16 ) uniform 3-component vector of float c3, layout(offset=32 ) uniform 4-component vector of float c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 308 +// Id's are bound by 382 Capability Shader Capability ImageGatherExtended @@ -759,73 +1249,85 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 267 271 + EntryPoint Fragment 4 "main" 355 359 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "txval001" Name 12 "g_tTex2df4a" Name 16 "g_sSamp" - Name 22 "c3" - Name 27 "o2" - Name 33 "txval011" - Name 36 "g_tTex2di4a" - Name 47 "txval021" - Name 50 "g_tTex2du4a" - Name 58 "txval004" - Name 71 "txval014" - Name 82 "txval024" - Name 93 "txval101" - Name 101 "txval111" - Name 108 "txval121" - Name 115 "txval104" - Name 126 "txval114" - Name 137 "txval124" - Name 148 "txval201" - Name 156 "txval211" - Name 163 "txval221" - Name 170 "txval204" - Name 181 "txval214" - Name 192 "txval224" - Name 203 "txval301" - Name 211 "txval311" - Name 218 "txval321" - Name 225 "txval304" - Name 236 "txval314" - Name 247 "txval324" - Name 258 "PS_OUTPUT" - MemberName 258(PS_OUTPUT) 0 "Color" - MemberName 258(PS_OUTPUT) 1 "Depth" - Name 260 "psout" - Name 267 "Color" - Name 271 "Depth" - Name 275 "g_sSamp2d" - Name 278 "g_tTex1df4a" - Name 281 "g_tTex1di4a" - Name 284 "g_tTex1du4a" - Name 287 "g_tTexcdf4a" - Name 290 "g_tTexcdi4a" - Name 293 "g_tTexcdu4a" - Name 295 "c1" - Name 298 "c2" - Name 300 "c4" - Name 302 "o1" - Name 305 "o3" - Name 307 "o4" + Name 26 "$Global" + MemberName 26($Global) 0 "c1" + MemberName 26($Global) 1 "c2" + MemberName 26($Global) 2 "c3" + MemberName 26($Global) 3 "c4" + MemberName 26($Global) 4 "o1" + MemberName 26($Global) 5 "o2" + MemberName 26($Global) 6 "o3" + MemberName 26($Global) 7 "o4" + Name 28 "" + Name 40 "txval011" + Name 43 "g_tTex2di4a" + Name 56 "txval021" + Name 59 "g_tTex2du4a" + Name 69 "txval004" + Name 87 "txval014" + Name 103 "txval024" + Name 119 "txval101" + Name 129 "txval111" + Name 138 "txval121" + Name 147 "txval104" + Name 163 "txval114" + Name 179 "txval124" + Name 195 "txval201" + Name 204 "txval211" + Name 213 "txval221" + Name 222 "txval204" + Name 238 "txval214" + Name 254 "txval224" + Name 270 "txval301" + Name 280 "txval311" + Name 289 "txval321" + Name 298 "txval304" + Name 314 "txval314" + Name 330 "txval324" + Name 346 "PS_OUTPUT" + MemberName 346(PS_OUTPUT) 0 "Color" + MemberName 346(PS_OUTPUT) 1 "Depth" + Name 348 "psout" + Name 355 "Color" + Name 359 "Depth" + Name 363 "g_sSamp2d" + Name 366 "g_tTex1df4a" + Name 369 "g_tTex1di4a" + Name 372 "g_tTex1du4a" + Name 375 "g_tTexcdf4a" + Name 378 "g_tTexcdi4a" + Name 381 "g_tTexcdu4a" Decorate 12(g_tTex2df4a) DescriptorSet 0 Decorate 16(g_sSamp) DescriptorSet 0 Decorate 16(g_sSamp) Binding 0 - Decorate 36(g_tTex2di4a) DescriptorSet 0 - Decorate 50(g_tTex2du4a) DescriptorSet 0 - Decorate 267(Color) Location 0 - Decorate 271(Depth) BuiltIn FragDepth - Decorate 275(g_sSamp2d) DescriptorSet 0 - Decorate 278(g_tTex1df4a) DescriptorSet 0 - Decorate 278(g_tTex1df4a) Binding 0 - Decorate 281(g_tTex1di4a) DescriptorSet 0 - Decorate 284(g_tTex1du4a) DescriptorSet 0 - Decorate 287(g_tTexcdf4a) DescriptorSet 0 - Decorate 290(g_tTexcdi4a) DescriptorSet 0 - Decorate 293(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 26($Global) 0 Offset 0 + MemberDecorate 26($Global) 1 Offset 8 + MemberDecorate 26($Global) 2 Offset 16 + MemberDecorate 26($Global) 3 Offset 32 + MemberDecorate 26($Global) 4 Offset 48 + MemberDecorate 26($Global) 5 Offset 56 + MemberDecorate 26($Global) 6 Offset 64 + MemberDecorate 26($Global) 7 Offset 80 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 + Decorate 43(g_tTex2di4a) DescriptorSet 0 + Decorate 59(g_tTex2du4a) DescriptorSet 0 + Decorate 355(Color) Location 0 + Decorate 359(Depth) BuiltIn FragDepth + Decorate 363(g_sSamp2d) DescriptorSet 0 + Decorate 366(g_tTex1df4a) DescriptorSet 0 + Decorate 366(g_tTex1df4a) Binding 0 + Decorate 369(g_tTex1di4a) DescriptorSet 0 + Decorate 372(g_tTex1du4a) DescriptorSet 0 + Decorate 375(g_tTexcdf4a) DescriptorSet 0 + Decorate 378(g_tTexcdi4a) DescriptorSet 0 + Decorate 381(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -838,326 +1340,400 @@ gl_FragCoord origin is upper left 15: TypePointer UniformConstant 14 16(g_sSamp): 15(ptr) Variable UniformConstant 18: TypeSampledImage 10 - 20: TypeVector 6(float) 3 - 21: TypePointer UniformConstant 20(fvec3) - 22(c3): 21(ptr) Variable UniformConstant - 24: TypeInt 32 1 - 25: TypeVector 24(int) 2 - 26: TypePointer UniformConstant 25(ivec2) - 27(o2): 26(ptr) Variable UniformConstant - 29: 24(int) Constant 0 - 31: TypeVector 24(int) 4 - 32: TypePointer Function 31(ivec4) - 34: TypeImage 24(int) 2D array sampled format:Unknown - 35: TypePointer UniformConstant 34 - 36(g_tTex2di4a): 35(ptr) Variable UniformConstant - 39: TypeSampledImage 34 - 44: TypeInt 32 0 - 45: TypeVector 44(int) 4 - 46: TypePointer Function 45(ivec4) - 48: TypeImage 44(int) 2D array sampled format:Unknown - 49: TypePointer UniformConstant 48 - 50(g_tTex2du4a): 49(ptr) Variable UniformConstant - 53: TypeSampledImage 48 - 67: 44(int) Constant 4 - 68: TypeArray 25(ivec2) 67 - 99: 24(int) Constant 1 - 154: 24(int) Constant 2 - 209: 24(int) Constant 3 - 258(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 259: TypePointer Function 258(PS_OUTPUT) - 261: 6(float) Constant 1065353216 - 262: 7(fvec4) ConstantComposite 261 261 261 261 - 264: TypePointer Function 6(float) - 266: TypePointer Output 7(fvec4) - 267(Color): 266(ptr) Variable Output - 270: TypePointer Output 6(float) - 271(Depth): 270(ptr) Variable Output - 275(g_sSamp2d): 15(ptr) Variable UniformConstant - 276: TypeImage 6(float) 1D array sampled format:Unknown - 277: TypePointer UniformConstant 276 -278(g_tTex1df4a): 277(ptr) Variable UniformConstant - 279: TypeImage 24(int) 1D array sampled format:Unknown - 280: TypePointer UniformConstant 279 -281(g_tTex1di4a): 280(ptr) Variable UniformConstant - 282: TypeImage 44(int) 1D array sampled format:Unknown - 283: TypePointer UniformConstant 282 -284(g_tTex1du4a): 283(ptr) Variable UniformConstant - 285: TypeImage 6(float) Cube array sampled format:Unknown - 286: TypePointer UniformConstant 285 -287(g_tTexcdf4a): 286(ptr) Variable UniformConstant - 288: TypeImage 24(int) Cube array sampled format:Unknown - 289: TypePointer UniformConstant 288 -290(g_tTexcdi4a): 289(ptr) Variable UniformConstant - 291: TypeImage 44(int) Cube array sampled format:Unknown - 292: TypePointer UniformConstant 291 -293(g_tTexcdu4a): 292(ptr) Variable UniformConstant - 294: TypePointer UniformConstant 6(float) - 295(c1): 294(ptr) Variable UniformConstant - 296: TypeVector 6(float) 2 - 297: TypePointer UniformConstant 296(fvec2) - 298(c2): 297(ptr) Variable UniformConstant - 299: TypePointer UniformConstant 7(fvec4) - 300(c4): 299(ptr) Variable UniformConstant - 301: TypePointer UniformConstant 24(int) - 302(o1): 301(ptr) Variable UniformConstant - 303: TypeVector 24(int) 3 - 304: TypePointer UniformConstant 303(ivec3) - 305(o3): 304(ptr) Variable UniformConstant - 306: TypePointer UniformConstant 31(ivec4) - 307(o4): 306(ptr) Variable UniformConstant + 20: TypeVector 6(float) 2 + 21: TypeVector 6(float) 3 + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypeVector 22(int) 3 + 25: TypeVector 22(int) 4 + 26($Global): TypeStruct 6(float) 20(fvec2) 21(fvec3) 7(fvec4) 22(int) 23(ivec2) 24(ivec3) 25(ivec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform + 29: 22(int) Constant 2 + 30: TypePointer Uniform 21(fvec3) + 33: 22(int) Constant 5 + 34: TypePointer Uniform 23(ivec2) + 37: 22(int) Constant 0 + 39: TypePointer Function 25(ivec4) + 41: TypeImage 22(int) 2D array sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex2di4a): 42(ptr) Variable UniformConstant + 46: TypeSampledImage 41 + 53: TypeInt 32 0 + 54: TypeVector 53(int) 4 + 55: TypePointer Function 54(ivec4) + 57: TypeImage 53(int) 2D array sampled format:Unknown + 58: TypePointer UniformConstant 57 + 59(g_tTex2du4a): 58(ptr) Variable UniformConstant + 62: TypeSampledImage 57 + 83: 53(int) Constant 4 + 84: TypeArray 23(ivec2) 83 + 127: 22(int) Constant 1 + 278: 22(int) Constant 3 + 346(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 347: TypePointer Function 346(PS_OUTPUT) + 349: 6(float) Constant 1065353216 + 350: 7(fvec4) ConstantComposite 349 349 349 349 + 352: TypePointer Function 6(float) + 354: TypePointer Output 7(fvec4) + 355(Color): 354(ptr) Variable Output + 358: TypePointer Output 6(float) + 359(Depth): 358(ptr) Variable Output + 363(g_sSamp2d): 15(ptr) Variable UniformConstant + 364: TypeImage 6(float) 1D array sampled format:Unknown + 365: TypePointer UniformConstant 364 +366(g_tTex1df4a): 365(ptr) Variable UniformConstant + 367: TypeImage 22(int) 1D array sampled format:Unknown + 368: TypePointer UniformConstant 367 +369(g_tTex1di4a): 368(ptr) Variable UniformConstant + 370: TypeImage 53(int) 1D array sampled format:Unknown + 371: TypePointer UniformConstant 370 +372(g_tTex1du4a): 371(ptr) Variable UniformConstant + 373: TypeImage 6(float) Cube array sampled format:Unknown + 374: TypePointer UniformConstant 373 +375(g_tTexcdf4a): 374(ptr) Variable UniformConstant + 376: TypeImage 22(int) Cube array sampled format:Unknown + 377: TypePointer UniformConstant 376 +378(g_tTexcdi4a): 377(ptr) Variable UniformConstant + 379: TypeImage 53(int) Cube array sampled format:Unknown + 380: TypePointer UniformConstant 379 +381(g_tTexcdu4a): 380(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(txval001): 8(ptr) Variable Function - 33(txval011): 32(ptr) Variable Function - 47(txval021): 46(ptr) Variable Function - 58(txval004): 8(ptr) Variable Function - 71(txval014): 32(ptr) Variable Function - 82(txval024): 46(ptr) Variable Function - 93(txval101): 8(ptr) Variable Function - 101(txval111): 32(ptr) Variable Function - 108(txval121): 46(ptr) Variable Function - 115(txval104): 8(ptr) Variable Function - 126(txval114): 32(ptr) Variable Function - 137(txval124): 46(ptr) Variable Function - 148(txval201): 8(ptr) Variable Function - 156(txval211): 32(ptr) Variable Function - 163(txval221): 46(ptr) Variable Function - 170(txval204): 8(ptr) Variable Function - 181(txval214): 32(ptr) Variable Function - 192(txval224): 46(ptr) Variable Function - 203(txval301): 8(ptr) Variable Function - 211(txval311): 32(ptr) Variable Function - 218(txval321): 46(ptr) Variable Function - 225(txval304): 8(ptr) Variable Function - 236(txval314): 32(ptr) Variable Function - 247(txval324): 46(ptr) Variable Function - 260(psout): 259(ptr) Variable Function + 40(txval011): 39(ptr) Variable Function + 56(txval021): 55(ptr) Variable Function + 69(txval004): 8(ptr) Variable Function + 87(txval014): 39(ptr) Variable Function + 103(txval024): 55(ptr) Variable Function + 119(txval101): 8(ptr) Variable Function + 129(txval111): 39(ptr) Variable Function + 138(txval121): 55(ptr) Variable Function + 147(txval104): 8(ptr) Variable Function + 163(txval114): 39(ptr) Variable Function + 179(txval124): 55(ptr) Variable Function + 195(txval201): 8(ptr) Variable Function + 204(txval211): 39(ptr) Variable Function + 213(txval221): 55(ptr) Variable Function + 222(txval204): 8(ptr) Variable Function + 238(txval214): 39(ptr) Variable Function + 254(txval224): 55(ptr) Variable Function + 270(txval301): 8(ptr) Variable Function + 280(txval311): 39(ptr) Variable Function + 289(txval321): 55(ptr) Variable Function + 298(txval304): 8(ptr) Variable Function + 314(txval314): 39(ptr) Variable Function + 330(txval324): 55(ptr) Variable Function + 348(psout): 347(ptr) Variable Function 13: 10 Load 12(g_tTex2df4a) 17: 14 Load 16(g_sSamp) 19: 18 SampledImage 13 17 - 23: 20(fvec3) Load 22(c3) - 28: 25(ivec2) Load 27(o2) - 30: 7(fvec4) ImageGather 19 23 29 Offset 28 - Store 9(txval001) 30 - 37: 34 Load 36(g_tTex2di4a) - 38: 14 Load 16(g_sSamp) - 40: 39 SampledImage 37 38 - 41: 20(fvec3) Load 22(c3) - 42: 25(ivec2) Load 27(o2) - 43: 31(ivec4) ImageGather 40 41 29 Offset 42 - Store 33(txval011) 43 - 51: 48 Load 50(g_tTex2du4a) - 52: 14 Load 16(g_sSamp) - 54: 53 SampledImage 51 52 - 55: 20(fvec3) Load 22(c3) - 56: 25(ivec2) Load 27(o2) - 57: 45(ivec4) ImageGather 54 55 29 Offset 56 - Store 47(txval021) 57 - 59: 10 Load 12(g_tTex2df4a) - 60: 14 Load 16(g_sSamp) - 61: 18 SampledImage 59 60 - 62: 20(fvec3) Load 22(c3) - 63: 25(ivec2) Load 27(o2) - 64: 25(ivec2) Load 27(o2) - 65: 25(ivec2) Load 27(o2) - 66: 25(ivec2) Load 27(o2) - 69: 68 CompositeConstruct 63 64 65 66 - 70: 7(fvec4) ImageGather 61 62 29 ConstOffsets 69 - Store 58(txval004) 70 - 72: 34 Load 36(g_tTex2di4a) - 73: 14 Load 16(g_sSamp) - 74: 39 SampledImage 72 73 - 75: 20(fvec3) Load 22(c3) - 76: 25(ivec2) Load 27(o2) - 77: 25(ivec2) Load 27(o2) - 78: 25(ivec2) Load 27(o2) - 79: 25(ivec2) Load 27(o2) - 80: 68 CompositeConstruct 76 77 78 79 - 81: 31(ivec4) ImageGather 74 75 29 ConstOffsets 80 - Store 71(txval014) 81 - 83: 48 Load 50(g_tTex2du4a) - 84: 14 Load 16(g_sSamp) - 85: 53 SampledImage 83 84 - 86: 20(fvec3) Load 22(c3) - 87: 25(ivec2) Load 27(o2) - 88: 25(ivec2) Load 27(o2) - 89: 25(ivec2) Load 27(o2) - 90: 25(ivec2) Load 27(o2) - 91: 68 CompositeConstruct 87 88 89 90 - 92: 45(ivec4) ImageGather 85 86 29 ConstOffsets 91 - Store 82(txval024) 92 - 94: 10 Load 12(g_tTex2df4a) - 95: 14 Load 16(g_sSamp) - 96: 18 SampledImage 94 95 - 97: 20(fvec3) Load 22(c3) - 98: 25(ivec2) Load 27(o2) - 100: 7(fvec4) ImageGather 96 97 99 Offset 98 - Store 93(txval101) 100 - 102: 34 Load 36(g_tTex2di4a) - 103: 14 Load 16(g_sSamp) - 104: 39 SampledImage 102 103 - 105: 20(fvec3) Load 22(c3) - 106: 25(ivec2) Load 27(o2) - 107: 31(ivec4) ImageGather 104 105 99 Offset 106 - Store 101(txval111) 107 - 109: 48 Load 50(g_tTex2du4a) - 110: 14 Load 16(g_sSamp) - 111: 53 SampledImage 109 110 - 112: 20(fvec3) Load 22(c3) - 113: 25(ivec2) Load 27(o2) - 114: 45(ivec4) ImageGather 111 112 99 Offset 113 - Store 108(txval121) 114 - 116: 10 Load 12(g_tTex2df4a) - 117: 14 Load 16(g_sSamp) - 118: 18 SampledImage 116 117 - 119: 20(fvec3) Load 22(c3) - 120: 25(ivec2) Load 27(o2) - 121: 25(ivec2) Load 27(o2) - 122: 25(ivec2) Load 27(o2) - 123: 25(ivec2) Load 27(o2) - 124: 68 CompositeConstruct 120 121 122 123 - 125: 7(fvec4) ImageGather 118 119 99 ConstOffsets 124 - Store 115(txval104) 125 - 127: 34 Load 36(g_tTex2di4a) - 128: 14 Load 16(g_sSamp) - 129: 39 SampledImage 127 128 - 130: 20(fvec3) Load 22(c3) - 131: 25(ivec2) Load 27(o2) - 132: 25(ivec2) Load 27(o2) - 133: 25(ivec2) Load 27(o2) - 134: 25(ivec2) Load 27(o2) - 135: 68 CompositeConstruct 131 132 133 134 - 136: 31(ivec4) ImageGather 129 130 99 ConstOffsets 135 - Store 126(txval114) 136 - 138: 48 Load 50(g_tTex2du4a) - 139: 14 Load 16(g_sSamp) - 140: 53 SampledImage 138 139 - 141: 20(fvec3) Load 22(c3) - 142: 25(ivec2) Load 27(o2) - 143: 25(ivec2) Load 27(o2) - 144: 25(ivec2) Load 27(o2) - 145: 25(ivec2) Load 27(o2) - 146: 68 CompositeConstruct 142 143 144 145 - 147: 45(ivec4) ImageGather 140 141 99 ConstOffsets 146 - Store 137(txval124) 147 - 149: 10 Load 12(g_tTex2df4a) - 150: 14 Load 16(g_sSamp) - 151: 18 SampledImage 149 150 - 152: 20(fvec3) Load 22(c3) - 153: 25(ivec2) Load 27(o2) - 155: 7(fvec4) ImageGather 151 152 154 Offset 153 - Store 148(txval201) 155 - 157: 34 Load 36(g_tTex2di4a) - 158: 14 Load 16(g_sSamp) - 159: 39 SampledImage 157 158 - 160: 20(fvec3) Load 22(c3) - 161: 25(ivec2) Load 27(o2) - 162: 31(ivec4) ImageGather 159 160 154 Offset 161 - Store 156(txval211) 162 - 164: 48 Load 50(g_tTex2du4a) + 31: 30(ptr) AccessChain 28 29 + 32: 21(fvec3) Load 31 + 35: 34(ptr) AccessChain 28 33 + 36: 23(ivec2) Load 35 + 38: 7(fvec4) ImageGather 19 32 37 Offset 36 + Store 9(txval001) 38 + 44: 41 Load 43(g_tTex2di4a) + 45: 14 Load 16(g_sSamp) + 47: 46 SampledImage 44 45 + 48: 30(ptr) AccessChain 28 29 + 49: 21(fvec3) Load 48 + 50: 34(ptr) AccessChain 28 33 + 51: 23(ivec2) Load 50 + 52: 25(ivec4) ImageGather 47 49 37 Offset 51 + Store 40(txval011) 52 + 60: 57 Load 59(g_tTex2du4a) + 61: 14 Load 16(g_sSamp) + 63: 62 SampledImage 60 61 + 64: 30(ptr) AccessChain 28 29 + 65: 21(fvec3) Load 64 + 66: 34(ptr) AccessChain 28 33 + 67: 23(ivec2) Load 66 + 68: 54(ivec4) ImageGather 63 65 37 Offset 67 + Store 56(txval021) 68 + 70: 10 Load 12(g_tTex2df4a) + 71: 14 Load 16(g_sSamp) + 72: 18 SampledImage 70 71 + 73: 30(ptr) AccessChain 28 29 + 74: 21(fvec3) Load 73 + 75: 34(ptr) AccessChain 28 33 + 76: 23(ivec2) Load 75 + 77: 34(ptr) AccessChain 28 33 + 78: 23(ivec2) Load 77 + 79: 34(ptr) AccessChain 28 33 + 80: 23(ivec2) Load 79 + 81: 34(ptr) AccessChain 28 33 + 82: 23(ivec2) Load 81 + 85: 84 CompositeConstruct 76 78 80 82 + 86: 7(fvec4) ImageGather 72 74 37 ConstOffsets 85 + Store 69(txval004) 86 + 88: 41 Load 43(g_tTex2di4a) + 89: 14 Load 16(g_sSamp) + 90: 46 SampledImage 88 89 + 91: 30(ptr) AccessChain 28 29 + 92: 21(fvec3) Load 91 + 93: 34(ptr) AccessChain 28 33 + 94: 23(ivec2) Load 93 + 95: 34(ptr) AccessChain 28 33 + 96: 23(ivec2) Load 95 + 97: 34(ptr) AccessChain 28 33 + 98: 23(ivec2) Load 97 + 99: 34(ptr) AccessChain 28 33 + 100: 23(ivec2) Load 99 + 101: 84 CompositeConstruct 94 96 98 100 + 102: 25(ivec4) ImageGather 90 92 37 ConstOffsets 101 + Store 87(txval014) 102 + 104: 57 Load 59(g_tTex2du4a) + 105: 14 Load 16(g_sSamp) + 106: 62 SampledImage 104 105 + 107: 30(ptr) AccessChain 28 29 + 108: 21(fvec3) Load 107 + 109: 34(ptr) AccessChain 28 33 + 110: 23(ivec2) Load 109 + 111: 34(ptr) AccessChain 28 33 + 112: 23(ivec2) Load 111 + 113: 34(ptr) AccessChain 28 33 + 114: 23(ivec2) Load 113 + 115: 34(ptr) AccessChain 28 33 + 116: 23(ivec2) Load 115 + 117: 84 CompositeConstruct 110 112 114 116 + 118: 54(ivec4) ImageGather 106 108 37 ConstOffsets 117 + Store 103(txval024) 118 + 120: 10 Load 12(g_tTex2df4a) + 121: 14 Load 16(g_sSamp) + 122: 18 SampledImage 120 121 + 123: 30(ptr) AccessChain 28 29 + 124: 21(fvec3) Load 123 + 125: 34(ptr) AccessChain 28 33 + 126: 23(ivec2) Load 125 + 128: 7(fvec4) ImageGather 122 124 127 Offset 126 + Store 119(txval101) 128 + 130: 41 Load 43(g_tTex2di4a) + 131: 14 Load 16(g_sSamp) + 132: 46 SampledImage 130 131 + 133: 30(ptr) AccessChain 28 29 + 134: 21(fvec3) Load 133 + 135: 34(ptr) AccessChain 28 33 + 136: 23(ivec2) Load 135 + 137: 25(ivec4) ImageGather 132 134 127 Offset 136 + Store 129(txval111) 137 + 139: 57 Load 59(g_tTex2du4a) + 140: 14 Load 16(g_sSamp) + 141: 62 SampledImage 139 140 + 142: 30(ptr) AccessChain 28 29 + 143: 21(fvec3) Load 142 + 144: 34(ptr) AccessChain 28 33 + 145: 23(ivec2) Load 144 + 146: 54(ivec4) ImageGather 141 143 127 Offset 145 + Store 138(txval121) 146 + 148: 10 Load 12(g_tTex2df4a) + 149: 14 Load 16(g_sSamp) + 150: 18 SampledImage 148 149 + 151: 30(ptr) AccessChain 28 29 + 152: 21(fvec3) Load 151 + 153: 34(ptr) AccessChain 28 33 + 154: 23(ivec2) Load 153 + 155: 34(ptr) AccessChain 28 33 + 156: 23(ivec2) Load 155 + 157: 34(ptr) AccessChain 28 33 + 158: 23(ivec2) Load 157 + 159: 34(ptr) AccessChain 28 33 + 160: 23(ivec2) Load 159 + 161: 84 CompositeConstruct 154 156 158 160 + 162: 7(fvec4) ImageGather 150 152 127 ConstOffsets 161 + Store 147(txval104) 162 + 164: 41 Load 43(g_tTex2di4a) 165: 14 Load 16(g_sSamp) - 166: 53 SampledImage 164 165 - 167: 20(fvec3) Load 22(c3) - 168: 25(ivec2) Load 27(o2) - 169: 45(ivec4) ImageGather 166 167 154 Offset 168 - Store 163(txval221) 169 - 171: 10 Load 12(g_tTex2df4a) - 172: 14 Load 16(g_sSamp) - 173: 18 SampledImage 171 172 - 174: 20(fvec3) Load 22(c3) - 175: 25(ivec2) Load 27(o2) - 176: 25(ivec2) Load 27(o2) - 177: 25(ivec2) Load 27(o2) - 178: 25(ivec2) Load 27(o2) - 179: 68 CompositeConstruct 175 176 177 178 - 180: 7(fvec4) ImageGather 173 174 154 ConstOffsets 179 - Store 170(txval204) 180 - 182: 34 Load 36(g_tTex2di4a) - 183: 14 Load 16(g_sSamp) - 184: 39 SampledImage 182 183 - 185: 20(fvec3) Load 22(c3) - 186: 25(ivec2) Load 27(o2) - 187: 25(ivec2) Load 27(o2) - 188: 25(ivec2) Load 27(o2) - 189: 25(ivec2) Load 27(o2) - 190: 68 CompositeConstruct 186 187 188 189 - 191: 31(ivec4) ImageGather 184 185 154 ConstOffsets 190 - Store 181(txval214) 191 - 193: 48 Load 50(g_tTex2du4a) - 194: 14 Load 16(g_sSamp) - 195: 53 SampledImage 193 194 - 196: 20(fvec3) Load 22(c3) - 197: 25(ivec2) Load 27(o2) - 198: 25(ivec2) Load 27(o2) - 199: 25(ivec2) Load 27(o2) - 200: 25(ivec2) Load 27(o2) - 201: 68 CompositeConstruct 197 198 199 200 - 202: 45(ivec4) ImageGather 195 196 154 ConstOffsets 201 - Store 192(txval224) 202 - 204: 10 Load 12(g_tTex2df4a) - 205: 14 Load 16(g_sSamp) - 206: 18 SampledImage 204 205 - 207: 20(fvec3) Load 22(c3) - 208: 25(ivec2) Load 27(o2) - 210: 7(fvec4) ImageGather 206 207 209 Offset 208 - Store 203(txval301) 210 - 212: 34 Load 36(g_tTex2di4a) - 213: 14 Load 16(g_sSamp) - 214: 39 SampledImage 212 213 - 215: 20(fvec3) Load 22(c3) - 216: 25(ivec2) Load 27(o2) - 217: 31(ivec4) ImageGather 214 215 209 Offset 216 - Store 211(txval311) 217 - 219: 48 Load 50(g_tTex2du4a) - 220: 14 Load 16(g_sSamp) - 221: 53 SampledImage 219 220 - 222: 20(fvec3) Load 22(c3) - 223: 25(ivec2) Load 27(o2) - 224: 45(ivec4) ImageGather 221 222 209 Offset 223 - Store 218(txval321) 224 - 226: 10 Load 12(g_tTex2df4a) - 227: 14 Load 16(g_sSamp) - 228: 18 SampledImage 226 227 - 229: 20(fvec3) Load 22(c3) - 230: 25(ivec2) Load 27(o2) - 231: 25(ivec2) Load 27(o2) - 232: 25(ivec2) Load 27(o2) - 233: 25(ivec2) Load 27(o2) - 234: 68 CompositeConstruct 230 231 232 233 - 235: 7(fvec4) ImageGather 228 229 209 ConstOffsets 234 - Store 225(txval304) 235 - 237: 34 Load 36(g_tTex2di4a) - 238: 14 Load 16(g_sSamp) - 239: 39 SampledImage 237 238 - 240: 20(fvec3) Load 22(c3) - 241: 25(ivec2) Load 27(o2) - 242: 25(ivec2) Load 27(o2) - 243: 25(ivec2) Load 27(o2) - 244: 25(ivec2) Load 27(o2) - 245: 68 CompositeConstruct 241 242 243 244 - 246: 31(ivec4) ImageGather 239 240 209 ConstOffsets 245 - Store 236(txval314) 246 - 248: 48 Load 50(g_tTex2du4a) - 249: 14 Load 16(g_sSamp) - 250: 53 SampledImage 248 249 - 251: 20(fvec3) Load 22(c3) - 252: 25(ivec2) Load 27(o2) - 253: 25(ivec2) Load 27(o2) - 254: 25(ivec2) Load 27(o2) - 255: 25(ivec2) Load 27(o2) - 256: 68 CompositeConstruct 252 253 254 255 - 257: 45(ivec4) ImageGather 250 251 209 ConstOffsets 256 - Store 247(txval324) 257 - 263: 8(ptr) AccessChain 260(psout) 29 - Store 263 262 - 265: 264(ptr) AccessChain 260(psout) 99 - Store 265 261 - 268: 8(ptr) AccessChain 260(psout) 29 - 269: 7(fvec4) Load 268 - Store 267(Color) 269 - 272: 264(ptr) AccessChain 260(psout) 99 - 273: 6(float) Load 272 - Store 271(Depth) 273 + 166: 46 SampledImage 164 165 + 167: 30(ptr) AccessChain 28 29 + 168: 21(fvec3) Load 167 + 169: 34(ptr) AccessChain 28 33 + 170: 23(ivec2) Load 169 + 171: 34(ptr) AccessChain 28 33 + 172: 23(ivec2) Load 171 + 173: 34(ptr) AccessChain 28 33 + 174: 23(ivec2) Load 173 + 175: 34(ptr) AccessChain 28 33 + 176: 23(ivec2) Load 175 + 177: 84 CompositeConstruct 170 172 174 176 + 178: 25(ivec4) ImageGather 166 168 127 ConstOffsets 177 + Store 163(txval114) 178 + 180: 57 Load 59(g_tTex2du4a) + 181: 14 Load 16(g_sSamp) + 182: 62 SampledImage 180 181 + 183: 30(ptr) AccessChain 28 29 + 184: 21(fvec3) Load 183 + 185: 34(ptr) AccessChain 28 33 + 186: 23(ivec2) Load 185 + 187: 34(ptr) AccessChain 28 33 + 188: 23(ivec2) Load 187 + 189: 34(ptr) AccessChain 28 33 + 190: 23(ivec2) Load 189 + 191: 34(ptr) AccessChain 28 33 + 192: 23(ivec2) Load 191 + 193: 84 CompositeConstruct 186 188 190 192 + 194: 54(ivec4) ImageGather 182 184 127 ConstOffsets 193 + Store 179(txval124) 194 + 196: 10 Load 12(g_tTex2df4a) + 197: 14 Load 16(g_sSamp) + 198: 18 SampledImage 196 197 + 199: 30(ptr) AccessChain 28 29 + 200: 21(fvec3) Load 199 + 201: 34(ptr) AccessChain 28 33 + 202: 23(ivec2) Load 201 + 203: 7(fvec4) ImageGather 198 200 29 Offset 202 + Store 195(txval201) 203 + 205: 41 Load 43(g_tTex2di4a) + 206: 14 Load 16(g_sSamp) + 207: 46 SampledImage 205 206 + 208: 30(ptr) AccessChain 28 29 + 209: 21(fvec3) Load 208 + 210: 34(ptr) AccessChain 28 33 + 211: 23(ivec2) Load 210 + 212: 25(ivec4) ImageGather 207 209 29 Offset 211 + Store 204(txval211) 212 + 214: 57 Load 59(g_tTex2du4a) + 215: 14 Load 16(g_sSamp) + 216: 62 SampledImage 214 215 + 217: 30(ptr) AccessChain 28 29 + 218: 21(fvec3) Load 217 + 219: 34(ptr) AccessChain 28 33 + 220: 23(ivec2) Load 219 + 221: 54(ivec4) ImageGather 216 218 29 Offset 220 + Store 213(txval221) 221 + 223: 10 Load 12(g_tTex2df4a) + 224: 14 Load 16(g_sSamp) + 225: 18 SampledImage 223 224 + 226: 30(ptr) AccessChain 28 29 + 227: 21(fvec3) Load 226 + 228: 34(ptr) AccessChain 28 33 + 229: 23(ivec2) Load 228 + 230: 34(ptr) AccessChain 28 33 + 231: 23(ivec2) Load 230 + 232: 34(ptr) AccessChain 28 33 + 233: 23(ivec2) Load 232 + 234: 34(ptr) AccessChain 28 33 + 235: 23(ivec2) Load 234 + 236: 84 CompositeConstruct 229 231 233 235 + 237: 7(fvec4) ImageGather 225 227 29 ConstOffsets 236 + Store 222(txval204) 237 + 239: 41 Load 43(g_tTex2di4a) + 240: 14 Load 16(g_sSamp) + 241: 46 SampledImage 239 240 + 242: 30(ptr) AccessChain 28 29 + 243: 21(fvec3) Load 242 + 244: 34(ptr) AccessChain 28 33 + 245: 23(ivec2) Load 244 + 246: 34(ptr) AccessChain 28 33 + 247: 23(ivec2) Load 246 + 248: 34(ptr) AccessChain 28 33 + 249: 23(ivec2) Load 248 + 250: 34(ptr) AccessChain 28 33 + 251: 23(ivec2) Load 250 + 252: 84 CompositeConstruct 245 247 249 251 + 253: 25(ivec4) ImageGather 241 243 29 ConstOffsets 252 + Store 238(txval214) 253 + 255: 57 Load 59(g_tTex2du4a) + 256: 14 Load 16(g_sSamp) + 257: 62 SampledImage 255 256 + 258: 30(ptr) AccessChain 28 29 + 259: 21(fvec3) Load 258 + 260: 34(ptr) AccessChain 28 33 + 261: 23(ivec2) Load 260 + 262: 34(ptr) AccessChain 28 33 + 263: 23(ivec2) Load 262 + 264: 34(ptr) AccessChain 28 33 + 265: 23(ivec2) Load 264 + 266: 34(ptr) AccessChain 28 33 + 267: 23(ivec2) Load 266 + 268: 84 CompositeConstruct 261 263 265 267 + 269: 54(ivec4) ImageGather 257 259 29 ConstOffsets 268 + Store 254(txval224) 269 + 271: 10 Load 12(g_tTex2df4a) + 272: 14 Load 16(g_sSamp) + 273: 18 SampledImage 271 272 + 274: 30(ptr) AccessChain 28 29 + 275: 21(fvec3) Load 274 + 276: 34(ptr) AccessChain 28 33 + 277: 23(ivec2) Load 276 + 279: 7(fvec4) ImageGather 273 275 278 Offset 277 + Store 270(txval301) 279 + 281: 41 Load 43(g_tTex2di4a) + 282: 14 Load 16(g_sSamp) + 283: 46 SampledImage 281 282 + 284: 30(ptr) AccessChain 28 29 + 285: 21(fvec3) Load 284 + 286: 34(ptr) AccessChain 28 33 + 287: 23(ivec2) Load 286 + 288: 25(ivec4) ImageGather 283 285 278 Offset 287 + Store 280(txval311) 288 + 290: 57 Load 59(g_tTex2du4a) + 291: 14 Load 16(g_sSamp) + 292: 62 SampledImage 290 291 + 293: 30(ptr) AccessChain 28 29 + 294: 21(fvec3) Load 293 + 295: 34(ptr) AccessChain 28 33 + 296: 23(ivec2) Load 295 + 297: 54(ivec4) ImageGather 292 294 278 Offset 296 + Store 289(txval321) 297 + 299: 10 Load 12(g_tTex2df4a) + 300: 14 Load 16(g_sSamp) + 301: 18 SampledImage 299 300 + 302: 30(ptr) AccessChain 28 29 + 303: 21(fvec3) Load 302 + 304: 34(ptr) AccessChain 28 33 + 305: 23(ivec2) Load 304 + 306: 34(ptr) AccessChain 28 33 + 307: 23(ivec2) Load 306 + 308: 34(ptr) AccessChain 28 33 + 309: 23(ivec2) Load 308 + 310: 34(ptr) AccessChain 28 33 + 311: 23(ivec2) Load 310 + 312: 84 CompositeConstruct 305 307 309 311 + 313: 7(fvec4) ImageGather 301 303 278 ConstOffsets 312 + Store 298(txval304) 313 + 315: 41 Load 43(g_tTex2di4a) + 316: 14 Load 16(g_sSamp) + 317: 46 SampledImage 315 316 + 318: 30(ptr) AccessChain 28 29 + 319: 21(fvec3) Load 318 + 320: 34(ptr) AccessChain 28 33 + 321: 23(ivec2) Load 320 + 322: 34(ptr) AccessChain 28 33 + 323: 23(ivec2) Load 322 + 324: 34(ptr) AccessChain 28 33 + 325: 23(ivec2) Load 324 + 326: 34(ptr) AccessChain 28 33 + 327: 23(ivec2) Load 326 + 328: 84 CompositeConstruct 321 323 325 327 + 329: 25(ivec4) ImageGather 317 319 278 ConstOffsets 328 + Store 314(txval314) 329 + 331: 57 Load 59(g_tTex2du4a) + 332: 14 Load 16(g_sSamp) + 333: 62 SampledImage 331 332 + 334: 30(ptr) AccessChain 28 29 + 335: 21(fvec3) Load 334 + 336: 34(ptr) AccessChain 28 33 + 337: 23(ivec2) Load 336 + 338: 34(ptr) AccessChain 28 33 + 339: 23(ivec2) Load 338 + 340: 34(ptr) AccessChain 28 33 + 341: 23(ivec2) Load 340 + 342: 34(ptr) AccessChain 28 33 + 343: 23(ivec2) Load 342 + 344: 84 CompositeConstruct 337 339 341 343 + 345: 54(ivec4) ImageGather 333 335 278 ConstOffsets 344 + Store 330(txval324) 345 + 351: 8(ptr) AccessChain 348(psout) 37 + Store 351 350 + 353: 352(ptr) AccessChain 348(psout) 127 + Store 353 349 + 356: 8(ptr) AccessChain 348(psout) 37 + 357: 7(fvec4) Load 356 + Store 355(Color) 357 + 360: 352(ptr) AccessChain 348(psout) 127 + 361: 6(float) Load 360 + Store 359(Depth) 361 Return FunctionEnd diff --git a/Test/baseResults/hlsl.getdimensions.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.dx10.frag.out index 18b35e4c8777cf15b2cdd06173a5b648cb5102bf..0c488cfbfab5f5202d1f31e30babb9c29a626bcd 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.frag.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.frag.out @@ -2,7 +2,7 @@ hlsl.getdimensions.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:46 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -1060,8 +1060,8 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:? Sequence -0:? Sequence +0:279 Sequence +0:279 Sequence 0:279 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:279 Color: direct index for structure (temp 4-component vector of float) @@ -1076,6 +1076,8 @@ gl_FragCoord origin is upper left 0:279 1 (const int) 0:279 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -1104,8 +1106,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -1114,7 +1114,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:46 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:46 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:46 Function Parameters: 0:? Sequence 0:65 Sequence @@ -2172,8 +2172,8 @@ gl_FragCoord origin is upper left 0:277 1 (const int) 0:277 Constant: 0:277 1.000000 -0:? Sequence -0:? Sequence +0:279 Sequence +0:279 Sequence 0:279 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:279 Color: direct index for structure (temp 4-component vector of float) @@ -2188,6 +2188,8 @@ gl_FragCoord origin is upper left 0:279 1 (const int) 0:279 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -2216,8 +2218,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getdimensions.dx10.vert.out b/Test/baseResults/hlsl.getdimensions.dx10.vert.out index 3c063c1293db0cd568c8a60c403159ca4879d204..c1c90f4b257d6f311273d1225244552487cedef7 100644 --- a/Test/baseResults/hlsl.getdimensions.dx10.vert.out +++ b/Test/baseResults/hlsl.getdimensions.dx10.vert.out @@ -1,7 +1,7 @@ hlsl.getdimensions.dx10.vert Shader version: 450 0:? Sequence -0:11 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence @@ -36,8 +36,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:26 Sequence +0:26 Sequence 0:26 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:26 Pos: direct index for structure (temp 4-component vector of float) @@ -46,9 +46,9 @@ Shader version: 450 0:26 0 (const int) 0:26 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -56,7 +56,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:11 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:11 Function Parameters: 0:? Sequence 0:21 Sequence @@ -91,8 +91,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:26 Sequence +0:26 Sequence 0:26 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:26 Pos: direct index for structure (temp 4-component vector of float) @@ -101,9 +101,9 @@ Shader version: 450 0:26 0 (const int) 0:26 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) -0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..918246b6ed1defe27cb391d53e4164e85aad96bc --- /dev/null +++ b/Test/baseResults/hlsl.getdimensions.rw.dx10.frag.out @@ -0,0 +1,1090 @@ +hlsl.getdimensions.rw.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:44 Function Parameters: +0:? Sequence +0:63 Sequence +0:63 move second child to first child (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:63 imageQuerySize (temp uint) +0:63 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:63 move second child to first child (temp uint) +0:63 'WidthU' (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:64 Sequence +0:64 move second child to first child (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:64 imageQuerySize (temp uint) +0:64 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:64 move second child to first child (temp uint) +0:64 'WidthU' (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:65 Sequence +0:65 move second child to first child (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:65 imageQuerySize (temp uint) +0:65 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:65 move second child to first child (temp uint) +0:65 'WidthU' (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:68 Sequence +0:68 move second child to first child (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:68 imageQuerySize (temp uint) +0:68 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:68 move second child to first child (temp uint) +0:68 'WidthU' (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:69 Sequence +0:69 move second child to first child (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:69 imageQuerySize (temp uint) +0:69 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:69 move second child to first child (temp uint) +0:69 'WidthU' (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 imageQuerySize (temp uint) +0:70 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:70 move second child to first child (temp uint) +0:70 'WidthU' (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 imageQuerySize (temp 2-component vector of uint) +0:73 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:73 move second child to first child (temp uint) +0:73 'WidthU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child (temp uint) +0:73 'ElementsU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp 2-component vector of uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 imageQuerySize (temp 2-component vector of uint) +0:74 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:74 move second child to first child (temp uint) +0:74 'WidthU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child (temp uint) +0:74 'ElementsU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:75 Sequence +0:75 move second child to first child (temp 2-component vector of uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 imageQuerySize (temp 2-component vector of uint) +0:75 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:75 move second child to first child (temp uint) +0:75 'WidthU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp uint) +0:75 'ElementsU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 2-component vector of uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 imageQuerySize (temp 2-component vector of uint) +0:78 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:78 move second child to first child (temp uint) +0:78 'WidthU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child (temp uint) +0:78 'HeightU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 imageQuerySize (temp 2-component vector of uint) +0:79 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:79 move second child to first child (temp uint) +0:79 'WidthU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 move second child to first child (temp uint) +0:79 'HeightU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 1 (const int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 imageQuerySize (temp 2-component vector of uint) +0:80 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:80 move second child to first child (temp uint) +0:80 'WidthU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 move second child to first child (temp uint) +0:80 'HeightU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 1 (const int) +0:83 Sequence +0:83 move second child to first child (temp 3-component vector of uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 imageQuerySize (temp 3-component vector of uint) +0:83 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:83 move second child to first child (temp uint) +0:83 'WidthU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 0 (const int) +0:83 move second child to first child (temp uint) +0:83 'HeightU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 1 (const int) +0:83 move second child to first child (temp uint) +0:83 'ElementsU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 3-component vector of uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 imageQuerySize (temp 3-component vector of uint) +0:84 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:84 move second child to first child (temp uint) +0:84 'WidthU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 move second child to first child (temp uint) +0:84 'HeightU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 1 (const int) +0:84 move second child to first child (temp uint) +0:84 'ElementsU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 2 (const int) +0:85 Sequence +0:85 move second child to first child (temp 3-component vector of uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 imageQuerySize (temp 3-component vector of uint) +0:85 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:85 move second child to first child (temp uint) +0:85 'WidthU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child (temp uint) +0:85 'HeightU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:85 move second child to first child (temp uint) +0:85 'ElementsU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 imageQuerySize (temp 3-component vector of uint) +0:88 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:88 move second child to first child (temp uint) +0:88 'WidthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 0 (const int) +0:88 move second child to first child (temp uint) +0:88 'HeightU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 1 (const int) +0:88 move second child to first child (temp uint) +0:88 'DepthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 2 (const int) +0:89 Sequence +0:89 move second child to first child (temp 3-component vector of uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 imageQuerySize (temp 3-component vector of uint) +0:89 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:89 move second child to first child (temp uint) +0:89 'WidthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp uint) +0:89 'HeightU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:89 move second child to first child (temp uint) +0:89 'DepthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child (temp 3-component vector of uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 imageQuerySize (temp 3-component vector of uint) +0:90 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:90 move second child to first child (temp uint) +0:90 'WidthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child (temp uint) +0:90 'HeightU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child (temp uint) +0:90 'DepthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 2 (const int) +0:92 move second child to first child (temp 4-component vector of float) +0:92 Color: direct index for structure (temp 4-component vector of float) +0:92 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:93 move second child to first child (temp float) +0:93 Depth: direct index for structure (temp float) +0:93 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:93 Constant: +0:93 1 (const int) +0:93 Constant: +0:93 1.000000 +0:95 Sequence +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:95 Color: direct index for structure (temp 4-component vector of float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 0 (const int) +0:95 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:95 Depth: direct index for structure (temp float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 1 (const int) +0:95 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:44 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:44 Function Parameters: +0:? Sequence +0:63 Sequence +0:63 move second child to first child (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:63 imageQuerySize (temp uint) +0:63 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:63 move second child to first child (temp uint) +0:63 'WidthU' (temp uint) +0:63 'sizeQueryTemp' (temp uint) +0:64 Sequence +0:64 move second child to first child (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:64 imageQuerySize (temp uint) +0:64 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:64 move second child to first child (temp uint) +0:64 'WidthU' (temp uint) +0:64 'sizeQueryTemp' (temp uint) +0:65 Sequence +0:65 move second child to first child (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:65 imageQuerySize (temp uint) +0:65 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:65 move second child to first child (temp uint) +0:65 'WidthU' (temp uint) +0:65 'sizeQueryTemp' (temp uint) +0:68 Sequence +0:68 move second child to first child (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:68 imageQuerySize (temp uint) +0:68 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:68 move second child to first child (temp uint) +0:68 'WidthU' (temp uint) +0:68 'sizeQueryTemp' (temp uint) +0:69 Sequence +0:69 move second child to first child (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:69 imageQuerySize (temp uint) +0:69 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:69 move second child to first child (temp uint) +0:69 'WidthU' (temp uint) +0:69 'sizeQueryTemp' (temp uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 imageQuerySize (temp uint) +0:70 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:70 move second child to first child (temp uint) +0:70 'WidthU' (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 imageQuerySize (temp 2-component vector of uint) +0:73 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:73 move second child to first child (temp uint) +0:73 'WidthU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 0 (const int) +0:73 move second child to first child (temp uint) +0:73 'ElementsU' (temp uint) +0:73 direct index (temp uint) +0:73 'sizeQueryTemp' (temp 2-component vector of uint) +0:73 Constant: +0:73 1 (const int) +0:74 Sequence +0:74 move second child to first child (temp 2-component vector of uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 imageQuerySize (temp 2-component vector of uint) +0:74 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:74 move second child to first child (temp uint) +0:74 'WidthU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 0 (const int) +0:74 move second child to first child (temp uint) +0:74 'ElementsU' (temp uint) +0:74 direct index (temp uint) +0:74 'sizeQueryTemp' (temp 2-component vector of uint) +0:74 Constant: +0:74 1 (const int) +0:75 Sequence +0:75 move second child to first child (temp 2-component vector of uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 imageQuerySize (temp 2-component vector of uint) +0:75 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:75 move second child to first child (temp uint) +0:75 'WidthU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 0 (const int) +0:75 move second child to first child (temp uint) +0:75 'ElementsU' (temp uint) +0:75 direct index (temp uint) +0:75 'sizeQueryTemp' (temp 2-component vector of uint) +0:75 Constant: +0:75 1 (const int) +0:78 Sequence +0:78 move second child to first child (temp 2-component vector of uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 imageQuerySize (temp 2-component vector of uint) +0:78 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:78 move second child to first child (temp uint) +0:78 'WidthU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 0 (const int) +0:78 move second child to first child (temp uint) +0:78 'HeightU' (temp uint) +0:78 direct index (temp uint) +0:78 'sizeQueryTemp' (temp 2-component vector of uint) +0:78 Constant: +0:78 1 (const int) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 imageQuerySize (temp 2-component vector of uint) +0:79 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:79 move second child to first child (temp uint) +0:79 'WidthU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 0 (const int) +0:79 move second child to first child (temp uint) +0:79 'HeightU' (temp uint) +0:79 direct index (temp uint) +0:79 'sizeQueryTemp' (temp 2-component vector of uint) +0:79 Constant: +0:79 1 (const int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 imageQuerySize (temp 2-component vector of uint) +0:80 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:80 move second child to first child (temp uint) +0:80 'WidthU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 0 (const int) +0:80 move second child to first child (temp uint) +0:80 'HeightU' (temp uint) +0:80 direct index (temp uint) +0:80 'sizeQueryTemp' (temp 2-component vector of uint) +0:80 Constant: +0:80 1 (const int) +0:83 Sequence +0:83 move second child to first child (temp 3-component vector of uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 imageQuerySize (temp 3-component vector of uint) +0:83 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:83 move second child to first child (temp uint) +0:83 'WidthU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 0 (const int) +0:83 move second child to first child (temp uint) +0:83 'HeightU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 1 (const int) +0:83 move second child to first child (temp uint) +0:83 'ElementsU' (temp uint) +0:83 direct index (temp uint) +0:83 'sizeQueryTemp' (temp 3-component vector of uint) +0:83 Constant: +0:83 2 (const int) +0:84 Sequence +0:84 move second child to first child (temp 3-component vector of uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 imageQuerySize (temp 3-component vector of uint) +0:84 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:84 move second child to first child (temp uint) +0:84 'WidthU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 0 (const int) +0:84 move second child to first child (temp uint) +0:84 'HeightU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 1 (const int) +0:84 move second child to first child (temp uint) +0:84 'ElementsU' (temp uint) +0:84 direct index (temp uint) +0:84 'sizeQueryTemp' (temp 3-component vector of uint) +0:84 Constant: +0:84 2 (const int) +0:85 Sequence +0:85 move second child to first child (temp 3-component vector of uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 imageQuerySize (temp 3-component vector of uint) +0:85 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:85 move second child to first child (temp uint) +0:85 'WidthU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 0 (const int) +0:85 move second child to first child (temp uint) +0:85 'HeightU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 1 (const int) +0:85 move second child to first child (temp uint) +0:85 'ElementsU' (temp uint) +0:85 direct index (temp uint) +0:85 'sizeQueryTemp' (temp 3-component vector of uint) +0:85 Constant: +0:85 2 (const int) +0:88 Sequence +0:88 move second child to first child (temp 3-component vector of uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 imageQuerySize (temp 3-component vector of uint) +0:88 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:88 move second child to first child (temp uint) +0:88 'WidthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 0 (const int) +0:88 move second child to first child (temp uint) +0:88 'HeightU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 1 (const int) +0:88 move second child to first child (temp uint) +0:88 'DepthU' (temp uint) +0:88 direct index (temp uint) +0:88 'sizeQueryTemp' (temp 3-component vector of uint) +0:88 Constant: +0:88 2 (const int) +0:89 Sequence +0:89 move second child to first child (temp 3-component vector of uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 imageQuerySize (temp 3-component vector of uint) +0:89 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:89 move second child to first child (temp uint) +0:89 'WidthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 0 (const int) +0:89 move second child to first child (temp uint) +0:89 'HeightU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 1 (const int) +0:89 move second child to first child (temp uint) +0:89 'DepthU' (temp uint) +0:89 direct index (temp uint) +0:89 'sizeQueryTemp' (temp 3-component vector of uint) +0:89 Constant: +0:89 2 (const int) +0:90 Sequence +0:90 move second child to first child (temp 3-component vector of uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 imageQuerySize (temp 3-component vector of uint) +0:90 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:90 move second child to first child (temp uint) +0:90 'WidthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 0 (const int) +0:90 move second child to first child (temp uint) +0:90 'HeightU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 1 (const int) +0:90 move second child to first child (temp uint) +0:90 'DepthU' (temp uint) +0:90 direct index (temp uint) +0:90 'sizeQueryTemp' (temp 3-component vector of uint) +0:90 Constant: +0:90 2 (const int) +0:92 move second child to first child (temp 4-component vector of float) +0:92 Color: direct index for structure (temp 4-component vector of float) +0:92 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:92 Constant: +0:92 0 (const int) +0:92 Constant: +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:92 1.000000 +0:93 move second child to first child (temp float) +0:93 Depth: direct index for structure (temp float) +0:93 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:93 Constant: +0:93 1 (const int) +0:93 Constant: +0:93 1.000000 +0:95 Sequence +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:95 Color: direct index for structure (temp 4-component vector of float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 0 (const int) +0:95 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:95 Depth: direct index for structure (temp float) +0:95 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:95 Constant: +0:95 1 (const int) +0:95 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 225 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 210 214 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "sizeQueryTemp" + Name 12 "g_tTex1df4" + Name 16 "WidthU" + Name 18 "sizeQueryTemp" + Name 21 "g_tTex1di4" + Name 25 "sizeQueryTemp" + Name 28 "g_tTex1du4" + Name 32 "sizeQueryTemp" + Name 35 "g_tBuffF" + Name 39 "sizeQueryTemp" + Name 42 "g_tBuffI" + Name 46 "sizeQueryTemp" + Name 49 "g_tBuffU" + Name 55 "sizeQueryTemp" + Name 58 "g_tTex1df4a" + Name 65 "ElementsU" + Name 69 "sizeQueryTemp" + Name 72 "g_tTex1di4a" + Name 79 "sizeQueryTemp" + Name 82 "g_tTex1du4a" + Name 89 "sizeQueryTemp" + Name 92 "g_tTex2df4" + Name 97 "HeightU" + Name 100 "sizeQueryTemp" + Name 103 "g_tTex2di4" + Name 110 "sizeQueryTemp" + Name 113 "g_tTex2du4" + Name 122 "sizeQueryTemp" + Name 125 "g_tTex2df4a" + Name 136 "sizeQueryTemp" + Name 139 "g_tTex2di4a" + Name 148 "sizeQueryTemp" + Name 151 "g_tTex2du4a" + Name 160 "sizeQueryTemp" + Name 163 "g_tTex3df4" + Name 170 "DepthU" + Name 173 "sizeQueryTemp" + Name 176 "g_tTex3di4" + Name 185 "sizeQueryTemp" + Name 188 "g_tTex3du4" + Name 198 "PS_OUTPUT" + MemberName 198(PS_OUTPUT) 0 "Color" + MemberName 198(PS_OUTPUT) 1 "Depth" + Name 200 "psout" + Name 210 "Color" + Name 214 "Depth" + Name 220 "g_sSamp" + Name 222 "$Global" + MemberName 222($Global) 0 "c1" + MemberName 222($Global) 1 "c2" + MemberName 222($Global) 2 "c3" + MemberName 222($Global) 3 "c4" + MemberName 222($Global) 4 "o1" + MemberName 222($Global) 5 "o2" + MemberName 222($Global) 6 "o3" + MemberName 222($Global) 7 "o4" + Name 224 "" + Decorate 12(g_tTex1df4) DescriptorSet 0 + Decorate 12(g_tTex1df4) Binding 0 + Decorate 21(g_tTex1di4) DescriptorSet 0 + Decorate 28(g_tTex1du4) DescriptorSet 0 + Decorate 35(g_tBuffF) DescriptorSet 0 + Decorate 42(g_tBuffI) DescriptorSet 0 + Decorate 49(g_tBuffU) DescriptorSet 0 + Decorate 58(g_tTex1df4a) DescriptorSet 0 + Decorate 72(g_tTex1di4a) DescriptorSet 0 + Decorate 82(g_tTex1du4a) DescriptorSet 0 + Decorate 92(g_tTex2df4) DescriptorSet 0 + Decorate 103(g_tTex2di4) DescriptorSet 0 + Decorate 113(g_tTex2du4) DescriptorSet 0 + Decorate 125(g_tTex2df4a) DescriptorSet 0 + Decorate 139(g_tTex2di4a) DescriptorSet 0 + Decorate 151(g_tTex2du4a) DescriptorSet 0 + Decorate 163(g_tTex3df4) DescriptorSet 0 + Decorate 176(g_tTex3di4) DescriptorSet 0 + Decorate 188(g_tTex3du4) DescriptorSet 0 + Decorate 210(Color) Location 0 + Decorate 214(Depth) BuiltIn FragDepth + Decorate 220(g_sSamp) DescriptorSet 0 + Decorate 220(g_sSamp) Binding 0 + MemberDecorate 222($Global) 0 Offset 0 + MemberDecorate 222($Global) 1 Offset 8 + MemberDecorate 222($Global) 2 Offset 16 + MemberDecorate 222($Global) 3 Offset 32 + MemberDecorate 222($Global) 4 Offset 48 + MemberDecorate 222($Global) 5 Offset 56 + MemberDecorate 222($Global) 6 Offset 64 + MemberDecorate 222($Global) 7 Offset 80 + Decorate 222($Global) Block + Decorate 224 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeFloat 32 + 10: TypeImage 9(float) 1D nonsampled format:Rgba32f + 11: TypePointer UniformConstant 10 + 12(g_tTex1df4): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 19: TypeImage 14(int) 1D nonsampled format:Rgba32i + 20: TypePointer UniformConstant 19 + 21(g_tTex1di4): 20(ptr) Variable UniformConstant + 26: TypeImage 6(int) 1D nonsampled format:Rgba32ui + 27: TypePointer UniformConstant 26 + 28(g_tTex1du4): 27(ptr) Variable UniformConstant + 33: TypeImage 9(float) Buffer nonsampled format:Rgba32f + 34: TypePointer UniformConstant 33 + 35(g_tBuffF): 34(ptr) Variable UniformConstant + 40: TypeImage 14(int) Buffer nonsampled format:Rgba32i + 41: TypePointer UniformConstant 40 + 42(g_tBuffI): 41(ptr) Variable UniformConstant + 47: TypeImage 6(int) Buffer nonsampled format:Rgba32ui + 48: TypePointer UniformConstant 47 + 49(g_tBuffU): 48(ptr) Variable UniformConstant + 53: TypeVector 6(int) 2 + 54: TypePointer Function 53(ivec2) + 56: TypeImage 9(float) 1D array nonsampled format:Rgba32f + 57: TypePointer UniformConstant 56 + 58(g_tTex1df4a): 57(ptr) Variable UniformConstant + 60: TypeVector 14(int) 2 + 62: 6(int) Constant 0 + 66: 6(int) Constant 1 + 70: TypeImage 14(int) 1D array nonsampled format:Rgba32i + 71: TypePointer UniformConstant 70 + 72(g_tTex1di4a): 71(ptr) Variable UniformConstant + 80: TypeImage 6(int) 1D array nonsampled format:Rgba32ui + 81: TypePointer UniformConstant 80 + 82(g_tTex1du4a): 81(ptr) Variable UniformConstant + 90: TypeImage 9(float) 2D nonsampled format:Rgba32f + 91: TypePointer UniformConstant 90 + 92(g_tTex2df4): 91(ptr) Variable UniformConstant + 101: TypeImage 14(int) 2D nonsampled format:Rgba32i + 102: TypePointer UniformConstant 101 + 103(g_tTex2di4): 102(ptr) Variable UniformConstant + 111: TypeImage 6(int) 2D nonsampled format:Rgba32ui + 112: TypePointer UniformConstant 111 + 113(g_tTex2du4): 112(ptr) Variable UniformConstant + 120: TypeVector 6(int) 3 + 121: TypePointer Function 120(ivec3) + 123: TypeImage 9(float) 2D array nonsampled format:Rgba32f + 124: TypePointer UniformConstant 123 +125(g_tTex2df4a): 124(ptr) Variable UniformConstant + 127: TypeVector 14(int) 3 + 133: 6(int) Constant 2 + 137: TypeImage 14(int) 2D array nonsampled format:Rgba32i + 138: TypePointer UniformConstant 137 +139(g_tTex2di4a): 138(ptr) Variable UniformConstant + 149: TypeImage 6(int) 2D array nonsampled format:Rgba32ui + 150: TypePointer UniformConstant 149 +151(g_tTex2du4a): 150(ptr) Variable UniformConstant + 161: TypeImage 9(float) 3D nonsampled format:Rgba32f + 162: TypePointer UniformConstant 161 + 163(g_tTex3df4): 162(ptr) Variable UniformConstant + 174: TypeImage 14(int) 3D nonsampled format:Rgba32i + 175: TypePointer UniformConstant 174 + 176(g_tTex3di4): 175(ptr) Variable UniformConstant + 186: TypeImage 6(int) 3D nonsampled format:Rgba32ui + 187: TypePointer UniformConstant 186 + 188(g_tTex3du4): 187(ptr) Variable UniformConstant + 197: TypeVector 9(float) 4 + 198(PS_OUTPUT): TypeStruct 197(fvec4) 9(float) + 199: TypePointer Function 198(PS_OUTPUT) + 201: 14(int) Constant 0 + 202: 9(float) Constant 1065353216 + 203: 197(fvec4) ConstantComposite 202 202 202 202 + 204: TypePointer Function 197(fvec4) + 206: 14(int) Constant 1 + 207: TypePointer Function 9(float) + 209: TypePointer Output 197(fvec4) + 210(Color): 209(ptr) Variable Output + 213: TypePointer Output 9(float) + 214(Depth): 213(ptr) Variable Output + 218: TypeSampler + 219: TypePointer UniformConstant 218 + 220(g_sSamp): 219(ptr) Variable UniformConstant + 221: TypeVector 14(int) 4 + 222($Global): TypeStruct 14(int) 60(ivec2) 127(ivec3) 221(ivec4) 14(int) 60(ivec2) 127(ivec3) 221(ivec4) + 223: TypePointer Uniform 222($Global) + 224: 223(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label +8(sizeQueryTemp): 7(ptr) Variable Function + 16(WidthU): 7(ptr) Variable Function +18(sizeQueryTemp): 7(ptr) Variable Function +25(sizeQueryTemp): 7(ptr) Variable Function +32(sizeQueryTemp): 7(ptr) Variable Function +39(sizeQueryTemp): 7(ptr) Variable Function +46(sizeQueryTemp): 7(ptr) Variable Function +55(sizeQueryTemp): 54(ptr) Variable Function + 65(ElementsU): 7(ptr) Variable Function +69(sizeQueryTemp): 54(ptr) Variable Function +79(sizeQueryTemp): 54(ptr) Variable Function +89(sizeQueryTemp): 54(ptr) Variable Function + 97(HeightU): 7(ptr) Variable Function +100(sizeQueryTemp): 54(ptr) Variable Function +110(sizeQueryTemp): 54(ptr) Variable Function +122(sizeQueryTemp): 121(ptr) Variable Function +136(sizeQueryTemp): 121(ptr) Variable Function +148(sizeQueryTemp): 121(ptr) Variable Function +160(sizeQueryTemp): 121(ptr) Variable Function + 170(DepthU): 7(ptr) Variable Function +173(sizeQueryTemp): 121(ptr) Variable Function +185(sizeQueryTemp): 121(ptr) Variable Function + 200(psout): 199(ptr) Variable Function + 13: 10 Load 12(g_tTex1df4) + 15: 14(int) ImageQuerySize 13 + Store 8(sizeQueryTemp) 15 + 17: 6(int) Load 8(sizeQueryTemp) + Store 16(WidthU) 17 + 22: 19 Load 21(g_tTex1di4) + 23: 14(int) ImageQuerySize 22 + Store 18(sizeQueryTemp) 23 + 24: 6(int) Load 18(sizeQueryTemp) + Store 16(WidthU) 24 + 29: 26 Load 28(g_tTex1du4) + 30: 14(int) ImageQuerySize 29 + Store 25(sizeQueryTemp) 30 + 31: 6(int) Load 25(sizeQueryTemp) + Store 16(WidthU) 31 + 36: 33 Load 35(g_tBuffF) + 37: 14(int) ImageQuerySize 36 + Store 32(sizeQueryTemp) 37 + 38: 6(int) Load 32(sizeQueryTemp) + Store 16(WidthU) 38 + 43: 40 Load 42(g_tBuffI) + 44: 14(int) ImageQuerySize 43 + Store 39(sizeQueryTemp) 44 + 45: 6(int) Load 39(sizeQueryTemp) + Store 16(WidthU) 45 + 50: 47 Load 49(g_tBuffU) + 51: 14(int) ImageQuerySize 50 + Store 46(sizeQueryTemp) 51 + 52: 6(int) Load 46(sizeQueryTemp) + Store 16(WidthU) 52 + 59: 56 Load 58(g_tTex1df4a) + 61: 60(ivec2) ImageQuerySize 59 + Store 55(sizeQueryTemp) 61 + 63: 7(ptr) AccessChain 55(sizeQueryTemp) 62 + 64: 6(int) Load 63 + Store 16(WidthU) 64 + 67: 7(ptr) AccessChain 55(sizeQueryTemp) 66 + 68: 6(int) Load 67 + Store 65(ElementsU) 68 + 73: 70 Load 72(g_tTex1di4a) + 74: 60(ivec2) ImageQuerySize 73 + Store 69(sizeQueryTemp) 74 + 75: 7(ptr) AccessChain 69(sizeQueryTemp) 62 + 76: 6(int) Load 75 + Store 16(WidthU) 76 + 77: 7(ptr) AccessChain 69(sizeQueryTemp) 66 + 78: 6(int) Load 77 + Store 65(ElementsU) 78 + 83: 80 Load 82(g_tTex1du4a) + 84: 60(ivec2) ImageQuerySize 83 + Store 79(sizeQueryTemp) 84 + 85: 7(ptr) AccessChain 79(sizeQueryTemp) 62 + 86: 6(int) Load 85 + Store 16(WidthU) 86 + 87: 7(ptr) AccessChain 79(sizeQueryTemp) 66 + 88: 6(int) Load 87 + Store 65(ElementsU) 88 + 93: 90 Load 92(g_tTex2df4) + 94: 60(ivec2) ImageQuerySize 93 + Store 89(sizeQueryTemp) 94 + 95: 7(ptr) AccessChain 89(sizeQueryTemp) 62 + 96: 6(int) Load 95 + Store 16(WidthU) 96 + 98: 7(ptr) AccessChain 89(sizeQueryTemp) 66 + 99: 6(int) Load 98 + Store 97(HeightU) 99 + 104: 101 Load 103(g_tTex2di4) + 105: 60(ivec2) ImageQuerySize 104 + Store 100(sizeQueryTemp) 105 + 106: 7(ptr) AccessChain 100(sizeQueryTemp) 62 + 107: 6(int) Load 106 + Store 16(WidthU) 107 + 108: 7(ptr) AccessChain 100(sizeQueryTemp) 66 + 109: 6(int) Load 108 + Store 97(HeightU) 109 + 114: 111 Load 113(g_tTex2du4) + 115: 60(ivec2) ImageQuerySize 114 + Store 110(sizeQueryTemp) 115 + 116: 7(ptr) AccessChain 110(sizeQueryTemp) 62 + 117: 6(int) Load 116 + Store 16(WidthU) 117 + 118: 7(ptr) AccessChain 110(sizeQueryTemp) 66 + 119: 6(int) Load 118 + Store 97(HeightU) 119 + 126: 123 Load 125(g_tTex2df4a) + 128: 127(ivec3) ImageQuerySize 126 + Store 122(sizeQueryTemp) 128 + 129: 7(ptr) AccessChain 122(sizeQueryTemp) 62 + 130: 6(int) Load 129 + Store 16(WidthU) 130 + 131: 7(ptr) AccessChain 122(sizeQueryTemp) 66 + 132: 6(int) Load 131 + Store 97(HeightU) 132 + 134: 7(ptr) AccessChain 122(sizeQueryTemp) 133 + 135: 6(int) Load 134 + Store 65(ElementsU) 135 + 140: 137 Load 139(g_tTex2di4a) + 141: 127(ivec3) ImageQuerySize 140 + Store 136(sizeQueryTemp) 141 + 142: 7(ptr) AccessChain 136(sizeQueryTemp) 62 + 143: 6(int) Load 142 + Store 16(WidthU) 143 + 144: 7(ptr) AccessChain 136(sizeQueryTemp) 66 + 145: 6(int) Load 144 + Store 97(HeightU) 145 + 146: 7(ptr) AccessChain 136(sizeQueryTemp) 133 + 147: 6(int) Load 146 + Store 65(ElementsU) 147 + 152: 149 Load 151(g_tTex2du4a) + 153: 127(ivec3) ImageQuerySize 152 + Store 148(sizeQueryTemp) 153 + 154: 7(ptr) AccessChain 148(sizeQueryTemp) 62 + 155: 6(int) Load 154 + Store 16(WidthU) 155 + 156: 7(ptr) AccessChain 148(sizeQueryTemp) 66 + 157: 6(int) Load 156 + Store 97(HeightU) 157 + 158: 7(ptr) AccessChain 148(sizeQueryTemp) 133 + 159: 6(int) Load 158 + Store 65(ElementsU) 159 + 164: 161 Load 163(g_tTex3df4) + 165: 127(ivec3) ImageQuerySize 164 + Store 160(sizeQueryTemp) 165 + 166: 7(ptr) AccessChain 160(sizeQueryTemp) 62 + 167: 6(int) Load 166 + Store 16(WidthU) 167 + 168: 7(ptr) AccessChain 160(sizeQueryTemp) 66 + 169: 6(int) Load 168 + Store 97(HeightU) 169 + 171: 7(ptr) AccessChain 160(sizeQueryTemp) 133 + 172: 6(int) Load 171 + Store 170(DepthU) 172 + 177: 174 Load 176(g_tTex3di4) + 178: 127(ivec3) ImageQuerySize 177 + Store 173(sizeQueryTemp) 178 + 179: 7(ptr) AccessChain 173(sizeQueryTemp) 62 + 180: 6(int) Load 179 + Store 16(WidthU) 180 + 181: 7(ptr) AccessChain 173(sizeQueryTemp) 66 + 182: 6(int) Load 181 + Store 97(HeightU) 182 + 183: 7(ptr) AccessChain 173(sizeQueryTemp) 133 + 184: 6(int) Load 183 + Store 170(DepthU) 184 + 189: 186 Load 188(g_tTex3du4) + 190: 127(ivec3) ImageQuerySize 189 + Store 185(sizeQueryTemp) 190 + 191: 7(ptr) AccessChain 185(sizeQueryTemp) 62 + 192: 6(int) Load 191 + Store 16(WidthU) 192 + 193: 7(ptr) AccessChain 185(sizeQueryTemp) 66 + 194: 6(int) Load 193 + Store 97(HeightU) 194 + 195: 7(ptr) AccessChain 185(sizeQueryTemp) 133 + 196: 6(int) Load 195 + Store 170(DepthU) 196 + 205: 204(ptr) AccessChain 200(psout) 201 + Store 205 203 + 208: 207(ptr) AccessChain 200(psout) 206 + Store 208 202 + 211: 204(ptr) AccessChain 200(psout) 201 + 212: 197(fvec4) Load 211 + Store 210(Color) 212 + 215: 207(ptr) AccessChain 200(psout) 206 + 216: 9(float) Load 215 + Store 214(Depth) 216 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out index a44e9445e366f14e88095fe3c838e6cc3b0e38ab..5985eadc1f411e55e28ee0f0dd78ab52843cd4be 100644 --- a/Test/baseResults/hlsl.getsampleposition.dx10.frag.out +++ b/Test/baseResults/hlsl.getsampleposition.dx10.frag.out @@ -7,14 +7,14 @@ ERROR: 2 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence 0:16 move second child to first child (temp 2-component vector of float) 0:16 'r00' (temp 2-component vector of float) 0:16 ERROR: Bad aggregation op - (global 2-component vector of float) + (temp 2-component vector of float) 0:16 'g_tTex2dmsf4' (uniform texture2DMS) 0:16 Constant: 0:16 1 (const int) @@ -22,7 +22,7 @@ ERROR: node is still EOpNull! 0:17 move second child to first child (temp 2-component vector of float) 0:17 'r01' (temp 2-component vector of float) 0:17 ERROR: Bad aggregation op - (global 2-component vector of float) + (temp 2-component vector of float) 0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:17 Constant: 0:17 2 (const int) @@ -43,8 +43,8 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:? Sequence -0:? Sequence +0:22 Sequence +0:22 Sequence 0:22 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:22 Color: direct index for structure (temp 4-component vector of float) @@ -59,11 +59,11 @@ ERROR: node is still EOpNull! 0:22 1 (const int) 0:22 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -72,14 +72,14 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:13 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:13 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:13 Function Parameters: 0:? Sequence 0:16 Sequence 0:16 move second child to first child (temp 2-component vector of float) 0:16 'r00' (temp 2-component vector of float) 0:16 ERROR: Bad aggregation op - (global 2-component vector of float) + (temp 2-component vector of float) 0:16 'g_tTex2dmsf4' (uniform texture2DMS) 0:16 Constant: 0:16 1 (const int) @@ -87,7 +87,7 @@ ERROR: node is still EOpNull! 0:17 move second child to first child (temp 2-component vector of float) 0:17 'r01' (temp 2-component vector of float) 0:17 ERROR: Bad aggregation op - (global 2-component vector of float) + (temp 2-component vector of float) 0:17 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:17 Constant: 0:17 2 (const int) @@ -108,8 +108,8 @@ ERROR: node is still EOpNull! 0:20 1 (const int) 0:20 Constant: 0:20 1.000000 -0:? Sequence -0:? Sequence +0:22 Sequence +0:22 Sequence 0:22 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:22 Color: direct index for structure (temp 4-component vector of float) @@ -124,10 +124,10 @@ ERROR: node is still EOpNull! 0:22 1 (const int) 0:22 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.identifier.sample.frag.out b/Test/baseResults/hlsl.identifier.sample.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..35e88e93c227a2af46fa0f4b0637fe0a2a490a24 --- /dev/null +++ b/Test/baseResults/hlsl.identifier.sample.frag.out @@ -0,0 +1,125 @@ +hlsl.identifier.sample.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: sample(i1; (temp int) +0:9 Function Parameters: +0:9 'x' (in int) +0:? Sequence +0:9 Branch: Return with expression +0:9 'x' (in int) +0:12 Function Definition: main( (temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:15 'sample' (temp 4-component vector of float) +0:? Constant: +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:17 vector swizzle (temp 4-component vector of float) +0:17 'sample' (temp 4-component vector of float) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: sample(i1; (temp int) +0:9 Function Parameters: +0:9 'x' (in int) +0:? Sequence +0:9 Branch: Return with expression +0:9 'x' (in int) +0:12 Function Definition: main( (temp 4-component vector of float) +0:12 Function Parameters: +0:? Sequence +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:15 'sample' (temp 4-component vector of float) +0:? Constant: +0:? 3.000000 +0:? 4.000000 +0:? 5.000000 +0:? 6.000000 +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:17 vector swizzle (temp 4-component vector of float) +0:17 'sample' (temp 4-component vector of float) +0:17 Sequence +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1 (const int) +0:17 Constant: +0:17 2 (const int) +0:17 Constant: +0:17 3 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 28 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 25 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "sample(i1;" + Name 9 "x" + Name 18 "sample" + Name 25 "@entryPointOutput" + Decorate 25(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 15: TypeFloat 32 + 16: TypeVector 15(float) 4 + 17: TypePointer Function 16(fvec4) + 19: 15(float) Constant 1077936128 + 20: 15(float) Constant 1082130432 + 21: 15(float) Constant 1084227584 + 22: 15(float) Constant 1086324736 + 23: 16(fvec4) ConstantComposite 19 20 21 22 + 24: TypePointer Output 16(fvec4) +25(@entryPointOutput): 24(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 18(sample): 17(ptr) Variable Function + Store 18(sample) 23 + 26: 16(fvec4) Load 18(sample) + Store 25(@entryPointOutput) 26 + Return + FunctionEnd + 10(sample(i1;): 6(int) Function None 8 + 9(x): 7(ptr) FunctionParameter + 11: Label + 12: 6(int) Load 9(x) + ReturnValue 12 + FunctionEnd diff --git a/Test/baseResults/hlsl.if.frag.out b/Test/baseResults/hlsl.if.frag.out index 499015a4823403e6beaca8d55dd8e7542673bc4d..c37bff61a1ebd78762a7a7a020ef42ec23d46b51 100755 --- a/Test/baseResults/hlsl.if.frag.out +++ b/Test/baseResults/hlsl.if.frag.out @@ -2,15 +2,16 @@ hlsl.if.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 all (temp bool) +0:3 Equal (temp 4-component vector of bool) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 true case 0:4 Sequence 0:4 move second child to first child (temp 4-component vector of float) @@ -19,9 +20,10 @@ gl_FragCoord origin is upper left 0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition -0:6 Compare Equal (temp bool) -0:6 'input' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 all (temp bool) +0:6 Equal (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 true case 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) @@ -37,21 +39,24 @@ gl_FragCoord origin is upper left 0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition -0:11 Compare Equal (temp bool) -0:11 'input' (layout(location=0 ) in 4-component vector of float) -0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 all (temp bool) +0:11 Equal (temp 4-component vector of bool) +0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 all (temp bool) +0:14 Equal (temp 4-component vector of bool) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 all (temp bool) +0:19 Equal (temp 4-component vector of bool) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) 0:19 true case 0:? Sequence 0:20 Sequence @@ -61,9 +66,10 @@ gl_FragCoord origin is upper left 0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition -0:23 Compare Equal (temp bool) -0:23 'input' (layout(location=0 ) in 4-component vector of float) -0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 all (temp bool) +0:23 Equal (temp 4-component vector of bool) +0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:23 true case 0:? Sequence 0:24 Sequence @@ -103,15 +109,16 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 all (temp bool) +0:3 Equal (temp 4-component vector of bool) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 true case 0:4 Sequence 0:4 move second child to first child (temp 4-component vector of float) @@ -120,9 +127,10 @@ gl_FragCoord origin is upper left 0:4 Branch: Return 0:6 Test condition and select (temp void) 0:6 Condition -0:6 Compare Equal (temp bool) -0:6 'input' (layout(location=0 ) in 4-component vector of float) -0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 all (temp bool) +0:6 Equal (temp 4-component vector of bool) +0:6 'input' (layout(location=0 ) in 4-component vector of float) +0:6 'input' (layout(location=0 ) in 4-component vector of float) 0:6 true case 0:7 Sequence 0:7 move second child to first child (temp 4-component vector of float) @@ -138,21 +146,24 @@ gl_FragCoord origin is upper left 0:9 Branch: Return 0:11 Test condition and select (temp void) 0:11 Condition -0:11 Compare Equal (temp bool) -0:11 'input' (layout(location=0 ) in 4-component vector of float) -0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 all (temp bool) +0:11 Equal (temp 4-component vector of bool) +0:11 'input' (layout(location=0 ) in 4-component vector of float) +0:11 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 all (temp bool) +0:14 Equal (temp 4-component vector of bool) +0:14 'input' (layout(location=0 ) in 4-component vector of float) +0:14 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 all (temp bool) +0:19 Equal (temp 4-component vector of bool) +0:19 'input' (layout(location=0 ) in 4-component vector of float) +0:19 'input' (layout(location=0 ) in 4-component vector of float) 0:19 true case 0:? Sequence 0:20 Sequence @@ -162,9 +173,10 @@ gl_FragCoord origin is upper left 0:20 Branch: Return 0:23 Test condition and select (temp void) 0:23 Condition -0:23 Compare Equal (temp bool) -0:23 'input' (layout(location=0 ) in 4-component vector of float) -0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 all (temp bool) +0:23 Equal (temp 4-component vector of bool) +0:23 'input' (layout(location=0 ) in 4-component vector of float) +0:23 'input' (layout(location=0 ) in 4-component vector of float) 0:23 true case 0:? Sequence 0:24 Sequence diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out index 99acc235809aeef3aa60064091b4dba3265a1485..42f94caefa9047fd56e062cedc3cc82014ba3955 100755 --- a/Test/baseResults/hlsl.init.frag.out +++ b/Test/baseResults/hlsl.init.frag.out @@ -78,7 +78,7 @@ gl_FragCoord origin is upper left 0:18 Constant: 0:18 4 (const uint) 0:18 5 (const uint) -0:21 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:21 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:21 Function Parameters: 0:21 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -132,6 +132,8 @@ gl_FragCoord origin is upper left 0:35 'a1' (global 4-component vector of float) 0:35 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) 0:? 'a1i' (global 4-component vector of float) @@ -150,8 +152,6 @@ gl_FragCoord origin is upper left 0:? 'single2' (global structure{temp 2-component vector of uint v}) 0:? 'single3' (global structure{temp structure{temp int f} s1}) 0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) Linked fragment stage: @@ -236,7 +236,7 @@ gl_FragCoord origin is upper left 0:18 Constant: 0:18 4 (const uint) 0:18 5 (const uint) -0:21 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:21 Function Definition: ShaderFunction(vf4; (temp 4-component vector of float) 0:21 Function Parameters: 0:21 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -290,6 +290,8 @@ gl_FragCoord origin is upper left 0:35 'a1' (global 4-component vector of float) 0:35 Branch: Return 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a1' (global 4-component vector of float) 0:? 'b1' (global 4-component vector of float) 0:? 'a1i' (global 4-component vector of float) @@ -308,8 +310,6 @@ gl_FragCoord origin is upper left 0:? 'single2' (global structure{temp 2-component vector of uint v}) 0:? 'single3' (global structure{temp structure{temp int f} s1}) 0:? 'single4' (global structure{temp structure{temp 2-component vector of uint v} s1}) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'input' (layout(location=0 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.init2.frag.out b/Test/baseResults/hlsl.init2.frag.out index 3657cb2284bbf4cd77e8374d45c9e0b47d451a89..9b53e30499c8df7089f757c9382cf3f904bc3c68 100644 --- a/Test/baseResults/hlsl.init2.frag.out +++ b/Test/baseResults/hlsl.init2.frag.out @@ -2,7 +2,7 @@ hlsl.init2.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: Test1( (global void) +0:3 Function Definition: Test1( (temp void) 0:3 Function Parameters: 0:? Sequence 0:5 Sequence @@ -29,10 +29,10 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:26 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:26 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence -0:27 Function Call: Test1( (global void) +0:27 Function Call: Test1( (temp void) 0:30 move second child to first child (temp 4-component vector of float) 0:30 color: direct index for structure (temp 4-component vector of float) 0:30 'ps_output' (temp structure{temp 4-component vector of float color}) @@ -43,8 +43,8 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:? Sequence -0:? Sequence +0:31 Sequence +0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:31 color: direct index for structure (temp 4-component vector of float) @@ -62,7 +62,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: Test1( (global void) +0:3 Function Definition: Test1( (temp void) 0:3 Function Parameters: 0:? Sequence 0:5 Sequence @@ -89,10 +89,10 @@ gl_FragCoord origin is upper left 0:20 8.000000 0:20 9.000000 0:20 10.000000 -0:26 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:26 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:26 Function Parameters: 0:? Sequence -0:27 Function Call: Test1( (global void) +0:27 Function Call: Test1( (temp void) 0:30 move second child to first child (temp 4-component vector of float) 0:30 color: direct index for structure (temp 4-component vector of float) 0:30 'ps_output' (temp structure{temp 4-component vector of float color}) @@ -103,8 +103,8 @@ gl_FragCoord origin is upper left 0:30 1.000000 0:30 1.000000 0:30 1.000000 -0:? Sequence -0:? Sequence +0:31 Sequence +0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:31 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.inoutquals.frag.out b/Test/baseResults/hlsl.inoutquals.frag.out index 2fcb722262d36ae82dda3c429826ddc174597966..b2716a4c84a219c7d6fa2e9d69dbe331e8ed1806 100644 --- a/Test/baseResults/hlsl.inoutquals.frag.out +++ b/Test/baseResults/hlsl.inoutquals.frag.out @@ -2,7 +2,7 @@ hlsl.inoutquals.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: MyFunc(f1;f1;f1; (global void) +0:8 Function Definition: MyFunc(f1;f1;f1; (temp void) 0:8 Function Parameters: 0:8 'x' (in float) 0:8 'y' (out float) @@ -18,9 +18,10 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float Depth}) +0:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) +0:15 'sampleMask' (out int SampleMaskIn) 0:? Sequence 0:18 Sequence 0:18 move second child to first child (temp float) @@ -31,7 +32,7 @@ gl_FragCoord origin is upper left 0:18 'z' (temp float) 0:18 Constant: 0:18 3.000000 -0:19 Function Call: MyFunc(f1;f1;f1; (global void) +0:19 Function Call: MyFunc(f1;f1;f1; (temp void) 0:19 'x' (temp float) 0:19 'y' (temp float) 0:19 'z' (temp float) @@ -55,8 +56,8 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:? Sequence -0:? Sequence +0:24 Sequence +0:24 Sequence 0:24 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:24 Color: direct index for structure (temp 4-component vector of float) @@ -74,6 +75,7 @@ gl_FragCoord origin is upper left 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) 0:? 'inpos' (noperspective in 4-component vector of float FragCoord) +0:? 'sampleMask' (out int SampleMaskIn) Linked fragment stage: @@ -82,7 +84,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:8 Function Definition: MyFunc(f1;f1;f1; (global void) +0:8 Function Definition: MyFunc(f1;f1;f1; (temp void) 0:8 Function Parameters: 0:8 'x' (in float) 0:8 'y' (out float) @@ -98,9 +100,10 @@ gl_FragCoord origin is upper left 0:11 'x' (in float) 0:11 Constant: 0:11 -1.000000 -0:15 Function Definition: main(vf4; (global structure{temp 4-component vector of float Color, temp float Depth}) +0:15 Function Definition: main(vf4;i1; (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:15 Function Parameters: 0:15 'inpos' (noperspective in 4-component vector of float FragCoord) +0:15 'sampleMask' (out int SampleMaskIn) 0:? Sequence 0:18 Sequence 0:18 move second child to first child (temp float) @@ -111,7 +114,7 @@ gl_FragCoord origin is upper left 0:18 'z' (temp float) 0:18 Constant: 0:18 3.000000 -0:19 Function Call: MyFunc(f1;f1;f1; (global void) +0:19 Function Call: MyFunc(f1;f1;f1; (temp void) 0:19 'x' (temp float) 0:19 'y' (temp float) 0:19 'z' (temp float) @@ -135,8 +138,8 @@ gl_FragCoord origin is upper left 0:22 'inpos' (noperspective in 4-component vector of float FragCoord) 0:22 Constant: 0:22 3 (const int) -0:? Sequence -0:? Sequence +0:24 Sequence +0:24 Sequence 0:24 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:24 Color: direct index for structure (temp 4-component vector of float) @@ -154,15 +157,17 @@ gl_FragCoord origin is upper left 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) 0:? 'inpos' (noperspective in 4-component vector of float FragCoord) +0:? 'sampleMask' (out int SampleMaskIn) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 61 +// Id's are bound by 63 Capability Shader + Capability SampleRateShading 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 45 53 57 + EntryPoint Fragment 4 "main" 45 53 57 62 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 12 "MyFunc(f1;f1;f1;" @@ -182,10 +187,12 @@ gl_FragCoord origin is upper left Name 45 "inpos" Name 53 "Color" Name 57 "Depth" + Name 62 "sampleMask" Decorate 45(inpos) NoPerspective Decorate 45(inpos) BuiltIn FragCoord Decorate 53(Color) Location 0 Decorate 57(Depth) BuiltIn FragDepth + Decorate 62(sampleMask) BuiltIn SampleMask 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -211,6 +218,8 @@ gl_FragCoord origin is upper left 53(Color): 52(ptr) Variable Output 56: TypePointer Output 6(float) 57(Depth): 56(ptr) Variable Output + 61: TypePointer Output 34(int) + 62(sampleMask): 61(ptr) Variable Output 4(main): 2 Function None 3 5: Label 17(x): 7(ptr) Variable Function diff --git a/Test/baseResults/hlsl.intrinsics.barriers.comp.out b/Test/baseResults/hlsl.intrinsics.barriers.comp.out index 95e172588fdb6320fe16de05fcd6f5de4223af15..07bd3709e2f4ec604e679157baf75bef5669a14c 100644 --- a/Test/baseResults/hlsl.intrinsics.barriers.comp.out +++ b/Test/baseResults/hlsl.intrinsics.barriers.comp.out @@ -2,15 +2,15 @@ hlsl.intrinsics.barriers.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:3 Function Definition: ComputeShaderFunction( (global float) +0:3 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:4 MemoryBarrier (temp void) +0:5 AllMemoryBarrierWithGroupSync (temp void) +0:6 GroupMemoryBarrier (temp void) +0:7 GroupMemoryBarrierWithGroupSync (temp void) +0:8 WorkgroupMemoryBarrier (temp void) +0:9 WorkgroupMemoryBarrierWithGroupSync (temp void) 0:11 Sequence 0:11 move second child to first child (temp float) 0:? '@entryPointOutput' (layout(location=0 ) out float) @@ -27,15 +27,15 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:3 Function Definition: ComputeShaderFunction( (global float) +0:3 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:4 MemoryBarrier (temp void) +0:5 AllMemoryBarrierWithGroupSync (temp void) +0:6 GroupMemoryBarrier (temp void) +0:7 GroupMemoryBarrierWithGroupSync (temp void) +0:8 WorkgroupMemoryBarrier (temp void) +0:9 WorkgroupMemoryBarrierWithGroupSync (temp void) 0:11 Sequence 0:11 move second child to first child (temp float) 0:? '@entryPointOutput' (layout(location=0 ) out float) diff --git a/Test/baseResults/hlsl.intrinsics.comp.out b/Test/baseResults/hlsl.intrinsics.comp.out index b760c65e034b3e5a2d2f876b1ce3fb0e3f20deea..42ad9731639046db3aef3ee99c9459664899ef24 100644 --- a/Test/baseResults/hlsl.intrinsics.comp.out +++ b/Test/baseResults/hlsl.intrinsics.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -10,71 +10,71 @@ local_size = (1, 1, 1) 0:17 'inU0' (in uint) 0:17 'inU1' (in uint) 0:? Sequence -0:21 all (global bool) +0:21 all (temp bool) 0:21 'inF0' (in float) -0:24 AtomicAdd (global void) -0:24 'gs_ua' (global uint) -0:24 'gs_ub' (global uint) +0:24 AtomicAdd (temp void) +0:24 'gs_ua' (shared uint) +0:24 'gs_ub' (shared 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' (global uint) -0:25 'gs_ub' (global uint) -0:26 AtomicAnd (global void) -0:26 'gs_ua' (global uint) -0:26 'gs_ub' (global uint) +0:25 'gs_ua' (shared uint) +0:25 'gs_ub' (shared uint) +0:26 AtomicAnd (temp void) +0:26 'gs_ua' (shared uint) +0:26 'gs_ub' (shared 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' (global uint) -0:27 'gs_ub' (global uint) +0:27 'gs_ua' (shared uint) +0:27 'gs_ub' (shared 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' (global uint) -0:28 'gs_ub' (global uint) -0:28 'gs_uc' (global uint) +0:28 'gs_ua' (shared uint) +0:28 'gs_ub' (shared uint) +0:28 'gs_uc' (shared 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' (global uint) -0:29 'gs_ub' (global uint) -0:30 AtomicMax (global void) -0:30 'gs_ua' (global uint) -0:30 'gs_ub' (global uint) +0:29 'gs_ua' (shared uint) +0:29 'gs_ub' (shared uint) +0:30 AtomicMax (temp void) +0:30 'gs_ua' (shared uint) +0:30 'gs_ub' (shared 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' (global uint) -0:31 'gs_ub' (global uint) -0:32 AtomicMin (global void) -0:32 'gs_ua' (global uint) -0:32 'gs_ub' (global uint) +0:31 'gs_ua' (shared uint) +0:31 'gs_ub' (shared uint) +0:32 AtomicMin (temp void) +0:32 'gs_ua' (shared uint) +0:32 'gs_ub' (shared 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' (global uint) -0:33 'gs_ub' (global uint) -0:34 AtomicOr (global void) -0:34 'gs_ua' (global uint) -0:34 'gs_ub' (global uint) +0:33 'gs_ua' (shared uint) +0:33 'gs_ub' (shared uint) +0:34 AtomicOr (temp void) +0:34 'gs_ua' (shared uint) +0:34 'gs_ub' (shared 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' (global uint) -0:35 'gs_ub' (global uint) -0:36 AtomicXor (global void) -0:36 'gs_ua' (global uint) -0:36 'gs_ub' (global uint) +0:35 'gs_ua' (shared uint) +0:35 'gs_ub' (shared uint) +0:36 AtomicXor (temp void) +0:36 'gs_ua' (shared uint) +0:36 'gs_ub' (shared 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' (global uint) -0:37 'gs_ub' (global uint) +0:37 'gs_ua' (shared uint) +0:37 'gs_ub' (shared uint) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 1-component vector of float) 0:45 'inF1' (in 1-component vector of float) @@ -83,7 +83,7 @@ local_size = (1, 1, 1) 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 -0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:51 Function Parameters: 0:51 'inF0' (in 2-component vector of float) 0:51 'inF1' (in 2-component vector of float) @@ -91,72 +91,72 @@ local_size = (1, 1, 1) 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 all (temp bool) 0:55 'inF0' (in 2-component vector of float) -0:58 AtomicAdd (global void) -0:58 'gs_ua2' (global 2-component vector of uint) -0:58 'gs_ub2' (global 2-component vector of uint) +0:58 AtomicAdd (temp void) +0:58 'gs_ua2' (shared 2-component vector of uint) +0:58 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:59 'gs_ub2' (global 2-component vector of uint) -0:60 AtomicAnd (global void) -0:60 'gs_ua2' (global 2-component vector of uint) -0:60 'gs_ub2' (global 2-component vector of uint) +0:59 'gs_ua2' (shared 2-component vector of uint) +0:59 'gs_ub2' (shared 2-component vector of uint) +0:60 AtomicAnd (temp void) +0:60 'gs_ua2' (shared 2-component vector of uint) +0:60 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:61 'gs_ub2' (global 2-component vector of uint) +0:61 'gs_ua2' (shared 2-component vector of uint) +0:61 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:62 'gs_ub2' (global 2-component vector of uint) -0:62 'gs_uc2' (global 2-component vector of uint) +0:62 'gs_ua2' (shared 2-component vector of uint) +0:62 'gs_ub2' (shared 2-component vector of uint) +0:62 'gs_uc2' (shared 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' (global 2-component vector of uint) -0:63 'gs_ub2' (global 2-component vector of uint) -0:64 AtomicMax (global void) -0:64 'gs_ua2' (global 2-component vector of uint) -0:64 'gs_ub2' (global 2-component vector of uint) +0:63 'gs_ua2' (shared 2-component vector of uint) +0:63 'gs_ub2' (shared 2-component vector of uint) +0:64 AtomicMax (temp void) +0:64 'gs_ua2' (shared 2-component vector of uint) +0:64 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:65 'gs_ub2' (global 2-component vector of uint) -0:66 AtomicMin (global void) -0:66 'gs_ua2' (global 2-component vector of uint) -0:66 'gs_ub2' (global 2-component vector of uint) +0:65 'gs_ua2' (shared 2-component vector of uint) +0:65 'gs_ub2' (shared 2-component vector of uint) +0:66 AtomicMin (temp void) +0:66 'gs_ua2' (shared 2-component vector of uint) +0:66 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:67 'gs_ub2' (global 2-component vector of uint) -0:68 AtomicOr (global void) -0:68 'gs_ua2' (global 2-component vector of uint) -0:68 'gs_ub2' (global 2-component vector of uint) +0:67 'gs_ua2' (shared 2-component vector of uint) +0:67 'gs_ub2' (shared 2-component vector of uint) +0:68 AtomicOr (temp void) +0:68 'gs_ua2' (shared 2-component vector of uint) +0:68 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:69 'gs_ub2' (global 2-component vector of uint) -0:70 AtomicXor (global void) -0:70 'gs_ua2' (global 2-component vector of uint) -0:70 'gs_ub2' (global 2-component vector of uint) +0:69 'gs_ua2' (shared 2-component vector of uint) +0:69 'gs_ub2' (shared 2-component vector of uint) +0:70 AtomicXor (temp void) +0:70 'gs_ua2' (shared 2-component vector of uint) +0:70 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:71 'gs_ub2' (global 2-component vector of uint) +0:71 'gs_ua2' (shared 2-component vector of uint) +0:71 'gs_ub2' (shared 2-component vector of uint) 0:74 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:78 Function Parameters: 0:78 'inF0' (in 3-component vector of float) 0:78 'inF1' (in 3-component vector of float) @@ -164,73 +164,73 @@ local_size = (1, 1, 1) 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 all (temp bool) 0:82 'inF0' (in 3-component vector of float) -0:85 AtomicAdd (global void) -0:85 'gs_ua3' (global 3-component vector of uint) -0:85 'gs_ub3' (global 3-component vector of uint) +0:85 AtomicAdd (temp void) +0:85 'gs_ua3' (shared 3-component vector of uint) +0:85 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:86 'gs_ub3' (global 3-component vector of uint) -0:87 AtomicAnd (global void) -0:87 'gs_ua3' (global 3-component vector of uint) -0:87 'gs_ub3' (global 3-component vector of uint) +0:86 'gs_ua3' (shared 3-component vector of uint) +0:86 'gs_ub3' (shared 3-component vector of uint) +0:87 AtomicAnd (temp void) +0:87 'gs_ua3' (shared 3-component vector of uint) +0:87 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:88 'gs_ub3' (global 3-component vector of uint) +0:88 'gs_ua3' (shared 3-component vector of uint) +0:88 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:89 'gs_ub3' (global 3-component vector of uint) -0:89 'gs_uc3' (global 3-component vector of uint) +0:89 'gs_ua3' (shared 3-component vector of uint) +0:89 'gs_ub3' (shared 3-component vector of uint) +0:89 'gs_uc3' (shared 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' (global 3-component vector of uint) -0:90 'gs_ub3' (global 3-component vector of uint) -0:91 AtomicMax (global void) -0:91 'gs_ua3' (global 3-component vector of uint) -0:91 'gs_ub3' (global 3-component vector of uint) +0:90 'gs_ua3' (shared 3-component vector of uint) +0:90 'gs_ub3' (shared 3-component vector of uint) +0:91 AtomicMax (temp void) +0:91 'gs_ua3' (shared 3-component vector of uint) +0:91 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:92 'gs_ub3' (global 3-component vector of uint) -0:93 AtomicMin (global void) -0:93 'gs_ua3' (global 3-component vector of uint) -0:93 'gs_ub3' (global 3-component vector of uint) +0:92 'gs_ua3' (shared 3-component vector of uint) +0:92 'gs_ub3' (shared 3-component vector of uint) +0:93 AtomicMin (temp void) +0:93 'gs_ua3' (shared 3-component vector of uint) +0:93 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:94 'gs_ub3' (global 3-component vector of uint) -0:95 AtomicOr (global void) -0:95 'gs_ua3' (global 3-component vector of uint) -0:95 'gs_ub3' (global 3-component vector of uint) +0:94 'gs_ua3' (shared 3-component vector of uint) +0:94 'gs_ub3' (shared 3-component vector of uint) +0:95 AtomicOr (temp void) +0:95 'gs_ua3' (shared 3-component vector of uint) +0:95 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:96 'gs_ub3' (global 3-component vector of uint) -0:97 AtomicXor (global void) -0:97 'gs_ua3' (global 3-component vector of uint) -0:97 'gs_ub3' (global 3-component vector of uint) +0:96 'gs_ua3' (shared 3-component vector of uint) +0:96 'gs_ub3' (shared 3-component vector of uint) +0:97 AtomicXor (temp void) +0:97 'gs_ua3' (shared 3-component vector of uint) +0:97 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:98 'gs_ub3' (global 3-component vector of uint) +0:98 'gs_ua3' (shared 3-component vector of uint) +0:98 'gs_ub3' (shared 3-component vector of uint) 0:101 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' (layout(location=0 ) in 4-component vector of float) 0:105 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -238,67 +238,67 @@ local_size = (1, 1, 1) 0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) 0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? Sequence -0:109 all (global bool) +0:109 all (temp bool) 0:109 'inF0' (layout(location=0 ) in 4-component vector of float) -0:112 AtomicAdd (global void) -0:112 'gs_ua4' (global 4-component vector of uint) -0:112 'gs_ub4' (global 4-component vector of uint) +0:112 AtomicAdd (temp void) +0:112 'gs_ua4' (shared 4-component vector of uint) +0:112 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:113 'gs_ub4' (global 4-component vector of uint) -0:114 AtomicAnd (global void) -0:114 'gs_ua4' (global 4-component vector of uint) -0:114 'gs_ub4' (global 4-component vector of uint) +0:113 'gs_ua4' (shared 4-component vector of uint) +0:113 'gs_ub4' (shared 4-component vector of uint) +0:114 AtomicAnd (temp void) +0:114 'gs_ua4' (shared 4-component vector of uint) +0:114 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:115 'gs_ub4' (global 4-component vector of uint) +0:115 'gs_ua4' (shared 4-component vector of uint) +0:115 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:116 'gs_ub4' (global 4-component vector of uint) -0:116 'gs_uc4' (global 4-component vector of uint) +0:116 'gs_ua4' (shared 4-component vector of uint) +0:116 'gs_ub4' (shared 4-component vector of uint) +0:116 'gs_uc4' (shared 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' (global 4-component vector of uint) -0:117 'gs_ub4' (global 4-component vector of uint) -0:118 AtomicMax (global void) -0:118 'gs_ua4' (global 4-component vector of uint) -0:118 'gs_ub4' (global 4-component vector of uint) +0:117 'gs_ua4' (shared 4-component vector of uint) +0:117 'gs_ub4' (shared 4-component vector of uint) +0:118 AtomicMax (temp void) +0:118 'gs_ua4' (shared 4-component vector of uint) +0:118 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:119 'gs_ub4' (global 4-component vector of uint) -0:120 AtomicMin (global void) -0:120 'gs_ua4' (global 4-component vector of uint) -0:120 'gs_ub4' (global 4-component vector of uint) +0:119 'gs_ua4' (shared 4-component vector of uint) +0:119 'gs_ub4' (shared 4-component vector of uint) +0:120 AtomicMin (temp void) +0:120 'gs_ua4' (shared 4-component vector of uint) +0:120 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:121 'gs_ub4' (global 4-component vector of uint) -0:122 AtomicOr (global void) -0:122 'gs_ua4' (global 4-component vector of uint) -0:122 'gs_ub4' (global 4-component vector of uint) +0:121 'gs_ua4' (shared 4-component vector of uint) +0:121 'gs_ub4' (shared 4-component vector of uint) +0:122 AtomicOr (temp void) +0:122 'gs_ua4' (shared 4-component vector of uint) +0:122 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:123 'gs_ub4' (global 4-component vector of uint) -0:124 AtomicXor (global void) -0:124 'gs_ua4' (global 4-component vector of uint) -0:124 'gs_ub4' (global 4-component vector of uint) +0:123 'gs_ua4' (shared 4-component vector of uint) +0:123 'gs_ub4' (shared 4-component vector of uint) +0:124 AtomicXor (temp void) +0:124 'gs_ua4' (shared 4-component vector of uint) +0:124 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:125 'gs_ub4' (global 4-component vector of uint) +0:125 'gs_ua4' (shared 4-component vector of uint) +0:125 'gs_ub4' (shared 4-component vector of uint) 0:128 Sequence 0:128 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -309,24 +309,24 @@ local_size = (1, 1, 1) 0:? 4.000000 0:128 Branch: Return 0:? Linker Objects -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -0:? 'gs_ua2' (global 2-component vector of uint) -0:? 'gs_ub2' (global 2-component vector of uint) -0:? 'gs_uc2' (global 2-component vector of uint) -0:? 'gs_ua3' (global 3-component vector of uint) -0:? 'gs_ub3' (global 3-component vector of uint) -0:? 'gs_uc3' (global 3-component vector of uint) -0:? 'gs_ua4' (global 4-component vector of uint) -0:? 'gs_ub4' (global 4-component vector of uint) -0:? 'gs_uc4' (global 4-component vector of uint) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) 0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) 0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) Linked compute stage: @@ -335,7 +335,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: ComputeShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -343,71 +343,71 @@ local_size = (1, 1, 1) 0:17 'inU0' (in uint) 0:17 'inU1' (in uint) 0:? Sequence -0:21 all (global bool) +0:21 all (temp bool) 0:21 'inF0' (in float) -0:24 AtomicAdd (global void) -0:24 'gs_ua' (global uint) -0:24 'gs_ub' (global uint) +0:24 AtomicAdd (temp void) +0:24 'gs_ua' (shared uint) +0:24 'gs_ub' (shared 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' (global uint) -0:25 'gs_ub' (global uint) -0:26 AtomicAnd (global void) -0:26 'gs_ua' (global uint) -0:26 'gs_ub' (global uint) +0:25 'gs_ua' (shared uint) +0:25 'gs_ub' (shared uint) +0:26 AtomicAnd (temp void) +0:26 'gs_ua' (shared uint) +0:26 'gs_ub' (shared 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' (global uint) -0:27 'gs_ub' (global uint) +0:27 'gs_ua' (shared uint) +0:27 'gs_ub' (shared 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' (global uint) -0:28 'gs_ub' (global uint) -0:28 'gs_uc' (global uint) +0:28 'gs_ua' (shared uint) +0:28 'gs_ub' (shared uint) +0:28 'gs_uc' (shared 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' (global uint) -0:29 'gs_ub' (global uint) -0:30 AtomicMax (global void) -0:30 'gs_ua' (global uint) -0:30 'gs_ub' (global uint) +0:29 'gs_ua' (shared uint) +0:29 'gs_ub' (shared uint) +0:30 AtomicMax (temp void) +0:30 'gs_ua' (shared uint) +0:30 'gs_ub' (shared 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' (global uint) -0:31 'gs_ub' (global uint) -0:32 AtomicMin (global void) -0:32 'gs_ua' (global uint) -0:32 'gs_ub' (global uint) +0:31 'gs_ua' (shared uint) +0:31 'gs_ub' (shared uint) +0:32 AtomicMin (temp void) +0:32 'gs_ua' (shared uint) +0:32 'gs_ub' (shared 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' (global uint) -0:33 'gs_ub' (global uint) -0:34 AtomicOr (global void) -0:34 'gs_ua' (global uint) -0:34 'gs_ub' (global uint) +0:33 'gs_ua' (shared uint) +0:33 'gs_ub' (shared uint) +0:34 AtomicOr (temp void) +0:34 'gs_ua' (shared uint) +0:34 'gs_ub' (shared 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' (global uint) -0:35 'gs_ub' (global uint) -0:36 AtomicXor (global void) -0:36 'gs_ua' (global uint) -0:36 'gs_ub' (global uint) +0:35 'gs_ua' (shared uint) +0:35 'gs_ub' (shared uint) +0:36 AtomicXor (temp void) +0:36 'gs_ua' (shared uint) +0:36 'gs_ub' (shared 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' (global uint) -0:37 'gs_ub' (global uint) +0:37 'gs_ua' (shared uint) +0:37 'gs_ub' (shared uint) 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:45 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 1-component vector of float) 0:45 'inF1' (in 1-component vector of float) @@ -416,7 +416,7 @@ local_size = (1, 1, 1) 0:47 Branch: Return with expression 0:47 Constant: 0:47 0.000000 -0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:51 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:51 Function Parameters: 0:51 'inF0' (in 2-component vector of float) 0:51 'inF1' (in 2-component vector of float) @@ -424,72 +424,72 @@ local_size = (1, 1, 1) 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 all (temp bool) 0:55 'inF0' (in 2-component vector of float) -0:58 AtomicAdd (global void) -0:58 'gs_ua2' (global 2-component vector of uint) -0:58 'gs_ub2' (global 2-component vector of uint) +0:58 AtomicAdd (temp void) +0:58 'gs_ua2' (shared 2-component vector of uint) +0:58 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:59 'gs_ub2' (global 2-component vector of uint) -0:60 AtomicAnd (global void) -0:60 'gs_ua2' (global 2-component vector of uint) -0:60 'gs_ub2' (global 2-component vector of uint) +0:59 'gs_ua2' (shared 2-component vector of uint) +0:59 'gs_ub2' (shared 2-component vector of uint) +0:60 AtomicAnd (temp void) +0:60 'gs_ua2' (shared 2-component vector of uint) +0:60 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:61 'gs_ub2' (global 2-component vector of uint) +0:61 'gs_ua2' (shared 2-component vector of uint) +0:61 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:62 'gs_ub2' (global 2-component vector of uint) -0:62 'gs_uc2' (global 2-component vector of uint) +0:62 'gs_ua2' (shared 2-component vector of uint) +0:62 'gs_ub2' (shared 2-component vector of uint) +0:62 'gs_uc2' (shared 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' (global 2-component vector of uint) -0:63 'gs_ub2' (global 2-component vector of uint) -0:64 AtomicMax (global void) -0:64 'gs_ua2' (global 2-component vector of uint) -0:64 'gs_ub2' (global 2-component vector of uint) +0:63 'gs_ua2' (shared 2-component vector of uint) +0:63 'gs_ub2' (shared 2-component vector of uint) +0:64 AtomicMax (temp void) +0:64 'gs_ua2' (shared 2-component vector of uint) +0:64 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:65 'gs_ub2' (global 2-component vector of uint) -0:66 AtomicMin (global void) -0:66 'gs_ua2' (global 2-component vector of uint) -0:66 'gs_ub2' (global 2-component vector of uint) +0:65 'gs_ua2' (shared 2-component vector of uint) +0:65 'gs_ub2' (shared 2-component vector of uint) +0:66 AtomicMin (temp void) +0:66 'gs_ua2' (shared 2-component vector of uint) +0:66 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:67 'gs_ub2' (global 2-component vector of uint) -0:68 AtomicOr (global void) -0:68 'gs_ua2' (global 2-component vector of uint) -0:68 'gs_ub2' (global 2-component vector of uint) +0:67 'gs_ua2' (shared 2-component vector of uint) +0:67 'gs_ub2' (shared 2-component vector of uint) +0:68 AtomicOr (temp void) +0:68 'gs_ua2' (shared 2-component vector of uint) +0:68 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:69 'gs_ub2' (global 2-component vector of uint) -0:70 AtomicXor (global void) -0:70 'gs_ua2' (global 2-component vector of uint) -0:70 'gs_ub2' (global 2-component vector of uint) +0:69 'gs_ua2' (shared 2-component vector of uint) +0:69 'gs_ub2' (shared 2-component vector of uint) +0:70 AtomicXor (temp void) +0:70 'gs_ua2' (shared 2-component vector of uint) +0:70 'gs_ub2' (shared 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' (global 2-component vector of uint) -0:71 'gs_ub2' (global 2-component vector of uint) +0:71 'gs_ua2' (shared 2-component vector of uint) +0:71 'gs_ub2' (shared 2-component vector of uint) 0:74 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:78 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:78 Function Parameters: 0:78 'inF0' (in 3-component vector of float) 0:78 'inF1' (in 3-component vector of float) @@ -497,73 +497,73 @@ local_size = (1, 1, 1) 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 all (temp bool) 0:82 'inF0' (in 3-component vector of float) -0:85 AtomicAdd (global void) -0:85 'gs_ua3' (global 3-component vector of uint) -0:85 'gs_ub3' (global 3-component vector of uint) +0:85 AtomicAdd (temp void) +0:85 'gs_ua3' (shared 3-component vector of uint) +0:85 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:86 'gs_ub3' (global 3-component vector of uint) -0:87 AtomicAnd (global void) -0:87 'gs_ua3' (global 3-component vector of uint) -0:87 'gs_ub3' (global 3-component vector of uint) +0:86 'gs_ua3' (shared 3-component vector of uint) +0:86 'gs_ub3' (shared 3-component vector of uint) +0:87 AtomicAnd (temp void) +0:87 'gs_ua3' (shared 3-component vector of uint) +0:87 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:88 'gs_ub3' (global 3-component vector of uint) +0:88 'gs_ua3' (shared 3-component vector of uint) +0:88 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:89 'gs_ub3' (global 3-component vector of uint) -0:89 'gs_uc3' (global 3-component vector of uint) +0:89 'gs_ua3' (shared 3-component vector of uint) +0:89 'gs_ub3' (shared 3-component vector of uint) +0:89 'gs_uc3' (shared 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' (global 3-component vector of uint) -0:90 'gs_ub3' (global 3-component vector of uint) -0:91 AtomicMax (global void) -0:91 'gs_ua3' (global 3-component vector of uint) -0:91 'gs_ub3' (global 3-component vector of uint) +0:90 'gs_ua3' (shared 3-component vector of uint) +0:90 'gs_ub3' (shared 3-component vector of uint) +0:91 AtomicMax (temp void) +0:91 'gs_ua3' (shared 3-component vector of uint) +0:91 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:92 'gs_ub3' (global 3-component vector of uint) -0:93 AtomicMin (global void) -0:93 'gs_ua3' (global 3-component vector of uint) -0:93 'gs_ub3' (global 3-component vector of uint) +0:92 'gs_ua3' (shared 3-component vector of uint) +0:92 'gs_ub3' (shared 3-component vector of uint) +0:93 AtomicMin (temp void) +0:93 'gs_ua3' (shared 3-component vector of uint) +0:93 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:94 'gs_ub3' (global 3-component vector of uint) -0:95 AtomicOr (global void) -0:95 'gs_ua3' (global 3-component vector of uint) -0:95 'gs_ub3' (global 3-component vector of uint) +0:94 'gs_ua3' (shared 3-component vector of uint) +0:94 'gs_ub3' (shared 3-component vector of uint) +0:95 AtomicOr (temp void) +0:95 'gs_ua3' (shared 3-component vector of uint) +0:95 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:96 'gs_ub3' (global 3-component vector of uint) -0:97 AtomicXor (global void) -0:97 'gs_ua3' (global 3-component vector of uint) -0:97 'gs_ub3' (global 3-component vector of uint) +0:96 'gs_ua3' (shared 3-component vector of uint) +0:96 'gs_ub3' (shared 3-component vector of uint) +0:97 AtomicXor (temp void) +0:97 'gs_ua3' (shared 3-component vector of uint) +0:97 'gs_ub3' (shared 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' (global 3-component vector of uint) -0:98 'gs_ub3' (global 3-component vector of uint) +0:98 'gs_ua3' (shared 3-component vector of uint) +0:98 'gs_ub3' (shared 3-component vector of uint) 0:101 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:105 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:105 Function Parameters: 0:105 'inF0' (layout(location=0 ) in 4-component vector of float) 0:105 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -571,67 +571,67 @@ local_size = (1, 1, 1) 0:105 'inU0' (layout(location=3 ) in 4-component vector of uint) 0:105 'inU1' (layout(location=4 ) in 4-component vector of uint) 0:? Sequence -0:109 all (global bool) +0:109 all (temp bool) 0:109 'inF0' (layout(location=0 ) in 4-component vector of float) -0:112 AtomicAdd (global void) -0:112 'gs_ua4' (global 4-component vector of uint) -0:112 'gs_ub4' (global 4-component vector of uint) +0:112 AtomicAdd (temp void) +0:112 'gs_ua4' (shared 4-component vector of uint) +0:112 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:113 'gs_ub4' (global 4-component vector of uint) -0:114 AtomicAnd (global void) -0:114 'gs_ua4' (global 4-component vector of uint) -0:114 'gs_ub4' (global 4-component vector of uint) +0:113 'gs_ua4' (shared 4-component vector of uint) +0:113 'gs_ub4' (shared 4-component vector of uint) +0:114 AtomicAnd (temp void) +0:114 'gs_ua4' (shared 4-component vector of uint) +0:114 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:115 'gs_ub4' (global 4-component vector of uint) +0:115 'gs_ua4' (shared 4-component vector of uint) +0:115 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:116 'gs_ub4' (global 4-component vector of uint) -0:116 'gs_uc4' (global 4-component vector of uint) +0:116 'gs_ua4' (shared 4-component vector of uint) +0:116 'gs_ub4' (shared 4-component vector of uint) +0:116 'gs_uc4' (shared 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' (global 4-component vector of uint) -0:117 'gs_ub4' (global 4-component vector of uint) -0:118 AtomicMax (global void) -0:118 'gs_ua4' (global 4-component vector of uint) -0:118 'gs_ub4' (global 4-component vector of uint) +0:117 'gs_ua4' (shared 4-component vector of uint) +0:117 'gs_ub4' (shared 4-component vector of uint) +0:118 AtomicMax (temp void) +0:118 'gs_ua4' (shared 4-component vector of uint) +0:118 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:119 'gs_ub4' (global 4-component vector of uint) -0:120 AtomicMin (global void) -0:120 'gs_ua4' (global 4-component vector of uint) -0:120 'gs_ub4' (global 4-component vector of uint) +0:119 'gs_ua4' (shared 4-component vector of uint) +0:119 'gs_ub4' (shared 4-component vector of uint) +0:120 AtomicMin (temp void) +0:120 'gs_ua4' (shared 4-component vector of uint) +0:120 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:121 'gs_ub4' (global 4-component vector of uint) -0:122 AtomicOr (global void) -0:122 'gs_ua4' (global 4-component vector of uint) -0:122 'gs_ub4' (global 4-component vector of uint) +0:121 'gs_ua4' (shared 4-component vector of uint) +0:121 'gs_ub4' (shared 4-component vector of uint) +0:122 AtomicOr (temp void) +0:122 'gs_ua4' (shared 4-component vector of uint) +0:122 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:123 'gs_ub4' (global 4-component vector of uint) -0:124 AtomicXor (global void) -0:124 'gs_ua4' (global 4-component vector of uint) -0:124 'gs_ub4' (global 4-component vector of uint) +0:123 'gs_ua4' (shared 4-component vector of uint) +0:123 'gs_ub4' (shared 4-component vector of uint) +0:124 AtomicXor (temp void) +0:124 'gs_ua4' (shared 4-component vector of uint) +0:124 'gs_ub4' (shared 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' (global 4-component vector of uint) -0:125 'gs_ub4' (global 4-component vector of uint) +0:125 'gs_ua4' (shared 4-component vector of uint) +0:125 'gs_ub4' (shared 4-component vector of uint) 0:128 Sequence 0:128 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) @@ -642,24 +642,24 @@ local_size = (1, 1, 1) 0:? 4.000000 0:128 Branch: Return 0:? Linker Objects -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -0:? 'gs_ua2' (global 2-component vector of uint) -0:? 'gs_ub2' (global 2-component vector of uint) -0:? 'gs_uc2' (global 2-component vector of uint) -0:? 'gs_ua3' (global 3-component vector of uint) -0:? 'gs_ub3' (global 3-component vector of uint) -0:? 'gs_uc3' (global 3-component vector of uint) -0:? 'gs_ua4' (global 4-component vector of uint) -0:? 'gs_ub4' (global 4-component vector of uint) -0:? 'gs_uc4' (global 4-component vector of uint) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? 'inF1' (layout(location=1 ) in 4-component vector of float) 0:? 'inF2' (layout(location=2 ) in 4-component vector of float) 0:? 'inU0' (layout(location=3 ) in 4-component vector of uint) 0:? 'inU1' (layout(location=4 ) in 4-component vector of uint) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) // Module Version 10000 // Generated by (magic number): 80001 @@ -740,35 +740,35 @@ local_size = (1, 1, 1) 39: TypePointer Function 38(ivec3) 40: TypeFunction 36(fvec3) 37(ptr) 37(ptr) 37(ptr) 39(ptr) 39(ptr) 49: TypeBool - 51: TypePointer Private 8(int) - 52(gs_ua): 51(ptr) Variable Private - 53(gs_ub): 51(ptr) Variable Private + 51: TypePointer Workgroup 8(int) + 52(gs_ua): 51(ptr) Variable Workgroup + 53(gs_ub): 51(ptr) Variable Workgroup 55: 8(int) Constant 1 56: 8(int) Constant 0 - 66(gs_uc): 51(ptr) Variable Private + 66(gs_uc): 51(ptr) Variable Workgroup 87: 6(float) Constant 0 - 94: TypePointer Private 26(ivec2) - 95(gs_ua2): 94(ptr) Variable Private - 96(gs_ub2): 94(ptr) Variable Private - 107(gs_uc2): 94(ptr) Variable Private + 94: TypePointer Workgroup 26(ivec2) + 95(gs_ua2): 94(ptr) Variable Workgroup + 96(gs_ub2): 94(ptr) Variable Workgroup + 107(gs_uc2): 94(ptr) Variable Workgroup 128: 6(float) Constant 1065353216 129: 6(float) Constant 1073741824 130: 24(fvec2) ConstantComposite 128 129 - 135: TypePointer Private 38(ivec3) - 136(gs_ua3): 135(ptr) Variable Private - 137(gs_ub3): 135(ptr) Variable Private - 148(gs_uc3): 135(ptr) Variable Private + 135: TypePointer Workgroup 38(ivec3) + 136(gs_ua3): 135(ptr) Variable Workgroup + 137(gs_ub3): 135(ptr) Variable Workgroup + 148(gs_uc3): 135(ptr) Variable Workgroup 169: 6(float) Constant 1077936128 170: 36(fvec3) ConstantComposite 128 129 169 173: TypeVector 6(float) 4 174: TypePointer Input 173(fvec4) 175(inF0): 174(ptr) Variable Input 178: TypeVector 8(int) 4 - 179: TypePointer Private 178(ivec4) - 180(gs_ua4): 179(ptr) Variable Private - 181(gs_ub4): 179(ptr) Variable Private + 179: TypePointer Workgroup 178(ivec4) + 180(gs_ua4): 179(ptr) Variable Workgroup + 181(gs_ub4): 179(ptr) Variable Workgroup 184: TypePointer Function 178(ivec4) - 193(gs_uc4): 179(ptr) Variable Private + 193(gs_uc4): 179(ptr) Variable Workgroup 214: TypePointer Output 173(fvec4) 215(@entryPointOutput): 214(ptr) Variable Output 216: 6(float) Constant 1082130432 diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out index 0dba032921e8f46f73c31642b3629d658b842af6..91abf737891beeadbe0c857938b710a690ccbf97 100644 --- a/Test/baseResults/hlsl.intrinsics.double.frag.out +++ b/Test/baseResults/hlsl.intrinsics.double.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.double.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) +0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (temp float) 0:5 Function Parameters: 0:5 'inDV1a' (layout(location=0 ) in double) 0:5 'inDV1b' (layout(location=1 ) in double) @@ -16,7 +16,7 @@ gl_FragCoord origin is upper left 0:6 Sequence 0:6 move second child to first child (temp double) 0:6 'r00' (temp double) -0:6 fma (global double) +0:6 fma (temp double) 0:6 'inDV1a' (layout(location=0 ) in double) 0:6 'inDV1b' (layout(location=1 ) in double) 0:6 'inDV1c' (layout(location=2 ) in double) @@ -51,7 +51,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (global float) +0:5 Function Definition: PixelShaderFunction(d1;d1;d1;vd2;vd3;vd4;u1;u1; (temp float) 0:5 Function Parameters: 0:5 'inDV1a' (layout(location=0 ) in double) 0:5 'inDV1b' (layout(location=1 ) in double) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:6 Sequence 0:6 move second child to first child (temp double) 0:6 'r00' (temp double) -0:6 fma (global double) +0:6 fma (temp double) 0:6 'inDV1a' (layout(location=0 ) in double) 0:6 'inDV1b' (layout(location=1 ) in double) 0:6 'inDV1c' (layout(location=2 ) in double) diff --git a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out index a23a883344ab57a9a9ec864b3f32157332d440e0..8f8dd61015e01978fb452145008a4d573c82fd03 100644 --- a/Test/baseResults/hlsl.intrinsics.evalfns.frag.out +++ b/Test/baseResults/hlsl.intrinsics.evalfns.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.evalfns.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) +0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) 0:3 Function Parameters: 0:3 'inF1' (layout(location=0 ) in float) 0:3 'inF2' (layout(location=1 ) in 2-component vector of float) @@ -57,7 +57,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (global void) +0:3 Function Definition: main(f1;vf2;vf3;vf4;vi2; (temp void) 0:3 Function Parameters: 0:3 'inF1' (layout(location=0 ) in float) 0:3 'inF2' (layout(location=1 ) in 2-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.f1632.frag.out b/Test/baseResults/hlsl.intrinsics.f1632.frag.out index 21daced7f0e6071e27eb54338ffe6e31c114fa3a..0b4c0746e6075f30404fa405d3260ae0ab60ddbc 100644 --- a/Test/baseResults/hlsl.intrinsics.f1632.frag.out +++ b/Test/baseResults/hlsl.intrinsics.f1632.frag.out @@ -9,52 +9,52 @@ ERROR: 4 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:? Sequence 0:3 ERROR: Bad unary op - (global uint) + (temp uint) 0:3 'inF0' (in float) 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 -0:9 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) +0:9 Function Definition: PixelShaderFunction1(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:15 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) +0:15 Function Definition: PixelShaderFunction2(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) + (temp 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:22 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) +0:22 Function Definition: PixelShaderFunction3(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) + (temp 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:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:29 Function Parameters: 0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:30 ERROR: Bad unary op - (global 4-component vector of uint) + (temp 4-component vector of uint) 0:30 'inF0' (layout(location=0 ) in 4-component vector of float) 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) @@ -76,52 +76,52 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:? Sequence 0:3 ERROR: Bad unary op - (global uint) + (temp uint) 0:3 'inF0' (in float) 0:5 Branch: Return with expression 0:5 Constant: 0:5 0.000000 -0:9 Function Definition: PixelShaderFunction1(vf1; (global 1-component vector of float) +0:9 Function Definition: PixelShaderFunction1(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:15 Function Definition: PixelShaderFunction2(vf2; (global 2-component vector of float) +0:15 Function Definition: PixelShaderFunction2(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) + (temp 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:22 Function Definition: PixelShaderFunction3(vf3; (global 3-component vector of float) +0:22 Function Definition: PixelShaderFunction3(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) + (temp 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:29 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:29 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:29 Function Parameters: 0:29 'inF0' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:30 ERROR: Bad unary op - (global 4-component vector of uint) + (temp 4-component vector of uint) 0:30 'inF0' (layout(location=0 ) in 4-component vector of float) 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out index 151bdb4283ebfc09d5bcca957b8fb6bb20099cd8..5def9667d695a5c8af11f63b193d216334ca278a 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:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -13,63 +13,63 @@ gl_FragCoord origin is upper left 0:20 Sequence 0:20 move second child to first child (temp bool) 0:20 'r000' (temp bool) -0:20 all (global bool) +0:20 all (temp bool) 0:20 'inF0' (in float) 0:21 Sequence 0:21 move second child to first child (temp float) 0:21 'r001' (temp float) -0:21 Absolute value (global float) +0:21 Absolute value (temp float) 0:21 'inF0' (in float) 0:22 Sequence 0:22 move second child to first child (temp float) 0:22 'r002' (temp float) -0:22 arc cosine (global float) +0:22 arc cosine (temp float) 0:22 'inF0' (in float) 0:23 Sequence 0:23 move second child to first child (temp bool) 0:23 'r003' (temp bool) -0:23 any (global bool) +0:23 any (temp bool) 0:23 'inF0' (in float) 0:24 Sequence 0:24 move second child to first child (temp float) 0:24 'r004' (temp float) -0:24 arc sine (global float) +0:24 arc sine (temp float) 0:24 'inF0' (in float) 0:25 Sequence 0:25 move second child to first child (temp int) 0:25 'r005' (temp int) -0:25 floatBitsToInt (global int) +0:25 floatBitsToInt (temp int) 0:25 'inF0' (in float) 0:26 Sequence 0:26 move second child to first child (temp uint) 0:26 'r006' (temp uint) -0:26 floatBitsToUint (global uint) +0:26 floatBitsToUint (temp uint) 0:26 'inF0' (in float) 0:27 Sequence 0:27 move second child to first child (temp float) 0:27 'r007' (temp float) -0:27 intBitsToFloat (global float) +0:27 intBitsToFloat (temp float) 0:27 'inU0' (in uint) 0:29 Sequence 0:29 move second child to first child (temp float) 0:29 'r009' (temp float) -0:29 arc tangent (global float) +0:29 arc tangent (temp float) 0:29 'inF0' (in float) 0:30 Sequence 0:30 move second child to first child (temp float) 0:30 'r010' (temp float) -0:30 arc tangent (global float) +0:30 arc tangent (temp float) 0:30 'inF0' (in float) 0:30 'inF1' (in float) 0:31 Sequence 0:31 move second child to first child (temp float) 0:31 'r011' (temp float) -0:31 Ceiling (global float) +0:31 Ceiling (temp float) 0:31 'inF0' (in float) 0:32 Sequence 0:32 move second child to first child (temp float) 0:32 'r012' (temp float) -0:32 clamp (global float) +0:32 clamp (temp float) 0:32 'inF0' (in float) 0:32 'inF1' (in float) 0:32 'inF2' (in float) @@ -84,132 +84,132 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp float) 0:34 'r014' (temp float) -0:34 cosine (global float) +0:34 cosine (temp float) 0:34 'inF0' (in float) 0:35 Sequence 0:35 move second child to first child (temp float) 0:35 'r015' (temp float) -0:35 hyp. cosine (global float) +0:35 hyp. cosine (temp float) 0:35 'inF0' (in float) 0:36 Sequence -0:36 move second child to first child (temp uint) -0:36 'r016' (temp uint) -0:36 bitCount (global uint) +0:36 move second child to first child (temp int) +0:36 'r016' (temp int) +0:36 bitCount (temp int) 0:36 Constant: -0:36 7 (const uint) +0:36 7 (const int) 0:37 Sequence 0:37 move second child to first child (temp float) 0:37 'r017' (temp float) -0:37 dPdx (global float) +0:37 dPdx (temp float) 0:37 'inF0' (in float) 0:38 Sequence 0:38 move second child to first child (temp float) 0:38 'r018' (temp float) -0:38 dPdxCoarse (global float) +0:38 dPdxCoarse (temp float) 0:38 'inF0' (in float) 0:39 Sequence 0:39 move second child to first child (temp float) 0:39 'r019' (temp float) -0:39 dPdxFine (global float) +0:39 dPdxFine (temp float) 0:39 'inF0' (in float) 0:40 Sequence 0:40 move second child to first child (temp float) 0:40 'r020' (temp float) -0:40 dPdy (global float) +0:40 dPdy (temp float) 0:40 'inF0' (in float) 0:41 Sequence 0:41 move second child to first child (temp float) 0:41 'r021' (temp float) -0:41 dPdyCoarse (global float) +0:41 dPdyCoarse (temp float) 0:41 'inF0' (in float) 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r022' (temp float) -0:42 dPdyFine (global float) +0:42 dPdyFine (temp float) 0:42 'inF0' (in float) 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r023' (temp float) -0:43 degrees (global float) +0:43 degrees (temp float) 0:43 'inF0' (in float) 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r027' (temp float) -0:47 exp (global float) +0:47 exp (temp float) 0:47 'inF0' (in float) 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r028' (temp float) -0:48 exp2 (global float) +0:48 exp2 (temp float) 0:48 'inF0' (in float) 0:49 Sequence 0:49 move second child to first child (temp uint) 0:49 'r029' (temp uint) 0:49 Convert int to uint (temp uint) -0:49 findMSB (global int) +0:49 findMSB (temp int) 0:49 Constant: 0:49 7 (const int) 0:50 Sequence 0:50 move second child to first child (temp uint) 0:50 'r030' (temp uint) 0:50 Convert int to uint (temp uint) -0:50 findLSB (global int) +0:50 findLSB (temp int) 0:50 Constant: 0:50 7 (const int) 0:51 Sequence 0:51 move second child to first child (temp float) 0:51 'r031' (temp float) -0:51 Floor (global float) +0:51 Floor (temp float) 0:51 'inF0' (in float) 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r033' (temp float) -0:53 mod (global float) +0:53 mod (temp float) 0:53 'inF0' (in float) 0:53 'inF1' (in float) 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r034' (temp float) -0:54 Fraction (global float) +0:54 Fraction (temp float) 0:54 'inF0' (in float) 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r035' (temp float) -0:55 frexp (global float) +0:55 frexp (temp float) 0:55 'inF0' (in float) 0:55 'inF1' (in float) 0:56 Sequence 0:56 move second child to first child (temp float) 0:56 'r036' (temp float) -0:56 fwidth (global float) +0:56 fwidth (temp float) 0:56 'inF0' (in float) 0:57 Sequence 0:57 move second child to first child (temp bool) 0:57 'r037' (temp bool) -0:57 isinf (global bool) +0:57 isinf (temp bool) 0:57 'inF0' (in float) 0:58 Sequence 0:58 move second child to first child (temp bool) 0:58 'r038' (temp bool) -0:58 isnan (global bool) +0:58 isnan (temp bool) 0:58 'inF0' (in float) 0:59 Sequence 0:59 move second child to first child (temp float) 0:59 'r039' (temp float) -0:59 ldexp (global float) +0:59 ldexp (temp float) 0:59 'inF0' (in float) 0:59 'inF1' (in float) 0:60 Sequence 0:60 move second child to first child (temp float) 0:60 'r039a' (temp float) -0:60 mix (global float) +0:60 mix (temp float) 0:60 'inF0' (in float) 0:60 'inF1' (in float) 0:60 'inF2' (in float) 0:61 Sequence 0:61 move second child to first child (temp float) 0:61 'r040' (temp float) -0:61 log (global float) +0:61 log (temp float) 0:61 'inF0' (in float) 0:62 Sequence 0:62 move second child to first child (temp float) @@ -222,30 +222,30 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp float) 0:63 'r042' (temp float) -0:63 log2 (global float) +0:63 log2 (temp float) 0:63 'inF0' (in float) 0:64 Sequence 0:64 move second child to first child (temp float) 0:64 'r043' (temp float) -0:64 max (global float) +0:64 max (temp float) 0:64 'inF0' (in float) 0:64 'inF1' (in float) 0:65 Sequence 0:65 move second child to first child (temp float) 0:65 'r044' (temp float) -0:65 min (global float) +0:65 min (temp float) 0:65 'inF0' (in float) 0:65 'inF1' (in float) 0:66 Sequence 0:66 move second child to first child (temp float) 0:66 'r045' (temp float) -0:66 pow (global float) +0:66 pow (temp float) 0:66 'inF0' (in float) 0:66 'inF1' (in float) 0:67 Sequence 0:67 move second child to first child (temp float) 0:67 'r046' (temp float) -0:67 radians (global float) +0:67 radians (temp float) 0:67 'inF0' (in float) 0:68 Sequence 0:68 move second child to first child (temp float) @@ -257,18 +257,19 @@ gl_FragCoord origin is upper left 0:69 Sequence 0:69 move second child to first child (temp uint) 0:69 'r048' (temp uint) -0:69 bitFieldReverse (global uint) -0:69 Constant: -0:69 2 (const uint) +0:69 Convert int to uint (temp uint) +0:69 bitFieldReverse (temp int) +0:69 Constant: +0:69 2 (const int) 0:70 Sequence 0:70 move second child to first child (temp float) 0:70 'r049' (temp float) -0:70 roundEven (global float) +0:70 roundEven (temp float) 0:70 'inF0' (in float) 0:71 Sequence 0:71 move second child to first child (temp float) 0:71 'r050' (temp float) -0:71 inverse sqrt (global float) +0:71 inverse sqrt (temp float) 0:71 'inF0' (in float) 0:72 Sequence 0:72 move second child to first child (temp float) @@ -282,12 +283,12 @@ gl_FragCoord origin is upper left 0:73 Sequence 0:73 move second child to first child (temp float) 0:73 'r052' (temp float) -0:73 Sign (global float) +0:73 Sign (temp float) 0:73 'inF0' (in float) 0:74 Sequence 0:74 move second child to first child (temp float) 0:74 'r053' (temp float) -0:74 sine (global float) +0:74 sine (temp float) 0:74 'inF0' (in float) 0:75 Sequence 0:75 move second child to first child (temp float) @@ -301,45 +302,45 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp float) 0:76 'r055' (temp float) -0:76 hyp. sine (global float) +0:76 hyp. sine (temp float) 0:76 'inF0' (in float) 0:77 Sequence 0:77 move second child to first child (temp float) 0:77 'r056' (temp float) -0:77 smoothstep (global float) +0:77 smoothstep (temp float) 0:77 'inF0' (in float) 0:77 'inF1' (in float) 0:77 'inF2' (in float) 0:78 Sequence 0:78 move second child to first child (temp float) 0:78 'r057' (temp float) -0:78 sqrt (global float) +0:78 sqrt (temp float) 0:78 'inF0' (in float) 0:79 Sequence 0:79 move second child to first child (temp float) 0:79 'r058' (temp float) -0:79 step (global float) +0:79 step (temp float) 0:79 'inF0' (in float) 0:79 'inF1' (in float) 0:80 Sequence 0:80 move second child to first child (temp float) 0:80 'r059' (temp float) -0:80 tangent (global float) +0:80 tangent (temp float) 0:80 'inF0' (in float) 0:81 Sequence 0:81 move second child to first child (temp float) 0:81 'r060' (temp float) -0:81 hyp. tangent (global float) +0:81 hyp. tangent (temp float) 0:81 'inF0' (in float) 0:83 Sequence 0:83 move second child to first child (temp float) 0:83 'r061' (temp float) -0:83 trunc (global float) +0:83 trunc (temp float) 0:83 'inF0' (in float) 0:85 Branch: Return with expression 0:85 Constant: 0:85 0.000000 -0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:89 Function Parameters: 0:89 'inF0' (in 1-component vector of float) 0:89 'inF1' (in 1-component vector of float) @@ -348,7 +349,7 @@ gl_FragCoord origin is upper left 0:91 Branch: Return with expression 0:91 Constant: 0:91 0.000000 -0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:95 Function Parameters: 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) @@ -359,63 +360,63 @@ gl_FragCoord origin is upper left 0:98 Sequence 0:98 move second child to first child (temp bool) 0:98 'r000' (temp bool) -0:98 all (global bool) +0:98 all (temp bool) 0:98 'inF0' (in 2-component vector of float) 0:99 Sequence 0:99 move second child to first child (temp 2-component vector of float) 0:99 'r001' (temp 2-component vector of float) -0:99 Absolute value (global 2-component vector of float) +0:99 Absolute value (temp 2-component vector of float) 0:99 'inF0' (in 2-component vector of float) 0:100 Sequence 0:100 move second child to first child (temp 2-component vector of float) 0:100 'r002' (temp 2-component vector of float) -0:100 arc cosine (global 2-component vector of float) +0:100 arc cosine (temp 2-component vector of float) 0:100 'inF0' (in 2-component vector of float) 0:101 Sequence 0:101 move second child to first child (temp bool) 0:101 'r003' (temp bool) -0:101 any (global bool) +0:101 any (temp bool) 0:101 'inF0' (in 2-component vector of float) 0:102 Sequence 0:102 move second child to first child (temp 2-component vector of float) 0:102 'r004' (temp 2-component vector of float) -0:102 arc sine (global 2-component vector of float) +0:102 arc sine (temp 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) 0:103 Sequence 0:103 move second child to first child (temp 2-component vector of int) 0:103 'r005' (temp 2-component vector of int) -0:103 floatBitsToInt (global 2-component vector of int) +0:103 floatBitsToInt (temp 2-component vector of int) 0:103 'inF0' (in 2-component vector of float) 0:104 Sequence 0:104 move second child to first child (temp 2-component vector of uint) 0:104 'r006' (temp 2-component vector of uint) -0:104 floatBitsToUint (global 2-component vector of uint) +0:104 floatBitsToUint (temp 2-component vector of uint) 0:104 'inF0' (in 2-component vector of float) 0:105 Sequence 0:105 move second child to first child (temp 2-component vector of float) 0:105 'r007' (temp 2-component vector of float) -0:105 intBitsToFloat (global 2-component vector of float) +0:105 intBitsToFloat (temp 2-component vector of float) 0:105 'inU0' (in 2-component vector of uint) 0:107 Sequence 0:107 move second child to first child (temp 2-component vector of float) 0:107 'r009' (temp 2-component vector of float) -0:107 arc tangent (global 2-component vector of float) +0:107 arc tangent (temp 2-component vector of float) 0:107 'inF0' (in 2-component vector of float) 0:108 Sequence 0:108 move second child to first child (temp 2-component vector of float) 0:108 'r010' (temp 2-component vector of float) -0:108 arc tangent (global 2-component vector of float) +0:108 arc tangent (temp 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) 0:108 'inF1' (in 2-component vector of float) 0:109 Sequence 0:109 move second child to first child (temp 2-component vector of float) 0:109 'r011' (temp 2-component vector of float) -0:109 Ceiling (global 2-component vector of float) +0:109 Ceiling (temp 2-component vector of float) 0:109 'inF0' (in 2-component vector of float) 0:110 Sequence 0:110 move second child to first child (temp 2-component vector of float) 0:110 'r012' (temp 2-component vector of float) -0:110 clamp (global 2-component vector of float) +0:110 clamp (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:110 'inF2' (in 2-component vector of float) @@ -432,157 +433,157 @@ gl_FragCoord origin is upper left 0:112 Sequence 0:112 move second child to first child (temp 2-component vector of float) 0:112 'r013' (temp 2-component vector of float) -0:112 cosine (global 2-component vector of float) +0:112 cosine (temp 2-component vector of float) 0:112 'inF0' (in 2-component vector of float) 0:113 Sequence 0:113 move second child to first child (temp 2-component vector of float) 0:113 'r015' (temp 2-component vector of float) -0:113 hyp. cosine (global 2-component vector of float) +0:113 hyp. cosine (temp 2-component vector of float) 0:113 'inF0' (in 2-component vector of float) 0:114 Sequence -0:114 move second child to first child (temp 2-component vector of uint) -0:114 'r016' (temp 2-component vector of uint) -0:? bitCount (global 2-component vector of uint) +0:114 move second child to first child (temp 2-component vector of int) +0:114 'r016' (temp 2-component vector of int) +0:? bitCount (temp 2-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) +0:? 7 (const int) +0:? 3 (const int) 0:115 Sequence 0:115 move second child to first child (temp 2-component vector of float) 0:115 'r017' (temp 2-component vector of float) -0:115 dPdx (global 2-component vector of float) +0:115 dPdx (temp 2-component vector of float) 0:115 'inF0' (in 2-component vector of float) 0:116 Sequence 0:116 move second child to first child (temp 2-component vector of float) 0:116 'r018' (temp 2-component vector of float) -0:116 dPdxCoarse (global 2-component vector of float) +0:116 dPdxCoarse (temp 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) 0:117 Sequence 0:117 move second child to first child (temp 2-component vector of float) 0:117 'r019' (temp 2-component vector of float) -0:117 dPdxFine (global 2-component vector of float) +0:117 dPdxFine (temp 2-component vector of float) 0:117 'inF0' (in 2-component vector of float) 0:118 Sequence 0:118 move second child to first child (temp 2-component vector of float) 0:118 'r020' (temp 2-component vector of float) -0:118 dPdy (global 2-component vector of float) +0:118 dPdy (temp 2-component vector of float) 0:118 'inF0' (in 2-component vector of float) 0:119 Sequence 0:119 move second child to first child (temp 2-component vector of float) 0:119 'r021' (temp 2-component vector of float) -0:119 dPdyCoarse (global 2-component vector of float) +0:119 dPdyCoarse (temp 2-component vector of float) 0:119 'inF0' (in 2-component vector of float) 0:120 Sequence 0:120 move second child to first child (temp 2-component vector of float) 0:120 'r022' (temp 2-component vector of float) -0:120 dPdyFine (global 2-component vector of float) +0:120 dPdyFine (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) 0:121 Sequence 0:121 move second child to first child (temp 2-component vector of float) 0:121 'r023' (temp 2-component vector of float) -0:121 degrees (global 2-component vector of float) +0:121 degrees (temp 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) 0:125 Sequence 0:125 move second child to first child (temp float) 0:125 'r026' (temp float) -0:125 distance (global float) +0:125 distance (temp float) 0:125 'inF0' (in 2-component vector of float) 0:125 'inF1' (in 2-component vector of float) 0:126 Sequence 0:126 move second child to first child (temp float) 0:126 'r027' (temp float) -0:126 dot-product (global float) +0:126 dot-product (temp float) 0:126 'inF0' (in 2-component vector of float) 0:126 'inF1' (in 2-component vector of float) 0:130 Sequence 0:130 move second child to first child (temp 2-component vector of float) 0:130 'r028' (temp 2-component vector of float) -0:130 exp (global 2-component vector of float) +0:130 exp (temp 2-component vector of float) 0:130 'inF0' (in 2-component vector of float) 0:131 Sequence 0:131 move second child to first child (temp 2-component vector of float) 0:131 'r029' (temp 2-component vector of float) -0:131 exp2 (global 2-component vector of float) +0:131 exp2 (temp 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) 0:132 Sequence 0:132 move second child to first child (temp 2-component vector of float) 0:132 'r030' (temp 2-component vector of float) -0:132 face-forward (global 2-component vector of float) +0:132 face-forward (temp 2-component vector of float) 0:132 'inF0' (in 2-component vector of float) 0:132 'inF1' (in 2-component vector of float) 0:132 'inF2' (in 2-component vector of float) 0:133 Sequence 0:133 move second child to first child (temp 2-component vector of uint) 0:133 'r031' (temp 2-component vector of uint) -0:? findMSB (global 2-component vector of uint) +0:? findMSB (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:134 Sequence 0:134 move second child to first child (temp 2-component vector of uint) 0:134 'r032' (temp 2-component vector of uint) -0:? findLSB (global 2-component vector of uint) +0:? findLSB (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:135 Sequence 0:135 move second child to first child (temp 2-component vector of float) 0:135 'r033' (temp 2-component vector of float) -0:135 Floor (global 2-component vector of float) +0:135 Floor (temp 2-component vector of float) 0:135 'inF0' (in 2-component vector of float) 0:137 Sequence 0:137 move second child to first child (temp 2-component vector of float) 0:137 'r035' (temp 2-component vector of float) -0:137 mod (global 2-component vector of float) +0:137 mod (temp 2-component vector of float) 0:137 'inF0' (in 2-component vector of float) 0:137 'inF1' (in 2-component vector of float) 0:138 Sequence 0:138 move second child to first child (temp 2-component vector of float) 0:138 'r036' (temp 2-component vector of float) -0:138 Fraction (global 2-component vector of float) +0:138 Fraction (temp 2-component vector of float) 0:138 'inF0' (in 2-component vector of float) 0:139 Sequence 0:139 move second child to first child (temp 2-component vector of float) 0:139 'r037' (temp 2-component vector of float) -0:139 frexp (global 2-component vector of float) +0:139 frexp (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 Sequence 0:140 move second child to first child (temp 2-component vector of float) 0:140 'r038' (temp 2-component vector of float) -0:140 fwidth (global 2-component vector of float) +0:140 fwidth (temp 2-component vector of float) 0:140 'inF0' (in 2-component vector of float) 0:141 Sequence 0:141 move second child to first child (temp 2-component vector of bool) 0:141 'r039' (temp 2-component vector of bool) -0:141 isinf (global 2-component vector of bool) +0:141 isinf (temp 2-component vector of bool) 0:141 'inF0' (in 2-component vector of float) 0:142 Sequence 0:142 move second child to first child (temp 2-component vector of bool) 0:142 'r040' (temp 2-component vector of bool) -0:142 isnan (global 2-component vector of bool) +0:142 isnan (temp 2-component vector of bool) 0:142 'inF0' (in 2-component vector of float) 0:143 Sequence 0:143 move second child to first child (temp 2-component vector of float) 0:143 'r041' (temp 2-component vector of float) -0:143 ldexp (global 2-component vector of float) +0:143 ldexp (temp 2-component vector of float) 0:143 'inF0' (in 2-component vector of float) 0:143 'inF1' (in 2-component vector of float) 0:144 Sequence 0:144 move second child to first child (temp 2-component vector of float) 0:144 'r039a' (temp 2-component vector of float) -0:144 mix (global 2-component vector of float) +0:144 mix (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:144 'inF2' (in 2-component vector of float) 0:145 Sequence 0:145 move second child to first child (temp float) 0:145 'r042' (temp float) -0:145 length (global float) +0:145 length (temp float) 0:145 'inF0' (in 2-component vector of float) 0:146 Sequence 0:146 move second child to first child (temp 2-component vector of float) 0:146 'r043' (temp 2-component vector of float) -0:146 log (global 2-component vector of float) +0:146 log (temp 2-component vector of float) 0:146 'inF0' (in 2-component vector of float) 0:147 Sequence 0:147 move second child to first child (temp 2-component vector of float) @@ -595,35 +596,35 @@ gl_FragCoord origin is upper left 0:148 Sequence 0:148 move second child to first child (temp 2-component vector of float) 0:148 'r045' (temp 2-component vector of float) -0:148 log2 (global 2-component vector of float) +0:148 log2 (temp 2-component vector of float) 0:148 'inF0' (in 2-component vector of float) 0:149 Sequence 0:149 move second child to first child (temp 2-component vector of float) 0:149 'r046' (temp 2-component vector of float) -0:149 max (global 2-component vector of float) +0:149 max (temp 2-component vector of float) 0:149 'inF0' (in 2-component vector of float) 0:149 'inF1' (in 2-component vector of float) 0:150 Sequence 0:150 move second child to first child (temp 2-component vector of float) 0:150 'r047' (temp 2-component vector of float) -0:150 min (global 2-component vector of float) +0:150 min (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 Sequence 0:151 move second child to first child (temp 2-component vector of float) 0:151 'r048' (temp 2-component vector of float) -0:151 normalize (global 2-component vector of float) +0:151 normalize (temp 2-component vector of float) 0:151 'inF0' (in 2-component vector of float) 0:152 Sequence 0:152 move second child to first child (temp 2-component vector of float) 0:152 'r049' (temp 2-component vector of float) -0:152 pow (global 2-component vector of float) +0:152 pow (temp 2-component vector of float) 0:152 'inF0' (in 2-component vector of float) 0:152 'inF1' (in 2-component vector of float) 0:153 Sequence 0:153 move second child to first child (temp 2-component vector of float) 0:153 'r050' (temp 2-component vector of float) -0:153 radians (global 2-component vector of float) +0:153 radians (temp 2-component vector of float) 0:153 'inF0' (in 2-component vector of float) 0:154 Sequence 0:154 move second child to first child (temp 2-component vector of float) @@ -635,13 +636,13 @@ gl_FragCoord origin is upper left 0:155 Sequence 0:155 move second child to first child (temp 2-component vector of float) 0:155 'r052' (temp 2-component vector of float) -0:155 reflect (global 2-component vector of float) +0:155 reflect (temp 2-component vector of float) 0:155 'inF0' (in 2-component vector of float) 0:155 'inF1' (in 2-component vector of float) 0:156 Sequence 0:156 move second child to first child (temp 2-component vector of float) 0:156 'r053' (temp 2-component vector of float) -0:156 refract (global 2-component vector of float) +0:156 refract (temp 2-component vector of float) 0:156 'inF0' (in 2-component vector of float) 0:156 'inF1' (in 2-component vector of float) 0:156 Constant: @@ -649,19 +650,19 @@ gl_FragCoord origin is upper left 0:157 Sequence 0:157 move second child to first child (temp 2-component vector of uint) 0:157 'r054' (temp 2-component vector of uint) -0:? bitFieldReverse (global 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:158 Sequence 0:158 move second child to first child (temp 2-component vector of float) 0:158 'r055' (temp 2-component vector of float) -0:158 roundEven (global 2-component vector of float) +0:158 roundEven (temp 2-component vector of float) 0:158 'inF0' (in 2-component vector of float) 0:159 Sequence 0:159 move second child to first child (temp 2-component vector of float) 0:159 'r056' (temp 2-component vector of float) -0:159 inverse sqrt (global 2-component vector of float) +0:159 inverse sqrt (temp 2-component vector of float) 0:159 'inF0' (in 2-component vector of float) 0:160 Sequence 0:160 move second child to first child (temp 2-component vector of float) @@ -675,12 +676,12 @@ gl_FragCoord origin is upper left 0:161 Sequence 0:161 move second child to first child (temp 2-component vector of float) 0:161 'r058' (temp 2-component vector of float) -0:161 Sign (global 2-component vector of float) +0:161 Sign (temp 2-component vector of float) 0:161 'inF0' (in 2-component vector of float) 0:162 Sequence 0:162 move second child to first child (temp 2-component vector of float) 0:162 'r059' (temp 2-component vector of float) -0:162 sine (global 2-component vector of float) +0:162 sine (temp 2-component vector of float) 0:162 'inF0' (in 2-component vector of float) 0:163 Sequence 0:163 move second child to first child (temp 2-component vector of float) @@ -694,46 +695,46 @@ gl_FragCoord origin is upper left 0:164 Sequence 0:164 move second child to first child (temp 2-component vector of float) 0:164 'r060' (temp 2-component vector of float) -0:164 hyp. sine (global 2-component vector of float) +0:164 hyp. sine (temp 2-component vector of float) 0:164 'inF0' (in 2-component vector of float) 0:165 Sequence 0:165 move second child to first child (temp 2-component vector of float) 0:165 'r061' (temp 2-component vector of float) -0:165 smoothstep (global 2-component vector of float) +0:165 smoothstep (temp 2-component vector of float) 0:165 'inF0' (in 2-component vector of float) 0:165 'inF1' (in 2-component vector of float) 0:165 'inF2' (in 2-component vector of float) 0:166 Sequence 0:166 move second child to first child (temp 2-component vector of float) 0:166 'r062' (temp 2-component vector of float) -0:166 sqrt (global 2-component vector of float) +0:166 sqrt (temp 2-component vector of float) 0:166 'inF0' (in 2-component vector of float) 0:167 Sequence 0:167 move second child to first child (temp 2-component vector of float) 0:167 'r063' (temp 2-component vector of float) -0:167 step (global 2-component vector of float) +0:167 step (temp 2-component vector of float) 0:167 'inF0' (in 2-component vector of float) 0:167 'inF1' (in 2-component vector of float) 0:168 Sequence 0:168 move second child to first child (temp 2-component vector of float) 0:168 'r064' (temp 2-component vector of float) -0:168 tangent (global 2-component vector of float) +0:168 tangent (temp 2-component vector of float) 0:168 'inF0' (in 2-component vector of float) 0:169 Sequence 0:169 move second child to first child (temp 2-component vector of float) 0:169 'r065' (temp 2-component vector of float) -0:169 hyp. tangent (global 2-component vector of float) +0:169 hyp. tangent (temp 2-component vector of float) 0:169 'inF0' (in 2-component vector of float) 0:171 Sequence 0:171 move second child to first child (temp 2-component vector of float) 0:171 'r066' (temp 2-component vector of float) -0:171 trunc (global 2-component vector of float) +0:171 trunc (temp 2-component vector of float) 0:171 'inF0' (in 2-component vector of float) 0:174 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:178 Function Parameters: 0:178 'inF0' (in 3-component vector of float) 0:178 'inF1' (in 3-component vector of float) @@ -744,63 +745,63 @@ gl_FragCoord origin is upper left 0:181 Sequence 0:181 move second child to first child (temp bool) 0:181 'r000' (temp bool) -0:181 all (global bool) +0:181 all (temp bool) 0:181 'inF0' (in 3-component vector of float) 0:182 Sequence 0:182 move second child to first child (temp 3-component vector of float) 0:182 'r001' (temp 3-component vector of float) -0:182 Absolute value (global 3-component vector of float) +0:182 Absolute value (temp 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) 0:183 Sequence 0:183 move second child to first child (temp 3-component vector of float) 0:183 'r002' (temp 3-component vector of float) -0:183 arc cosine (global 3-component vector of float) +0:183 arc cosine (temp 3-component vector of float) 0:183 'inF0' (in 3-component vector of float) 0:184 Sequence 0:184 move second child to first child (temp bool) 0:184 'r003' (temp bool) -0:184 any (global bool) +0:184 any (temp bool) 0:184 'inF0' (in 3-component vector of float) 0:185 Sequence 0:185 move second child to first child (temp 3-component vector of float) 0:185 'r004' (temp 3-component vector of float) -0:185 arc sine (global 3-component vector of float) +0:185 arc sine (temp 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) 0:186 Sequence 0:186 move second child to first child (temp 3-component vector of int) 0:186 'r005' (temp 3-component vector of int) -0:186 floatBitsToInt (global 3-component vector of int) +0:186 floatBitsToInt (temp 3-component vector of int) 0:186 'inF0' (in 3-component vector of float) 0:187 Sequence 0:187 move second child to first child (temp 3-component vector of uint) 0:187 'r006' (temp 3-component vector of uint) -0:187 floatBitsToUint (global 3-component vector of uint) +0:187 floatBitsToUint (temp 3-component vector of uint) 0:187 'inF0' (in 3-component vector of float) 0:188 Sequence 0:188 move second child to first child (temp 3-component vector of float) 0:188 'r007' (temp 3-component vector of float) -0:188 intBitsToFloat (global 3-component vector of float) +0:188 intBitsToFloat (temp 3-component vector of float) 0:188 'inU0' (in 3-component vector of uint) 0:190 Sequence 0:190 move second child to first child (temp 3-component vector of float) 0:190 'r009' (temp 3-component vector of float) -0:190 arc tangent (global 3-component vector of float) +0:190 arc tangent (temp 3-component vector of float) 0:190 'inF0' (in 3-component vector of float) 0:191 Sequence 0:191 move second child to first child (temp 3-component vector of float) 0:191 'r010' (temp 3-component vector of float) -0:191 arc tangent (global 3-component vector of float) +0:191 arc tangent (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) 0:191 'inF1' (in 3-component vector of float) 0:192 Sequence 0:192 move second child to first child (temp 3-component vector of float) 0:192 'r011' (temp 3-component vector of float) -0:192 Ceiling (global 3-component vector of float) +0:192 Ceiling (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 'r012' (temp 3-component vector of float) -0:193 clamp (global 3-component vector of float) +0:193 clamp (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:193 'inF2' (in 3-component vector of float) @@ -818,17 +819,17 @@ gl_FragCoord origin is upper left 0:195 Sequence 0:195 move second child to first child (temp 3-component vector of float) 0:195 'r013' (temp 3-component vector of float) -0:195 cosine (global 3-component vector of float) +0:195 cosine (temp 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) 0:196 Sequence 0:196 move second child to first child (temp 3-component vector of float) 0:196 'r014' (temp 3-component vector of float) -0:196 hyp. cosine (global 3-component vector of float) +0:196 hyp. cosine (temp 3-component vector of float) 0:196 'inF0' (in 3-component vector of float) 0:197 Sequence 0:197 move second child to first child (temp 3-component vector of uint) 0:197 'r015' (temp 3-component vector of uint) -0:? bitCount (global 3-component vector of uint) +0:? bitCount (temp 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) @@ -836,77 +837,77 @@ gl_FragCoord origin is upper left 0:198 Sequence 0:198 move second child to first child (temp 3-component vector of float) 0:198 'r016' (temp 3-component vector of float) -0:198 cross-product (global 3-component vector of float) +0:198 cross-product (temp 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) 0:198 'inF1' (in 3-component vector of float) 0:199 Sequence 0:199 move second child to first child (temp 3-component vector of float) 0:199 'r017' (temp 3-component vector of float) -0:199 dPdx (global 3-component vector of float) +0:199 dPdx (temp 3-component vector of float) 0:199 'inF0' (in 3-component vector of float) 0:200 Sequence 0:200 move second child to first child (temp 3-component vector of float) 0:200 'r018' (temp 3-component vector of float) -0:200 dPdxCoarse (global 3-component vector of float) +0:200 dPdxCoarse (temp 3-component vector of float) 0:200 'inF0' (in 3-component vector of float) 0:201 Sequence 0:201 move second child to first child (temp 3-component vector of float) 0:201 'r019' (temp 3-component vector of float) -0:201 dPdxFine (global 3-component vector of float) +0:201 dPdxFine (temp 3-component vector of float) 0:201 'inF0' (in 3-component vector of float) 0:202 Sequence 0:202 move second child to first child (temp 3-component vector of float) 0:202 'r020' (temp 3-component vector of float) -0:202 dPdy (global 3-component vector of float) +0:202 dPdy (temp 3-component vector of float) 0:202 'inF0' (in 3-component vector of float) 0:203 Sequence 0:203 move second child to first child (temp 3-component vector of float) 0:203 'r021' (temp 3-component vector of float) -0:203 dPdyCoarse (global 3-component vector of float) +0:203 dPdyCoarse (temp 3-component vector of float) 0:203 'inF0' (in 3-component vector of float) 0:204 Sequence 0:204 move second child to first child (temp 3-component vector of float) 0:204 'r022' (temp 3-component vector of float) -0:204 dPdyFine (global 3-component vector of float) +0:204 dPdyFine (temp 3-component vector of float) 0:204 'inF0' (in 3-component vector of float) 0:205 Sequence 0:205 move second child to first child (temp 3-component vector of float) 0:205 'r023' (temp 3-component vector of float) -0:205 degrees (global 3-component vector of float) +0:205 degrees (temp 3-component vector of float) 0:205 'inF0' (in 3-component vector of float) 0:206 Sequence 0:206 move second child to first child (temp float) 0:206 'r024' (temp float) -0:206 distance (global float) +0:206 distance (temp float) 0:206 'inF0' (in 3-component vector of float) 0:206 'inF1' (in 3-component vector of float) 0:207 Sequence 0:207 move second child to first child (temp float) 0:207 'r025' (temp float) -0:207 dot-product (global float) +0:207 dot-product (temp float) 0:207 'inF0' (in 3-component vector of float) 0:207 'inF1' (in 3-component vector of float) 0:211 Sequence 0:211 move second child to first child (temp 3-component vector of float) 0:211 'r029' (temp 3-component vector of float) -0:211 exp (global 3-component vector of float) +0:211 exp (temp 3-component vector of float) 0:211 'inF0' (in 3-component vector of float) 0:212 Sequence 0:212 move second child to first child (temp 3-component vector of float) 0:212 'r030' (temp 3-component vector of float) -0:212 exp2 (global 3-component vector of float) +0:212 exp2 (temp 3-component vector of float) 0:212 'inF0' (in 3-component vector of float) 0:213 Sequence 0:213 move second child to first child (temp 3-component vector of float) 0:213 'r031' (temp 3-component vector of float) -0:213 face-forward (global 3-component vector of float) +0:213 face-forward (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:213 'inF2' (in 3-component vector of float) 0:214 Sequence 0:214 move second child to first child (temp 3-component vector of uint) 0:214 'r032' (temp 3-component vector of uint) -0:? findMSB (global 3-component vector of uint) +0:? findMSB (temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) @@ -914,7 +915,7 @@ gl_FragCoord origin is upper left 0:215 Sequence 0:215 move second child to first child (temp 3-component vector of uint) 0:215 'r033' (temp 3-component vector of uint) -0:? findLSB (global 3-component vector of uint) +0:? findLSB (temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) @@ -922,57 +923,57 @@ gl_FragCoord origin is upper left 0:216 Sequence 0:216 move second child to first child (temp 3-component vector of float) 0:216 'r034' (temp 3-component vector of float) -0:216 Floor (global 3-component vector of float) +0:216 Floor (temp 3-component vector of float) 0:216 'inF0' (in 3-component vector of float) 0:218 Sequence 0:218 move second child to first child (temp 3-component vector of float) 0:218 'r036' (temp 3-component vector of float) -0:218 mod (global 3-component vector of float) +0:218 mod (temp 3-component vector of float) 0:218 'inF0' (in 3-component vector of float) 0:218 'inF1' (in 3-component vector of float) 0:219 Sequence 0:219 move second child to first child (temp 3-component vector of float) 0:219 'r037' (temp 3-component vector of float) -0:219 Fraction (global 3-component vector of float) +0:219 Fraction (temp 3-component vector of float) 0:219 'inF0' (in 3-component vector of float) 0:220 Sequence 0:220 move second child to first child (temp 3-component vector of float) 0:220 'r038' (temp 3-component vector of float) -0:220 frexp (global 3-component vector of float) +0:220 frexp (temp 3-component vector of float) 0:220 'inF0' (in 3-component vector of float) 0:220 'inF1' (in 3-component vector of float) 0:221 Sequence 0:221 move second child to first child (temp 3-component vector of float) 0:221 'r039' (temp 3-component vector of float) -0:221 fwidth (global 3-component vector of float) +0:221 fwidth (temp 3-component vector of float) 0:221 'inF0' (in 3-component vector of float) 0:222 Sequence 0:222 move second child to first child (temp 3-component vector of bool) 0:222 'r040' (temp 3-component vector of bool) -0:222 isinf (global 3-component vector of bool) +0:222 isinf (temp 3-component vector of bool) 0:222 'inF0' (in 3-component vector of float) 0:223 Sequence 0:223 move second child to first child (temp 3-component vector of bool) 0:223 'r041' (temp 3-component vector of bool) -0:223 isnan (global 3-component vector of bool) +0:223 isnan (temp 3-component vector of bool) 0:223 'inF0' (in 3-component vector of float) 0:224 Sequence 0:224 move second child to first child (temp 3-component vector of float) 0:224 'r042' (temp 3-component vector of float) -0:224 ldexp (global 3-component vector of float) +0:224 ldexp (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 Sequence 0:225 move second child to first child (temp 3-component vector of float) 0:225 'r039a' (temp 3-component vector of float) -0:225 mix (global 3-component vector of float) +0:225 mix (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:225 'inF2' (in 3-component vector of float) 0:226 Sequence 0:226 move second child to first child (temp 3-component vector of float) 0:226 'r039b' (temp 3-component vector of float) -0:226 mix (global 3-component vector of float) +0:226 mix (temp 3-component vector of float) 0:226 'inF0' (in 3-component vector of float) 0:226 'inF1' (in 3-component vector of float) 0:226 Constant: @@ -980,12 +981,12 @@ gl_FragCoord origin is upper left 0:227 Sequence 0:227 move second child to first child (temp float) 0:227 'r043' (temp float) -0:227 length (global float) +0:227 length (temp float) 0:227 'inF0' (in 3-component vector of float) 0:228 Sequence 0:228 move second child to first child (temp 3-component vector of float) 0:228 'r044' (temp 3-component vector of float) -0:228 log (global 3-component vector of float) +0:228 log (temp 3-component vector of float) 0:228 'inF0' (in 3-component vector of float) 0:229 Sequence 0:229 move second child to first child (temp 3-component vector of float) @@ -998,35 +999,35 @@ gl_FragCoord origin is upper left 0:230 Sequence 0:230 move second child to first child (temp 3-component vector of float) 0:230 'r046' (temp 3-component vector of float) -0:230 log2 (global 3-component vector of float) +0:230 log2 (temp 3-component vector of float) 0:230 'inF0' (in 3-component vector of float) 0:231 Sequence 0:231 move second child to first child (temp 3-component vector of float) 0:231 'r047' (temp 3-component vector of float) -0:231 max (global 3-component vector of float) +0:231 max (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:232 Sequence 0:232 move second child to first child (temp 3-component vector of float) 0:232 'r048' (temp 3-component vector of float) -0:232 min (global 3-component vector of float) +0:232 min (temp 3-component vector of float) 0:232 'inF0' (in 3-component vector of float) 0:232 'inF1' (in 3-component vector of float) 0:233 Sequence 0:233 move second child to first child (temp 3-component vector of float) 0:233 'r049' (temp 3-component vector of float) -0:233 normalize (global 3-component vector of float) +0:233 normalize (temp 3-component vector of float) 0:233 'inF0' (in 3-component vector of float) 0:234 Sequence 0:234 move second child to first child (temp 3-component vector of float) 0:234 'r050' (temp 3-component vector of float) -0:234 pow (global 3-component vector of float) +0:234 pow (temp 3-component vector of float) 0:234 'inF0' (in 3-component vector of float) 0:234 'inF1' (in 3-component vector of float) 0:235 Sequence 0:235 move second child to first child (temp 3-component vector of float) 0:235 'r051' (temp 3-component vector of float) -0:235 radians (global 3-component vector of float) +0:235 radians (temp 3-component vector of float) 0:235 'inF0' (in 3-component vector of float) 0:236 Sequence 0:236 move second child to first child (temp 3-component vector of float) @@ -1038,13 +1039,13 @@ gl_FragCoord origin is upper left 0:237 Sequence 0:237 move second child to first child (temp 3-component vector of float) 0:237 'r053' (temp 3-component vector of float) -0:237 reflect (global 3-component vector of float) +0:237 reflect (temp 3-component vector of float) 0:237 'inF0' (in 3-component vector of float) 0:237 'inF1' (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 'r054' (temp 3-component vector of float) -0:238 refract (global 3-component vector of float) +0:238 refract (temp 3-component vector of float) 0:238 'inF0' (in 3-component vector of float) 0:238 'inF1' (in 3-component vector of float) 0:238 Constant: @@ -1052,7 +1053,7 @@ gl_FragCoord origin is upper left 0:239 Sequence 0:239 move second child to first child (temp 3-component vector of uint) 0:239 'r055' (temp 3-component vector of uint) -0:? bitFieldReverse (global 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) @@ -1060,12 +1061,12 @@ gl_FragCoord origin is upper left 0:240 Sequence 0:240 move second child to first child (temp 3-component vector of float) 0:240 'r056' (temp 3-component vector of float) -0:240 roundEven (global 3-component vector of float) +0:240 roundEven (temp 3-component vector of float) 0:240 'inF0' (in 3-component vector of float) 0:241 Sequence 0:241 move second child to first child (temp 3-component vector of float) 0:241 'r057' (temp 3-component vector of float) -0:241 inverse sqrt (global 3-component vector of float) +0:241 inverse sqrt (temp 3-component vector of float) 0:241 'inF0' (in 3-component vector of float) 0:242 Sequence 0:242 move second child to first child (temp 3-component vector of float) @@ -1079,12 +1080,12 @@ gl_FragCoord origin is upper left 0:243 Sequence 0:243 move second child to first child (temp 3-component vector of float) 0:243 'r059' (temp 3-component vector of float) -0:243 Sign (global 3-component vector of float) +0:243 Sign (temp 3-component vector of float) 0:243 'inF0' (in 3-component vector of float) 0:244 Sequence 0:244 move second child to first child (temp 3-component vector of float) 0:244 'r060' (temp 3-component vector of float) -0:244 sine (global 3-component vector of float) +0:244 sine (temp 3-component vector of float) 0:244 'inF0' (in 3-component vector of float) 0:245 Sequence 0:245 move second child to first child (temp 3-component vector of float) @@ -1098,47 +1099,47 @@ gl_FragCoord origin is upper left 0:246 Sequence 0:246 move second child to first child (temp 3-component vector of float) 0:246 'r061' (temp 3-component vector of float) -0:246 hyp. sine (global 3-component vector of float) +0:246 hyp. sine (temp 3-component vector of float) 0:246 'inF0' (in 3-component vector of float) 0:247 Sequence 0:247 move second child to first child (temp 3-component vector of float) 0:247 'r062' (temp 3-component vector of float) -0:247 smoothstep (global 3-component vector of float) +0:247 smoothstep (temp 3-component vector of float) 0:247 'inF0' (in 3-component vector of float) 0:247 'inF1' (in 3-component vector of float) 0:247 'inF2' (in 3-component vector of float) 0:248 Sequence 0:248 move second child to first child (temp 3-component vector of float) 0:248 'r063' (temp 3-component vector of float) -0:248 sqrt (global 3-component vector of float) +0:248 sqrt (temp 3-component vector of float) 0:248 'inF0' (in 3-component vector of float) 0:249 Sequence 0:249 move second child to first child (temp 3-component vector of float) 0:249 'r064' (temp 3-component vector of float) -0:249 step (global 3-component vector of float) +0:249 step (temp 3-component vector of float) 0:249 'inF0' (in 3-component vector of float) 0:249 'inF1' (in 3-component vector of float) 0:250 Sequence 0:250 move second child to first child (temp 3-component vector of float) 0:250 'r065' (temp 3-component vector of float) -0:250 tangent (global 3-component vector of float) +0:250 tangent (temp 3-component vector of float) 0:250 'inF0' (in 3-component vector of float) 0:251 Sequence 0:251 move second child to first child (temp 3-component vector of float) 0:251 'r066' (temp 3-component vector of float) -0:251 hyp. tangent (global 3-component vector of float) +0:251 hyp. tangent (temp 3-component vector of float) 0:251 'inF0' (in 3-component vector of float) 0:253 Sequence 0:253 move second child to first child (temp 3-component vector of float) 0:253 'r067' (temp 3-component vector of float) -0:253 trunc (global 3-component vector of float) +0:253 trunc (temp 3-component vector of float) 0:253 'inF0' (in 3-component vector of float) 0:256 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:260 Function Parameters: 0:260 'inF0' (in 4-component vector of float) 0:260 'inF1' (in 4-component vector of float) @@ -1149,63 +1150,63 @@ gl_FragCoord origin is upper left 0:263 Sequence 0:263 move second child to first child (temp bool) 0:263 'r000' (temp bool) -0:263 all (global bool) +0:263 all (temp bool) 0:263 'inF0' (in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) 0:264 'r001' (temp 4-component vector of float) -0:264 Absolute value (global 4-component vector of float) +0:264 Absolute value (temp 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) 0:265 Sequence 0:265 move second child to first child (temp 4-component vector of float) 0:265 'r002' (temp 4-component vector of float) -0:265 arc cosine (global 4-component vector of float) +0:265 arc cosine (temp 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) 0:266 Sequence 0:266 move second child to first child (temp bool) 0:266 'r003' (temp bool) -0:266 any (global bool) +0:266 any (temp bool) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) 0:267 'r004' (temp 4-component vector of float) -0:267 arc sine (global 4-component vector of float) +0:267 arc sine (temp 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) 0:268 Sequence 0:268 move second child to first child (temp 4-component vector of int) 0:268 'r005' (temp 4-component vector of int) -0:268 floatBitsToInt (global 4-component vector of int) +0:268 floatBitsToInt (temp 4-component vector of int) 0:268 'inF0' (in 4-component vector of float) 0:269 Sequence 0:269 move second child to first child (temp 4-component vector of uint) 0:269 'r006' (temp 4-component vector of uint) -0:269 floatBitsToUint (global 4-component vector of uint) +0:269 floatBitsToUint (temp 4-component vector of uint) 0:269 'inF0' (in 4-component vector of float) 0:270 Sequence 0:270 move second child to first child (temp 4-component vector of float) 0:270 'r007' (temp 4-component vector of float) -0:270 intBitsToFloat (global 4-component vector of float) +0:270 intBitsToFloat (temp 4-component vector of float) 0:270 'inU0' (in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) 0:272 'r009' (temp 4-component vector of float) -0:272 arc tangent (global 4-component vector of float) +0:272 arc tangent (temp 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) 0:273 'r010' (temp 4-component vector of float) -0:273 arc tangent (global 4-component vector of float) +0:273 arc tangent (temp 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) 0:273 'inF1' (in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) 0:274 'r011' (temp 4-component vector of float) -0:274 Ceiling (global 4-component vector of float) +0:274 Ceiling (temp 4-component vector of float) 0:274 'inF0' (in 4-component vector of float) 0:275 Sequence 0:275 move second child to first child (temp 4-component vector of float) 0:275 'r012' (temp 4-component vector of float) -0:275 clamp (global 4-component vector of float) +0:275 clamp (temp 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) 0:275 'inF1' (in 4-component vector of float) 0:275 'inF2' (in 4-component vector of float) @@ -1224,17 +1225,17 @@ gl_FragCoord origin is upper left 0:277 Sequence 0:277 move second child to first child (temp 4-component vector of float) 0:277 'r013' (temp 4-component vector of float) -0:277 cosine (global 4-component vector of float) +0:277 cosine (temp 4-component vector of float) 0:277 'inF0' (in 4-component vector of float) 0:278 Sequence 0:278 move second child to first child (temp 4-component vector of float) 0:278 'r014' (temp 4-component vector of float) -0:278 hyp. cosine (global 4-component vector of float) +0:278 hyp. cosine (temp 4-component vector of float) 0:278 'inF0' (in 4-component vector of float) 0:279 Sequence 0:279 move second child to first child (temp 4-component vector of uint) 0:279 'r015' (temp 4-component vector of uint) -0:? bitCount (global 4-component vector of uint) +0:? bitCount (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) @@ -1243,48 +1244,48 @@ gl_FragCoord origin is upper left 0:280 Sequence 0:280 move second child to first child (temp 4-component vector of float) 0:280 'r016' (temp 4-component vector of float) -0:280 dPdx (global 4-component vector of float) +0:280 dPdx (temp 4-component vector of float) 0:280 'inF0' (in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) 0:281 'r017' (temp 4-component vector of float) -0:281 dPdxCoarse (global 4-component vector of float) +0:281 dPdxCoarse (temp 4-component vector of float) 0:281 'inF0' (in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) 0:282 'r018' (temp 4-component vector of float) -0:282 dPdxFine (global 4-component vector of float) +0:282 dPdxFine (temp 4-component vector of float) 0:282 'inF0' (in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) 0:283 'r019' (temp 4-component vector of float) -0:283 dPdy (global 4-component vector of float) +0:283 dPdy (temp 4-component vector of float) 0:283 'inF0' (in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) 0:284 'r020' (temp 4-component vector of float) -0:284 dPdyCoarse (global 4-component vector of float) +0:284 dPdyCoarse (temp 4-component vector of float) 0:284 'inF0' (in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) 0:285 'r021' (temp 4-component vector of float) -0:285 dPdyFine (global 4-component vector of float) +0:285 dPdyFine (temp 4-component vector of float) 0:285 'inF0' (in 4-component vector of float) 0:286 Sequence 0:286 move second child to first child (temp 4-component vector of float) 0:286 'r022' (temp 4-component vector of float) -0:286 degrees (global 4-component vector of float) +0:286 degrees (temp 4-component vector of float) 0:286 'inF0' (in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) 0:287 'r023' (temp float) -0:287 distance (global float) +0:287 distance (temp float) 0:287 'inF0' (in 4-component vector of float) 0:287 'inF1' (in 4-component vector of float) 0:288 Sequence 0:288 move second child to first child (temp float) 0:288 'r024' (temp float) -0:288 dot-product (global float) +0:288 dot-product (temp float) 0:288 'inF0' (in 4-component vector of float) 0:288 'inF1' (in 4-component vector of float) 0:289 Sequence @@ -1313,24 +1314,24 @@ gl_FragCoord origin is upper left 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) 0:293 'r029' (temp 4-component vector of float) -0:293 exp (global 4-component vector of float) +0:293 exp (temp 4-component vector of float) 0:293 'inF0' (in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) 0:294 'r030' (temp 4-component vector of float) -0:294 exp2 (global 4-component vector of float) +0:294 exp2 (temp 4-component vector of float) 0:294 'inF0' (in 4-component vector of float) 0:295 Sequence 0:295 move second child to first child (temp 4-component vector of float) 0:295 'r031' (temp 4-component vector of float) -0:295 face-forward (global 4-component vector of float) +0:295 face-forward (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:295 'inF2' (in 4-component vector of float) 0:296 Sequence 0:296 move second child to first child (temp 4-component vector of uint) 0:296 'r032' (temp 4-component vector of uint) -0:? findMSB (global 4-component vector of uint) +0:? findMSB (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) @@ -1339,7 +1340,7 @@ gl_FragCoord origin is upper left 0:297 Sequence 0:297 move second child to first child (temp 4-component vector of uint) 0:297 'r033' (temp 4-component vector of uint) -0:? findLSB (global 4-component vector of uint) +0:? findLSB (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) @@ -1348,62 +1349,62 @@ gl_FragCoord origin is upper left 0:298 Sequence 0:298 move second child to first child (temp 4-component vector of float) 0:298 'r034' (temp 4-component vector of float) -0:298 Floor (global 4-component vector of float) +0:298 Floor (temp 4-component vector of float) 0:298 'inF0' (in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) 0:300 'r036' (temp 4-component vector of float) -0:300 mod (global 4-component vector of float) +0:300 mod (temp 4-component vector of float) 0:300 'inF0' (in 4-component vector of float) 0:300 'inF1' (in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) 0:301 'r037' (temp 4-component vector of float) -0:301 Fraction (global 4-component vector of float) +0:301 Fraction (temp 4-component vector of float) 0:301 'inF0' (in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) 0:302 'r038' (temp 4-component vector of float) -0:302 frexp (global 4-component vector of float) +0:302 frexp (temp 4-component vector of float) 0:302 'inF0' (in 4-component vector of float) 0:302 'inF1' (in 4-component vector of float) 0:303 Sequence 0:303 move second child to first child (temp 4-component vector of float) 0:303 'r039' (temp 4-component vector of float) -0:303 fwidth (global 4-component vector of float) +0:303 fwidth (temp 4-component vector of float) 0:303 'inF0' (in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) 0:304 'r040' (temp 4-component vector of bool) -0:304 isinf (global 4-component vector of bool) +0:304 isinf (temp 4-component vector of bool) 0:304 'inF0' (in 4-component vector of float) 0:305 Sequence 0:305 move second child to first child (temp 4-component vector of bool) 0:305 'r041' (temp 4-component vector of bool) -0:305 isnan (global 4-component vector of bool) +0:305 isnan (temp 4-component vector of bool) 0:305 'inF0' (in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) 0:306 'r042' (temp 4-component vector of float) -0:306 ldexp (global 4-component vector of float) +0:306 ldexp (temp 4-component vector of float) 0:306 'inF0' (in 4-component vector of float) 0:306 'inF1' (in 4-component vector of float) 0:307 Sequence 0:307 move second child to first child (temp 4-component vector of float) 0:307 'r039a' (temp 4-component vector of float) -0:307 mix (global 4-component vector of float) +0:307 mix (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:307 'inF2' (in 4-component vector of float) 0:308 Sequence 0:308 move second child to first child (temp float) 0:308 'r043' (temp float) -0:308 length (global float) +0:308 length (temp float) 0:308 'inF0' (in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) 0:309 'r044' (temp 4-component vector of float) -0:309 log (global 4-component vector of float) +0:309 log (temp 4-component vector of float) 0:309 'inF0' (in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) @@ -1416,35 +1417,35 @@ gl_FragCoord origin is upper left 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) 0:311 'r046' (temp 4-component vector of float) -0:311 log2 (global 4-component vector of float) +0:311 log2 (temp 4-component vector of float) 0:311 'inF0' (in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) 0:312 'r047' (temp 4-component vector of float) -0:312 max (global 4-component vector of float) +0:312 max (temp 4-component vector of float) 0:312 'inF0' (in 4-component vector of float) 0:312 'inF1' (in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) 0:313 'r048' (temp 4-component vector of float) -0:313 min (global 4-component vector of float) +0:313 min (temp 4-component vector of float) 0:313 'inF0' (in 4-component vector of float) 0:313 'inF1' (in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) 0:314 'r049' (temp 4-component vector of float) -0:314 normalize (global 4-component vector of float) +0:314 normalize (temp 4-component vector of float) 0:314 'inF0' (in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) 0:315 'r050' (temp 4-component vector of float) -0:315 pow (global 4-component vector of float) +0:315 pow (temp 4-component vector of float) 0:315 'inF0' (in 4-component vector of float) 0:315 'inF1' (in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) 0:316 'r051' (temp 4-component vector of float) -0:316 radians (global 4-component vector of float) +0:316 radians (temp 4-component vector of float) 0:316 'inF0' (in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) @@ -1456,13 +1457,13 @@ gl_FragCoord origin is upper left 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) 0:318 'r053' (temp 4-component vector of float) -0:318 reflect (global 4-component vector of float) +0:318 reflect (temp 4-component vector of float) 0:318 'inF0' (in 4-component vector of float) 0:318 'inF1' (in 4-component vector of float) 0:319 Sequence 0:319 move second child to first child (temp 4-component vector of float) 0:319 'r054' (temp 4-component vector of float) -0:319 refract (global 4-component vector of float) +0:319 refract (temp 4-component vector of float) 0:319 'inF0' (in 4-component vector of float) 0:319 'inF1' (in 4-component vector of float) 0:319 Constant: @@ -1470,7 +1471,7 @@ gl_FragCoord origin is upper left 0:320 Sequence 0:320 move second child to first child (temp 4-component vector of uint) 0:320 'r055' (temp 4-component vector of uint) -0:? bitFieldReverse (global 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) @@ -1479,12 +1480,12 @@ gl_FragCoord origin is upper left 0:321 Sequence 0:321 move second child to first child (temp 4-component vector of float) 0:321 'r056' (temp 4-component vector of float) -0:321 roundEven (global 4-component vector of float) +0:321 roundEven (temp 4-component vector of float) 0:321 'inF0' (in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) 0:322 'r057' (temp 4-component vector of float) -0:322 inverse sqrt (global 4-component vector of float) +0:322 inverse sqrt (temp 4-component vector of float) 0:322 'inF0' (in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) @@ -1498,12 +1499,12 @@ gl_FragCoord origin is upper left 0:324 Sequence 0:324 move second child to first child (temp 4-component vector of float) 0:324 'r059' (temp 4-component vector of float) -0:324 Sign (global 4-component vector of float) +0:324 Sign (temp 4-component vector of float) 0:324 'inF0' (in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) 0:325 'r060' (temp 4-component vector of float) -0:325 sine (global 4-component vector of float) +0:325 sine (temp 4-component vector of float) 0:325 'inF0' (in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) @@ -1517,40 +1518,40 @@ gl_FragCoord origin is upper left 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) 0:327 'r061' (temp 4-component vector of float) -0:327 hyp. sine (global 4-component vector of float) +0:327 hyp. sine (temp 4-component vector of float) 0:327 'inF0' (in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) 0:328 'r062' (temp 4-component vector of float) -0:328 smoothstep (global 4-component vector of float) +0:328 smoothstep (temp 4-component vector of float) 0:328 'inF0' (in 4-component vector of float) 0:328 'inF1' (in 4-component vector of float) 0:328 'inF2' (in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) 0:329 'r063' (temp 4-component vector of float) -0:329 sqrt (global 4-component vector of float) +0:329 sqrt (temp 4-component vector of float) 0:329 'inF0' (in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) 0:330 'r064' (temp 4-component vector of float) -0:330 step (global 4-component vector of float) +0:330 step (temp 4-component vector of float) 0:330 'inF0' (in 4-component vector of float) 0:330 'inF1' (in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) 0:331 'r065' (temp 4-component vector of float) -0:331 tangent (global 4-component vector of float) +0:331 tangent (temp 4-component vector of float) 0:331 'inF0' (in 4-component vector of float) 0:332 Sequence 0:332 move second child to first child (temp 4-component vector of float) 0:332 'r066' (temp 4-component vector of float) -0:332 hyp. tangent (global 4-component vector of float) +0:332 hyp. tangent (temp 4-component vector of float) 0:332 'inF0' (in 4-component vector of float) 0:334 Sequence 0:334 move second child to first child (temp 4-component vector of float) 0:334 'r067' (temp 4-component vector of float) -0:334 trunc (global 4-component vector of float) +0:334 trunc (temp 4-component vector of float) 0:334 'inF0' (in 4-component vector of float) 0:337 Branch: Return with expression 0:? Constant: @@ -1558,7 +1559,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) 0:401 'inF1' (in 2X2 matrix of float) @@ -1567,40 +1568,40 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp bool) 0:403 'r000' (temp bool) -0:403 all (global bool) +0:403 all (temp bool) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r001' (temp 2X2 matrix of float) -0:403 Absolute value (global 2X2 matrix of float) +0:403 Absolute value (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) -0:403 arc cosine (global 2X2 matrix of float) +0:403 arc cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp bool) 0:403 'r003' (temp bool) -0:403 any (global bool) +0:403 any (temp bool) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r004' (temp 2X2 matrix of float) -0:403 arc sine (global 2X2 matrix of float) +0:403 arc sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r005' (temp 2X2 matrix of float) -0:403 arc tangent (global 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r006' (temp 2X2 matrix of float) -0:403 arc tangent (global 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r007' (temp 2X2 matrix of float) -0:403 Ceiling (global 2X2 matrix of float) +0:403 Ceiling (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Test condition and select (temp void) 0:403 Condition @@ -1617,114 +1618,114 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r008' (temp 2X2 matrix of float) -0:403 clamp (global 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r009' (temp 2X2 matrix of float) -0:403 cosine (global 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r010' (temp 2X2 matrix of float) -0:403 hyp. cosine (global 2X2 matrix of float) +0:403 hyp. cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r011' (temp 2X2 matrix of float) -0:403 dPdx (global 2X2 matrix of float) +0:403 dPdx (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r012' (temp 2X2 matrix of float) -0:403 dPdxCoarse (global 2X2 matrix of float) +0:403 dPdxCoarse (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r013' (temp 2X2 matrix of float) -0:403 dPdxFine (global 2X2 matrix of float) +0:403 dPdxFine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r014' (temp 2X2 matrix of float) -0:403 dPdy (global 2X2 matrix of float) +0:403 dPdy (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r015' (temp 2X2 matrix of float) -0:403 dPdyCoarse (global 2X2 matrix of float) +0:403 dPdyCoarse (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r016' (temp 2X2 matrix of float) -0:403 dPdyFine (global 2X2 matrix of float) +0:403 dPdyFine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r017' (temp 2X2 matrix of float) -0:403 degrees (global 2X2 matrix of float) +0:403 degrees (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp float) 0:403 'r018' (temp float) -0:403 determinant (global float) +0:403 determinant (temp float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r019' (temp 2X2 matrix of float) -0:403 exp (global 2X2 matrix of float) +0:403 exp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'R020' (temp 2X2 matrix of float) -0:403 exp2 (global 2X2 matrix of float) +0:403 exp2 (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r021' (temp 2X2 matrix of float) -0:403 Floor (global 2X2 matrix of float) +0:403 Floor (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r022' (temp 2X2 matrix of float) -0:403 mod (global 2X2 matrix of float) +0:403 mod (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r023' (temp 2X2 matrix of float) -0:403 Fraction (global 2X2 matrix of float) +0:403 Fraction (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r024' (temp 2X2 matrix of float) -0:403 frexp (global 2X2 matrix of float) +0:403 frexp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r025' (temp 2X2 matrix of float) -0:403 fwidth (global 2X2 matrix of float) +0:403 fwidth (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r026' (temp 2X2 matrix of float) -0:403 ldexp (global 2X2 matrix of float) +0:403 ldexp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r026a' (temp 2X2 matrix of float) -0:403 mix (global 2X2 matrix of float) +0:403 mix (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r027' (temp 2X2 matrix of float) -0:403 log (global 2X2 matrix of float) +0:403 log (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -1737,40 +1738,40 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r029' (temp 2X2 matrix of float) -0:403 log2 (global 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r030' (temp 2X2 matrix of float) -0:403 max (global 2X2 matrix of float) +0:403 max (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r031' (temp 2X2 matrix of float) -0:403 min (global 2X2 matrix of float) +0:403 min (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r032' (temp 2X2 matrix of float) -0:403 pow (global 2X2 matrix of float) +0:403 pow (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r033' (temp 2X2 matrix of float) -0:403 radians (global 2X2 matrix of float) +0:403 radians (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r034' (temp 2X2 matrix of float) -0:403 roundEven (global 2X2 matrix of float) +0:403 roundEven (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r035' (temp 2X2 matrix of float) -0:403 inverse sqrt (global 2X2 matrix of float) +0:403 inverse sqrt (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -1784,12 +1785,12 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r037' (temp 2X2 matrix of float) -0:403 Sign (global 2X2 matrix of float) +0:403 Sign (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r038' (temp 2X2 matrix of float) -0:403 sine (global 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -1803,42 +1804,42 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r039' (temp 2X2 matrix of float) -0:403 hyp. sine (global 2X2 matrix of float) +0:403 hyp. sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r049' (temp 2X2 matrix of float) -0:403 smoothstep (global 2X2 matrix of float) +0:403 smoothstep (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r041' (temp 2X2 matrix of float) -0:403 sqrt (global 2X2 matrix of float) +0:403 sqrt (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r042' (temp 2X2 matrix of float) -0:403 step (global 2X2 matrix of float) +0:403 step (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r043' (temp 2X2 matrix of float) -0:403 tangent (global 2X2 matrix of float) +0:403 tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r044' (temp 2X2 matrix of float) -0:403 hyp. tangent (global 2X2 matrix of float) +0:403 hyp. tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) -0:403 transpose (global 2X2 matrix of float) +0:403 transpose (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r046' (temp 2X2 matrix of float) -0:403 trunc (global 2X2 matrix of float) +0:403 trunc (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:406 Branch: Return with expression 0:? Constant: @@ -1846,7 +1847,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:410 Function Parameters: 0:410 'inF0' (in 3X3 matrix of float) 0:410 'inF1' (in 3X3 matrix of float) @@ -1855,40 +1856,40 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp bool) 0:412 'r000' (temp bool) -0:412 all (global bool) +0:412 all (temp bool) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r001' (temp 3X3 matrix of float) -0:412 Absolute value (global 3X3 matrix of float) +0:412 Absolute value (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) -0:412 arc cosine (global 3X3 matrix of float) +0:412 arc cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp bool) 0:412 'r003' (temp bool) -0:412 any (global bool) +0:412 any (temp bool) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r004' (temp 3X3 matrix of float) -0:412 arc sine (global 3X3 matrix of float) +0:412 arc sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r005' (temp 3X3 matrix of float) -0:412 arc tangent (global 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r006' (temp 3X3 matrix of float) -0:412 arc tangent (global 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r007' (temp 3X3 matrix of float) -0:412 Ceiling (global 3X3 matrix of float) +0:412 Ceiling (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Test condition and select (temp void) 0:412 Condition @@ -1910,114 +1911,114 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r008' (temp 3X3 matrix of float) -0:412 clamp (global 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r009' (temp 3X3 matrix of float) -0:412 cosine (global 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r010' (temp 3X3 matrix of float) -0:412 hyp. cosine (global 3X3 matrix of float) +0:412 hyp. cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r011' (temp 3X3 matrix of float) -0:412 dPdx (global 3X3 matrix of float) +0:412 dPdx (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r012' (temp 3X3 matrix of float) -0:412 dPdxCoarse (global 3X3 matrix of float) +0:412 dPdxCoarse (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r013' (temp 3X3 matrix of float) -0:412 dPdxFine (global 3X3 matrix of float) +0:412 dPdxFine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r014' (temp 3X3 matrix of float) -0:412 dPdy (global 3X3 matrix of float) +0:412 dPdy (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r015' (temp 3X3 matrix of float) -0:412 dPdyCoarse (global 3X3 matrix of float) +0:412 dPdyCoarse (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r016' (temp 3X3 matrix of float) -0:412 dPdyFine (global 3X3 matrix of float) +0:412 dPdyFine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r017' (temp 3X3 matrix of float) -0:412 degrees (global 3X3 matrix of float) +0:412 degrees (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp float) 0:412 'r018' (temp float) -0:412 determinant (global float) +0:412 determinant (temp float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r019' (temp 3X3 matrix of float) -0:412 exp (global 3X3 matrix of float) +0:412 exp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'R020' (temp 3X3 matrix of float) -0:412 exp2 (global 3X3 matrix of float) +0:412 exp2 (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r021' (temp 3X3 matrix of float) -0:412 Floor (global 3X3 matrix of float) +0:412 Floor (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r022' (temp 3X3 matrix of float) -0:412 mod (global 3X3 matrix of float) +0:412 mod (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r023' (temp 3X3 matrix of float) -0:412 Fraction (global 3X3 matrix of float) +0:412 Fraction (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r024' (temp 3X3 matrix of float) -0:412 frexp (global 3X3 matrix of float) +0:412 frexp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r025' (temp 3X3 matrix of float) -0:412 fwidth (global 3X3 matrix of float) +0:412 fwidth (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r026' (temp 3X3 matrix of float) -0:412 ldexp (global 3X3 matrix of float) +0:412 ldexp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r026a' (temp 3X3 matrix of float) -0:412 mix (global 3X3 matrix of float) +0:412 mix (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r027' (temp 3X3 matrix of float) -0:412 log (global 3X3 matrix of float) +0:412 log (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -2030,40 +2031,40 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r029' (temp 3X3 matrix of float) -0:412 log2 (global 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r030' (temp 3X3 matrix of float) -0:412 max (global 3X3 matrix of float) +0:412 max (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r031' (temp 3X3 matrix of float) -0:412 min (global 3X3 matrix of float) +0:412 min (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r032' (temp 3X3 matrix of float) -0:412 pow (global 3X3 matrix of float) +0:412 pow (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r033' (temp 3X3 matrix of float) -0:412 radians (global 3X3 matrix of float) +0:412 radians (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r034' (temp 3X3 matrix of float) -0:412 roundEven (global 3X3 matrix of float) +0:412 roundEven (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r035' (temp 3X3 matrix of float) -0:412 inverse sqrt (global 3X3 matrix of float) +0:412 inverse sqrt (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -2077,12 +2078,12 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r037' (temp 3X3 matrix of float) -0:412 Sign (global 3X3 matrix of float) +0:412 Sign (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r038' (temp 3X3 matrix of float) -0:412 sine (global 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -2096,42 +2097,42 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r039' (temp 3X3 matrix of float) -0:412 hyp. sine (global 3X3 matrix of float) +0:412 hyp. sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r049' (temp 3X3 matrix of float) -0:412 smoothstep (global 3X3 matrix of float) +0:412 smoothstep (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r041' (temp 3X3 matrix of float) -0:412 sqrt (global 3X3 matrix of float) +0:412 sqrt (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r042' (temp 3X3 matrix of float) -0:412 step (global 3X3 matrix of float) +0:412 step (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r043' (temp 3X3 matrix of float) -0:412 tangent (global 3X3 matrix of float) +0:412 tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r044' (temp 3X3 matrix of float) -0:412 hyp. tangent (global 3X3 matrix of float) +0:412 hyp. tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) -0:412 transpose (global 3X3 matrix of float) +0:412 transpose (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r046' (temp 3X3 matrix of float) -0:412 trunc (global 3X3 matrix of float) +0:412 trunc (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:415 Branch: Return with expression 0:? Constant: @@ -2144,7 +2145,7 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:419 Function Parameters: 0:419 'inF0' (in 4X4 matrix of float) 0:419 'inF1' (in 4X4 matrix of float) @@ -2153,40 +2154,40 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp bool) 0:421 'r000' (temp bool) -0:421 all (global bool) +0:421 all (temp bool) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r001' (temp 4X4 matrix of float) -0:421 Absolute value (global 4X4 matrix of float) +0:421 Absolute value (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) -0:421 arc cosine (global 4X4 matrix of float) +0:421 arc cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp bool) 0:421 'r003' (temp bool) -0:421 any (global bool) +0:421 any (temp bool) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r004' (temp 4X4 matrix of float) -0:421 arc sine (global 4X4 matrix of float) +0:421 arc sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r005' (temp 4X4 matrix of float) -0:421 arc tangent (global 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r006' (temp 4X4 matrix of float) -0:421 arc tangent (global 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r007' (temp 4X4 matrix of float) -0:421 Ceiling (global 4X4 matrix of float) +0:421 Ceiling (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Test condition and select (temp void) 0:421 Condition @@ -2215,114 +2216,114 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r008' (temp 4X4 matrix of float) -0:421 clamp (global 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r009' (temp 4X4 matrix of float) -0:421 cosine (global 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r010' (temp 4X4 matrix of float) -0:421 hyp. cosine (global 4X4 matrix of float) +0:421 hyp. cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r011' (temp 4X4 matrix of float) -0:421 dPdx (global 4X4 matrix of float) +0:421 dPdx (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r012' (temp 4X4 matrix of float) -0:421 dPdxCoarse (global 4X4 matrix of float) +0:421 dPdxCoarse (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r013' (temp 4X4 matrix of float) -0:421 dPdxFine (global 4X4 matrix of float) +0:421 dPdxFine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r014' (temp 4X4 matrix of float) -0:421 dPdy (global 4X4 matrix of float) +0:421 dPdy (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r015' (temp 4X4 matrix of float) -0:421 dPdyCoarse (global 4X4 matrix of float) +0:421 dPdyCoarse (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r016' (temp 4X4 matrix of float) -0:421 dPdyFine (global 4X4 matrix of float) +0:421 dPdyFine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r017' (temp 4X4 matrix of float) -0:421 degrees (global 4X4 matrix of float) +0:421 degrees (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp float) 0:421 'r018' (temp float) -0:421 determinant (global float) +0:421 determinant (temp float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r019' (temp 4X4 matrix of float) -0:421 exp (global 4X4 matrix of float) +0:421 exp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'R020' (temp 4X4 matrix of float) -0:421 exp2 (global 4X4 matrix of float) +0:421 exp2 (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r021' (temp 4X4 matrix of float) -0:421 Floor (global 4X4 matrix of float) +0:421 Floor (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r022' (temp 4X4 matrix of float) -0:421 mod (global 4X4 matrix of float) +0:421 mod (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r023' (temp 4X4 matrix of float) -0:421 Fraction (global 4X4 matrix of float) +0:421 Fraction (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r024' (temp 4X4 matrix of float) -0:421 frexp (global 4X4 matrix of float) +0:421 frexp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r025' (temp 4X4 matrix of float) -0:421 fwidth (global 4X4 matrix of float) +0:421 fwidth (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r026' (temp 4X4 matrix of float) -0:421 ldexp (global 4X4 matrix of float) +0:421 ldexp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r026a' (temp 4X4 matrix of float) -0:421 mix (global 4X4 matrix of float) +0:421 mix (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r027' (temp 4X4 matrix of float) -0:421 log (global 4X4 matrix of float) +0:421 log (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -2335,40 +2336,40 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r029' (temp 4X4 matrix of float) -0:421 log2 (global 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r030' (temp 4X4 matrix of float) -0:421 max (global 4X4 matrix of float) +0:421 max (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r031' (temp 4X4 matrix of float) -0:421 min (global 4X4 matrix of float) +0:421 min (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r032' (temp 4X4 matrix of float) -0:421 pow (global 4X4 matrix of float) +0:421 pow (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r033' (temp 4X4 matrix of float) -0:421 radians (global 4X4 matrix of float) +0:421 radians (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r034' (temp 4X4 matrix of float) -0:421 roundEven (global 4X4 matrix of float) +0:421 roundEven (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r035' (temp 4X4 matrix of float) -0:421 inverse sqrt (global 4X4 matrix of float) +0:421 inverse sqrt (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -2382,12 +2383,12 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r037' (temp 4X4 matrix of float) -0:421 Sign (global 4X4 matrix of float) +0:421 Sign (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r038' (temp 4X4 matrix of float) -0:421 sine (global 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -2401,42 +2402,42 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r039' (temp 4X4 matrix of float) -0:421 hyp. sine (global 4X4 matrix of float) +0:421 hyp. sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r049' (temp 4X4 matrix of float) -0:421 smoothstep (global 4X4 matrix of float) +0:421 smoothstep (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r041' (temp 4X4 matrix of float) -0:421 sqrt (global 4X4 matrix of float) +0:421 sqrt (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r042' (temp 4X4 matrix of float) -0:421 step (global 4X4 matrix of float) +0:421 step (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r043' (temp 4X4 matrix of float) -0:421 tangent (global 4X4 matrix of float) +0:421 tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r044' (temp 4X4 matrix of float) -0:421 hyp. tangent (global 4X4 matrix of float) +0:421 hyp. tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) -0:421 transpose (global 4X4 matrix of float) +0:421 transpose (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r046' (temp 4X4 matrix of float) -0:421 trunc (global 4X4 matrix of float) +0:421 trunc (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:424 Branch: Return with expression 0:? Constant: @@ -2456,7 +2457,7 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:442 Function Parameters: 0:442 'inF0' (in float) 0:442 'inF1' (in float) @@ -2486,7 +2487,7 @@ gl_FragCoord origin is upper left 0:443 Sequence 0:443 move second child to first child (temp float) 0:443 'r3' (temp float) -0:443 dot-product (global float) +0:443 dot-product (temp float) 0:443 'inFV0' (in 2-component vector of float) 0:443 'inFV1' (in 2-component vector of float) 0:443 Sequence @@ -2519,7 +2520,7 @@ gl_FragCoord origin is upper left 0:443 matrix-multiply (temp 2X2 matrix of float) 0:443 'inFM1' (in 2X2 matrix of float) 0:443 'inFM0' (in 2X2 matrix of float) -0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:449 Function Parameters: 0:449 'inF0' (in float) 0:449 'inF1' (in float) @@ -2549,7 +2550,7 @@ gl_FragCoord origin is upper left 0:450 Sequence 0:450 move second child to first child (temp float) 0:450 'r3' (temp float) -0:450 dot-product (global float) +0:450 dot-product (temp float) 0:450 'inFV0' (in 3-component vector of float) 0:450 'inFV1' (in 3-component vector of float) 0:450 Sequence @@ -2582,7 +2583,7 @@ gl_FragCoord origin is upper left 0:450 matrix-multiply (temp 3X3 matrix of float) 0:450 'inFM1' (in 3X3 matrix of float) 0:450 'inFM0' (in 3X3 matrix of float) -0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:456 Function Parameters: 0:456 'inF0' (in float) 0:456 'inF1' (in float) @@ -2612,7 +2613,7 @@ gl_FragCoord origin is upper left 0:457 Sequence 0:457 move second child to first child (temp float) 0:457 'r3' (temp float) -0:457 dot-product (global float) +0:457 dot-product (temp float) 0:457 'inFV0' (in 4-component vector of float) 0:457 'inFV1' (in 4-component vector of float) 0:457 Sequence @@ -2645,7 +2646,7 @@ gl_FragCoord origin is upper left 0:457 matrix-multiply (temp 4X4 matrix of float) 0:457 'inFM1' (in 4X4 matrix of float) 0:457 'inFM0' (in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) 0:466 Function Parameters: 0:466 'inF0' (in float) 0:466 'inF1' (in float) @@ -2690,13 +2691,13 @@ gl_FragCoord origin is upper left 0:472 Sequence 0:472 move second child to first child (temp float) 0:472 'r05' (temp float) -0:472 dot-product (global float) +0:472 dot-product (temp float) 0:472 'inFV2' (in 2-component vector of float) 0:472 'inFV2' (in 2-component vector of float) 0:473 Sequence 0:473 move second child to first child (temp float) 0:473 'r06' (temp float) -0:473 dot-product (global float) +0:473 dot-product (temp float) 0:473 'inFV3' (in 3-component vector of float) 0:473 'inFV3' (in 3-component vector of float) 0:474 Sequence @@ -2759,7 +2760,7 @@ gl_FragCoord origin is upper left 0:483 matrix-multiply (temp 3X4 matrix of float) 0:483 'inFM2x4' (in 2X4 matrix of float) 0:483 'inFM3x2' (in 3X2 matrix of float) -0:489 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:489 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:489 Function Parameters: 0:? Sequence 0:491 move second child to first child (temp 4-component vector of float) @@ -2772,8 +2773,8 @@ gl_FragCoord origin is upper left 0:491 1.000000 0:491 1.000000 0:491 1.000000 -0:? Sequence -0:? Sequence +0:492 Sequence +0:492 Sequence 0:492 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:492 color: direct index for structure (temp 4-component vector of float) @@ -2782,19 +2783,19 @@ gl_FragCoord origin is upper left 0:492 0 (const int) 0:492 Branch: Return 0:? Linker Objects -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -0:? 'gs_ua2' (global 2-component vector of uint) -0:? 'gs_ub2' (global 2-component vector of uint) -0:? 'gs_uc2' (global 2-component vector of uint) -0:? 'gs_ua3' (global 3-component vector of uint) -0:? 'gs_ub3' (global 3-component vector of uint) -0:? 'gs_uc3' (global 3-component vector of uint) -0:? 'gs_ua4' (global 4-component vector of uint) -0:? 'gs_ub4' (global 4-component vector of uint) -0:? 'gs_uc4' (global 4-component vector of uint) 0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) Linked fragment stage: @@ -2803,7 +2804,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:17 Function Definition: PixelShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:17 Function Parameters: 0:17 'inF0' (in float) 0:17 'inF1' (in float) @@ -2814,63 +2815,63 @@ gl_FragCoord origin is upper left 0:20 Sequence 0:20 move second child to first child (temp bool) 0:20 'r000' (temp bool) -0:20 all (global bool) +0:20 all (temp bool) 0:20 'inF0' (in float) 0:21 Sequence 0:21 move second child to first child (temp float) 0:21 'r001' (temp float) -0:21 Absolute value (global float) +0:21 Absolute value (temp float) 0:21 'inF0' (in float) 0:22 Sequence 0:22 move second child to first child (temp float) 0:22 'r002' (temp float) -0:22 arc cosine (global float) +0:22 arc cosine (temp float) 0:22 'inF0' (in float) 0:23 Sequence 0:23 move second child to first child (temp bool) 0:23 'r003' (temp bool) -0:23 any (global bool) +0:23 any (temp bool) 0:23 'inF0' (in float) 0:24 Sequence 0:24 move second child to first child (temp float) 0:24 'r004' (temp float) -0:24 arc sine (global float) +0:24 arc sine (temp float) 0:24 'inF0' (in float) 0:25 Sequence 0:25 move second child to first child (temp int) 0:25 'r005' (temp int) -0:25 floatBitsToInt (global int) +0:25 floatBitsToInt (temp int) 0:25 'inF0' (in float) 0:26 Sequence 0:26 move second child to first child (temp uint) 0:26 'r006' (temp uint) -0:26 floatBitsToUint (global uint) +0:26 floatBitsToUint (temp uint) 0:26 'inF0' (in float) 0:27 Sequence 0:27 move second child to first child (temp float) 0:27 'r007' (temp float) -0:27 intBitsToFloat (global float) +0:27 intBitsToFloat (temp float) 0:27 'inU0' (in uint) 0:29 Sequence 0:29 move second child to first child (temp float) 0:29 'r009' (temp float) -0:29 arc tangent (global float) +0:29 arc tangent (temp float) 0:29 'inF0' (in float) 0:30 Sequence 0:30 move second child to first child (temp float) 0:30 'r010' (temp float) -0:30 arc tangent (global float) +0:30 arc tangent (temp float) 0:30 'inF0' (in float) 0:30 'inF1' (in float) 0:31 Sequence 0:31 move second child to first child (temp float) 0:31 'r011' (temp float) -0:31 Ceiling (global float) +0:31 Ceiling (temp float) 0:31 'inF0' (in float) 0:32 Sequence 0:32 move second child to first child (temp float) 0:32 'r012' (temp float) -0:32 clamp (global float) +0:32 clamp (temp float) 0:32 'inF0' (in float) 0:32 'inF1' (in float) 0:32 'inF2' (in float) @@ -2885,132 +2886,132 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp float) 0:34 'r014' (temp float) -0:34 cosine (global float) +0:34 cosine (temp float) 0:34 'inF0' (in float) 0:35 Sequence 0:35 move second child to first child (temp float) 0:35 'r015' (temp float) -0:35 hyp. cosine (global float) +0:35 hyp. cosine (temp float) 0:35 'inF0' (in float) 0:36 Sequence -0:36 move second child to first child (temp uint) -0:36 'r016' (temp uint) -0:36 bitCount (global uint) +0:36 move second child to first child (temp int) +0:36 'r016' (temp int) +0:36 bitCount (temp int) 0:36 Constant: -0:36 7 (const uint) +0:36 7 (const int) 0:37 Sequence 0:37 move second child to first child (temp float) 0:37 'r017' (temp float) -0:37 dPdx (global float) +0:37 dPdx (temp float) 0:37 'inF0' (in float) 0:38 Sequence 0:38 move second child to first child (temp float) 0:38 'r018' (temp float) -0:38 dPdxCoarse (global float) +0:38 dPdxCoarse (temp float) 0:38 'inF0' (in float) 0:39 Sequence 0:39 move second child to first child (temp float) 0:39 'r019' (temp float) -0:39 dPdxFine (global float) +0:39 dPdxFine (temp float) 0:39 'inF0' (in float) 0:40 Sequence 0:40 move second child to first child (temp float) 0:40 'r020' (temp float) -0:40 dPdy (global float) +0:40 dPdy (temp float) 0:40 'inF0' (in float) 0:41 Sequence 0:41 move second child to first child (temp float) 0:41 'r021' (temp float) -0:41 dPdyCoarse (global float) +0:41 dPdyCoarse (temp float) 0:41 'inF0' (in float) 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r022' (temp float) -0:42 dPdyFine (global float) +0:42 dPdyFine (temp float) 0:42 'inF0' (in float) 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r023' (temp float) -0:43 degrees (global float) +0:43 degrees (temp float) 0:43 'inF0' (in float) 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r027' (temp float) -0:47 exp (global float) +0:47 exp (temp float) 0:47 'inF0' (in float) 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r028' (temp float) -0:48 exp2 (global float) +0:48 exp2 (temp float) 0:48 'inF0' (in float) 0:49 Sequence 0:49 move second child to first child (temp uint) 0:49 'r029' (temp uint) 0:49 Convert int to uint (temp uint) -0:49 findMSB (global int) +0:49 findMSB (temp int) 0:49 Constant: 0:49 7 (const int) 0:50 Sequence 0:50 move second child to first child (temp uint) 0:50 'r030' (temp uint) 0:50 Convert int to uint (temp uint) -0:50 findLSB (global int) +0:50 findLSB (temp int) 0:50 Constant: 0:50 7 (const int) 0:51 Sequence 0:51 move second child to first child (temp float) 0:51 'r031' (temp float) -0:51 Floor (global float) +0:51 Floor (temp float) 0:51 'inF0' (in float) 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r033' (temp float) -0:53 mod (global float) +0:53 mod (temp float) 0:53 'inF0' (in float) 0:53 'inF1' (in float) 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r034' (temp float) -0:54 Fraction (global float) +0:54 Fraction (temp float) 0:54 'inF0' (in float) 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r035' (temp float) -0:55 frexp (global float) +0:55 frexp (temp float) 0:55 'inF0' (in float) 0:55 'inF1' (in float) 0:56 Sequence 0:56 move second child to first child (temp float) 0:56 'r036' (temp float) -0:56 fwidth (global float) +0:56 fwidth (temp float) 0:56 'inF0' (in float) 0:57 Sequence 0:57 move second child to first child (temp bool) 0:57 'r037' (temp bool) -0:57 isinf (global bool) +0:57 isinf (temp bool) 0:57 'inF0' (in float) 0:58 Sequence 0:58 move second child to first child (temp bool) 0:58 'r038' (temp bool) -0:58 isnan (global bool) +0:58 isnan (temp bool) 0:58 'inF0' (in float) 0:59 Sequence 0:59 move second child to first child (temp float) 0:59 'r039' (temp float) -0:59 ldexp (global float) +0:59 ldexp (temp float) 0:59 'inF0' (in float) 0:59 'inF1' (in float) 0:60 Sequence 0:60 move second child to first child (temp float) 0:60 'r039a' (temp float) -0:60 mix (global float) +0:60 mix (temp float) 0:60 'inF0' (in float) 0:60 'inF1' (in float) 0:60 'inF2' (in float) 0:61 Sequence 0:61 move second child to first child (temp float) 0:61 'r040' (temp float) -0:61 log (global float) +0:61 log (temp float) 0:61 'inF0' (in float) 0:62 Sequence 0:62 move second child to first child (temp float) @@ -3023,30 +3024,30 @@ gl_FragCoord origin is upper left 0:63 Sequence 0:63 move second child to first child (temp float) 0:63 'r042' (temp float) -0:63 log2 (global float) +0:63 log2 (temp float) 0:63 'inF0' (in float) 0:64 Sequence 0:64 move second child to first child (temp float) 0:64 'r043' (temp float) -0:64 max (global float) +0:64 max (temp float) 0:64 'inF0' (in float) 0:64 'inF1' (in float) 0:65 Sequence 0:65 move second child to first child (temp float) 0:65 'r044' (temp float) -0:65 min (global float) +0:65 min (temp float) 0:65 'inF0' (in float) 0:65 'inF1' (in float) 0:66 Sequence 0:66 move second child to first child (temp float) 0:66 'r045' (temp float) -0:66 pow (global float) +0:66 pow (temp float) 0:66 'inF0' (in float) 0:66 'inF1' (in float) 0:67 Sequence 0:67 move second child to first child (temp float) 0:67 'r046' (temp float) -0:67 radians (global float) +0:67 radians (temp float) 0:67 'inF0' (in float) 0:68 Sequence 0:68 move second child to first child (temp float) @@ -3058,18 +3059,19 @@ gl_FragCoord origin is upper left 0:69 Sequence 0:69 move second child to first child (temp uint) 0:69 'r048' (temp uint) -0:69 bitFieldReverse (global uint) -0:69 Constant: -0:69 2 (const uint) +0:69 Convert int to uint (temp uint) +0:69 bitFieldReverse (temp int) +0:69 Constant: +0:69 2 (const int) 0:70 Sequence 0:70 move second child to first child (temp float) 0:70 'r049' (temp float) -0:70 roundEven (global float) +0:70 roundEven (temp float) 0:70 'inF0' (in float) 0:71 Sequence 0:71 move second child to first child (temp float) 0:71 'r050' (temp float) -0:71 inverse sqrt (global float) +0:71 inverse sqrt (temp float) 0:71 'inF0' (in float) 0:72 Sequence 0:72 move second child to first child (temp float) @@ -3083,12 +3085,12 @@ gl_FragCoord origin is upper left 0:73 Sequence 0:73 move second child to first child (temp float) 0:73 'r052' (temp float) -0:73 Sign (global float) +0:73 Sign (temp float) 0:73 'inF0' (in float) 0:74 Sequence 0:74 move second child to first child (temp float) 0:74 'r053' (temp float) -0:74 sine (global float) +0:74 sine (temp float) 0:74 'inF0' (in float) 0:75 Sequence 0:75 move second child to first child (temp float) @@ -3102,45 +3104,45 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp float) 0:76 'r055' (temp float) -0:76 hyp. sine (global float) +0:76 hyp. sine (temp float) 0:76 'inF0' (in float) 0:77 Sequence 0:77 move second child to first child (temp float) 0:77 'r056' (temp float) -0:77 smoothstep (global float) +0:77 smoothstep (temp float) 0:77 'inF0' (in float) 0:77 'inF1' (in float) 0:77 'inF2' (in float) 0:78 Sequence 0:78 move second child to first child (temp float) 0:78 'r057' (temp float) -0:78 sqrt (global float) +0:78 sqrt (temp float) 0:78 'inF0' (in float) 0:79 Sequence 0:79 move second child to first child (temp float) 0:79 'r058' (temp float) -0:79 step (global float) +0:79 step (temp float) 0:79 'inF0' (in float) 0:79 'inF1' (in float) 0:80 Sequence 0:80 move second child to first child (temp float) 0:80 'r059' (temp float) -0:80 tangent (global float) +0:80 tangent (temp float) 0:80 'inF0' (in float) 0:81 Sequence 0:81 move second child to first child (temp float) 0:81 'r060' (temp float) -0:81 hyp. tangent (global float) +0:81 hyp. tangent (temp float) 0:81 'inF0' (in float) 0:83 Sequence 0:83 move second child to first child (temp float) 0:83 'r061' (temp float) -0:83 trunc (global float) +0:83 trunc (temp float) 0:83 'inF0' (in float) 0:85 Branch: Return with expression 0:85 Constant: 0:85 0.000000 -0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:89 Function Definition: PixelShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:89 Function Parameters: 0:89 'inF0' (in 1-component vector of float) 0:89 'inF1' (in 1-component vector of float) @@ -3149,7 +3151,7 @@ gl_FragCoord origin is upper left 0:91 Branch: Return with expression 0:91 Constant: 0:91 0.000000 -0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:95 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:95 Function Parameters: 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) @@ -3160,63 +3162,63 @@ gl_FragCoord origin is upper left 0:98 Sequence 0:98 move second child to first child (temp bool) 0:98 'r000' (temp bool) -0:98 all (global bool) +0:98 all (temp bool) 0:98 'inF0' (in 2-component vector of float) 0:99 Sequence 0:99 move second child to first child (temp 2-component vector of float) 0:99 'r001' (temp 2-component vector of float) -0:99 Absolute value (global 2-component vector of float) +0:99 Absolute value (temp 2-component vector of float) 0:99 'inF0' (in 2-component vector of float) 0:100 Sequence 0:100 move second child to first child (temp 2-component vector of float) 0:100 'r002' (temp 2-component vector of float) -0:100 arc cosine (global 2-component vector of float) +0:100 arc cosine (temp 2-component vector of float) 0:100 'inF0' (in 2-component vector of float) 0:101 Sequence 0:101 move second child to first child (temp bool) 0:101 'r003' (temp bool) -0:101 any (global bool) +0:101 any (temp bool) 0:101 'inF0' (in 2-component vector of float) 0:102 Sequence 0:102 move second child to first child (temp 2-component vector of float) 0:102 'r004' (temp 2-component vector of float) -0:102 arc sine (global 2-component vector of float) +0:102 arc sine (temp 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) 0:103 Sequence 0:103 move second child to first child (temp 2-component vector of int) 0:103 'r005' (temp 2-component vector of int) -0:103 floatBitsToInt (global 2-component vector of int) +0:103 floatBitsToInt (temp 2-component vector of int) 0:103 'inF0' (in 2-component vector of float) 0:104 Sequence 0:104 move second child to first child (temp 2-component vector of uint) 0:104 'r006' (temp 2-component vector of uint) -0:104 floatBitsToUint (global 2-component vector of uint) +0:104 floatBitsToUint (temp 2-component vector of uint) 0:104 'inF0' (in 2-component vector of float) 0:105 Sequence 0:105 move second child to first child (temp 2-component vector of float) 0:105 'r007' (temp 2-component vector of float) -0:105 intBitsToFloat (global 2-component vector of float) +0:105 intBitsToFloat (temp 2-component vector of float) 0:105 'inU0' (in 2-component vector of uint) 0:107 Sequence 0:107 move second child to first child (temp 2-component vector of float) 0:107 'r009' (temp 2-component vector of float) -0:107 arc tangent (global 2-component vector of float) +0:107 arc tangent (temp 2-component vector of float) 0:107 'inF0' (in 2-component vector of float) 0:108 Sequence 0:108 move second child to first child (temp 2-component vector of float) 0:108 'r010' (temp 2-component vector of float) -0:108 arc tangent (global 2-component vector of float) +0:108 arc tangent (temp 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) 0:108 'inF1' (in 2-component vector of float) 0:109 Sequence 0:109 move second child to first child (temp 2-component vector of float) 0:109 'r011' (temp 2-component vector of float) -0:109 Ceiling (global 2-component vector of float) +0:109 Ceiling (temp 2-component vector of float) 0:109 'inF0' (in 2-component vector of float) 0:110 Sequence 0:110 move second child to first child (temp 2-component vector of float) 0:110 'r012' (temp 2-component vector of float) -0:110 clamp (global 2-component vector of float) +0:110 clamp (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:110 'inF2' (in 2-component vector of float) @@ -3233,157 +3235,157 @@ gl_FragCoord origin is upper left 0:112 Sequence 0:112 move second child to first child (temp 2-component vector of float) 0:112 'r013' (temp 2-component vector of float) -0:112 cosine (global 2-component vector of float) +0:112 cosine (temp 2-component vector of float) 0:112 'inF0' (in 2-component vector of float) 0:113 Sequence 0:113 move second child to first child (temp 2-component vector of float) 0:113 'r015' (temp 2-component vector of float) -0:113 hyp. cosine (global 2-component vector of float) +0:113 hyp. cosine (temp 2-component vector of float) 0:113 'inF0' (in 2-component vector of float) 0:114 Sequence -0:114 move second child to first child (temp 2-component vector of uint) -0:114 'r016' (temp 2-component vector of uint) -0:? bitCount (global 2-component vector of uint) +0:114 move second child to first child (temp 2-component vector of int) +0:114 'r016' (temp 2-component vector of int) +0:? bitCount (temp 2-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) +0:? 7 (const int) +0:? 3 (const int) 0:115 Sequence 0:115 move second child to first child (temp 2-component vector of float) 0:115 'r017' (temp 2-component vector of float) -0:115 dPdx (global 2-component vector of float) +0:115 dPdx (temp 2-component vector of float) 0:115 'inF0' (in 2-component vector of float) 0:116 Sequence 0:116 move second child to first child (temp 2-component vector of float) 0:116 'r018' (temp 2-component vector of float) -0:116 dPdxCoarse (global 2-component vector of float) +0:116 dPdxCoarse (temp 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) 0:117 Sequence 0:117 move second child to first child (temp 2-component vector of float) 0:117 'r019' (temp 2-component vector of float) -0:117 dPdxFine (global 2-component vector of float) +0:117 dPdxFine (temp 2-component vector of float) 0:117 'inF0' (in 2-component vector of float) 0:118 Sequence 0:118 move second child to first child (temp 2-component vector of float) 0:118 'r020' (temp 2-component vector of float) -0:118 dPdy (global 2-component vector of float) +0:118 dPdy (temp 2-component vector of float) 0:118 'inF0' (in 2-component vector of float) 0:119 Sequence 0:119 move second child to first child (temp 2-component vector of float) 0:119 'r021' (temp 2-component vector of float) -0:119 dPdyCoarse (global 2-component vector of float) +0:119 dPdyCoarse (temp 2-component vector of float) 0:119 'inF0' (in 2-component vector of float) 0:120 Sequence 0:120 move second child to first child (temp 2-component vector of float) 0:120 'r022' (temp 2-component vector of float) -0:120 dPdyFine (global 2-component vector of float) +0:120 dPdyFine (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) 0:121 Sequence 0:121 move second child to first child (temp 2-component vector of float) 0:121 'r023' (temp 2-component vector of float) -0:121 degrees (global 2-component vector of float) +0:121 degrees (temp 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) 0:125 Sequence 0:125 move second child to first child (temp float) 0:125 'r026' (temp float) -0:125 distance (global float) +0:125 distance (temp float) 0:125 'inF0' (in 2-component vector of float) 0:125 'inF1' (in 2-component vector of float) 0:126 Sequence 0:126 move second child to first child (temp float) 0:126 'r027' (temp float) -0:126 dot-product (global float) +0:126 dot-product (temp float) 0:126 'inF0' (in 2-component vector of float) 0:126 'inF1' (in 2-component vector of float) 0:130 Sequence 0:130 move second child to first child (temp 2-component vector of float) 0:130 'r028' (temp 2-component vector of float) -0:130 exp (global 2-component vector of float) +0:130 exp (temp 2-component vector of float) 0:130 'inF0' (in 2-component vector of float) 0:131 Sequence 0:131 move second child to first child (temp 2-component vector of float) 0:131 'r029' (temp 2-component vector of float) -0:131 exp2 (global 2-component vector of float) +0:131 exp2 (temp 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) 0:132 Sequence 0:132 move second child to first child (temp 2-component vector of float) 0:132 'r030' (temp 2-component vector of float) -0:132 face-forward (global 2-component vector of float) +0:132 face-forward (temp 2-component vector of float) 0:132 'inF0' (in 2-component vector of float) 0:132 'inF1' (in 2-component vector of float) 0:132 'inF2' (in 2-component vector of float) 0:133 Sequence 0:133 move second child to first child (temp 2-component vector of uint) 0:133 'r031' (temp 2-component vector of uint) -0:? findMSB (global 2-component vector of uint) +0:? findMSB (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:134 Sequence 0:134 move second child to first child (temp 2-component vector of uint) 0:134 'r032' (temp 2-component vector of uint) -0:? findLSB (global 2-component vector of uint) +0:? findLSB (temp 2-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) 0:135 Sequence 0:135 move second child to first child (temp 2-component vector of float) 0:135 'r033' (temp 2-component vector of float) -0:135 Floor (global 2-component vector of float) +0:135 Floor (temp 2-component vector of float) 0:135 'inF0' (in 2-component vector of float) 0:137 Sequence 0:137 move second child to first child (temp 2-component vector of float) 0:137 'r035' (temp 2-component vector of float) -0:137 mod (global 2-component vector of float) +0:137 mod (temp 2-component vector of float) 0:137 'inF0' (in 2-component vector of float) 0:137 'inF1' (in 2-component vector of float) 0:138 Sequence 0:138 move second child to first child (temp 2-component vector of float) 0:138 'r036' (temp 2-component vector of float) -0:138 Fraction (global 2-component vector of float) +0:138 Fraction (temp 2-component vector of float) 0:138 'inF0' (in 2-component vector of float) 0:139 Sequence 0:139 move second child to first child (temp 2-component vector of float) 0:139 'r037' (temp 2-component vector of float) -0:139 frexp (global 2-component vector of float) +0:139 frexp (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 Sequence 0:140 move second child to first child (temp 2-component vector of float) 0:140 'r038' (temp 2-component vector of float) -0:140 fwidth (global 2-component vector of float) +0:140 fwidth (temp 2-component vector of float) 0:140 'inF0' (in 2-component vector of float) 0:141 Sequence 0:141 move second child to first child (temp 2-component vector of bool) 0:141 'r039' (temp 2-component vector of bool) -0:141 isinf (global 2-component vector of bool) +0:141 isinf (temp 2-component vector of bool) 0:141 'inF0' (in 2-component vector of float) 0:142 Sequence 0:142 move second child to first child (temp 2-component vector of bool) 0:142 'r040' (temp 2-component vector of bool) -0:142 isnan (global 2-component vector of bool) +0:142 isnan (temp 2-component vector of bool) 0:142 'inF0' (in 2-component vector of float) 0:143 Sequence 0:143 move second child to first child (temp 2-component vector of float) 0:143 'r041' (temp 2-component vector of float) -0:143 ldexp (global 2-component vector of float) +0:143 ldexp (temp 2-component vector of float) 0:143 'inF0' (in 2-component vector of float) 0:143 'inF1' (in 2-component vector of float) 0:144 Sequence 0:144 move second child to first child (temp 2-component vector of float) 0:144 'r039a' (temp 2-component vector of float) -0:144 mix (global 2-component vector of float) +0:144 mix (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:144 'inF2' (in 2-component vector of float) 0:145 Sequence 0:145 move second child to first child (temp float) 0:145 'r042' (temp float) -0:145 length (global float) +0:145 length (temp float) 0:145 'inF0' (in 2-component vector of float) 0:146 Sequence 0:146 move second child to first child (temp 2-component vector of float) 0:146 'r043' (temp 2-component vector of float) -0:146 log (global 2-component vector of float) +0:146 log (temp 2-component vector of float) 0:146 'inF0' (in 2-component vector of float) 0:147 Sequence 0:147 move second child to first child (temp 2-component vector of float) @@ -3396,35 +3398,35 @@ gl_FragCoord origin is upper left 0:148 Sequence 0:148 move second child to first child (temp 2-component vector of float) 0:148 'r045' (temp 2-component vector of float) -0:148 log2 (global 2-component vector of float) +0:148 log2 (temp 2-component vector of float) 0:148 'inF0' (in 2-component vector of float) 0:149 Sequence 0:149 move second child to first child (temp 2-component vector of float) 0:149 'r046' (temp 2-component vector of float) -0:149 max (global 2-component vector of float) +0:149 max (temp 2-component vector of float) 0:149 'inF0' (in 2-component vector of float) 0:149 'inF1' (in 2-component vector of float) 0:150 Sequence 0:150 move second child to first child (temp 2-component vector of float) 0:150 'r047' (temp 2-component vector of float) -0:150 min (global 2-component vector of float) +0:150 min (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 Sequence 0:151 move second child to first child (temp 2-component vector of float) 0:151 'r048' (temp 2-component vector of float) -0:151 normalize (global 2-component vector of float) +0:151 normalize (temp 2-component vector of float) 0:151 'inF0' (in 2-component vector of float) 0:152 Sequence 0:152 move second child to first child (temp 2-component vector of float) 0:152 'r049' (temp 2-component vector of float) -0:152 pow (global 2-component vector of float) +0:152 pow (temp 2-component vector of float) 0:152 'inF0' (in 2-component vector of float) 0:152 'inF1' (in 2-component vector of float) 0:153 Sequence 0:153 move second child to first child (temp 2-component vector of float) 0:153 'r050' (temp 2-component vector of float) -0:153 radians (global 2-component vector of float) +0:153 radians (temp 2-component vector of float) 0:153 'inF0' (in 2-component vector of float) 0:154 Sequence 0:154 move second child to first child (temp 2-component vector of float) @@ -3436,13 +3438,13 @@ gl_FragCoord origin is upper left 0:155 Sequence 0:155 move second child to first child (temp 2-component vector of float) 0:155 'r052' (temp 2-component vector of float) -0:155 reflect (global 2-component vector of float) +0:155 reflect (temp 2-component vector of float) 0:155 'inF0' (in 2-component vector of float) 0:155 'inF1' (in 2-component vector of float) 0:156 Sequence 0:156 move second child to first child (temp 2-component vector of float) 0:156 'r053' (temp 2-component vector of float) -0:156 refract (global 2-component vector of float) +0:156 refract (temp 2-component vector of float) 0:156 'inF0' (in 2-component vector of float) 0:156 'inF1' (in 2-component vector of float) 0:156 Constant: @@ -3450,19 +3452,19 @@ gl_FragCoord origin is upper left 0:157 Sequence 0:157 move second child to first child (temp 2-component vector of uint) 0:157 'r054' (temp 2-component vector of uint) -0:? bitFieldReverse (global 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) 0:158 Sequence 0:158 move second child to first child (temp 2-component vector of float) 0:158 'r055' (temp 2-component vector of float) -0:158 roundEven (global 2-component vector of float) +0:158 roundEven (temp 2-component vector of float) 0:158 'inF0' (in 2-component vector of float) 0:159 Sequence 0:159 move second child to first child (temp 2-component vector of float) 0:159 'r056' (temp 2-component vector of float) -0:159 inverse sqrt (global 2-component vector of float) +0:159 inverse sqrt (temp 2-component vector of float) 0:159 'inF0' (in 2-component vector of float) 0:160 Sequence 0:160 move second child to first child (temp 2-component vector of float) @@ -3476,12 +3478,12 @@ gl_FragCoord origin is upper left 0:161 Sequence 0:161 move second child to first child (temp 2-component vector of float) 0:161 'r058' (temp 2-component vector of float) -0:161 Sign (global 2-component vector of float) +0:161 Sign (temp 2-component vector of float) 0:161 'inF0' (in 2-component vector of float) 0:162 Sequence 0:162 move second child to first child (temp 2-component vector of float) 0:162 'r059' (temp 2-component vector of float) -0:162 sine (global 2-component vector of float) +0:162 sine (temp 2-component vector of float) 0:162 'inF0' (in 2-component vector of float) 0:163 Sequence 0:163 move second child to first child (temp 2-component vector of float) @@ -3495,46 +3497,46 @@ gl_FragCoord origin is upper left 0:164 Sequence 0:164 move second child to first child (temp 2-component vector of float) 0:164 'r060' (temp 2-component vector of float) -0:164 hyp. sine (global 2-component vector of float) +0:164 hyp. sine (temp 2-component vector of float) 0:164 'inF0' (in 2-component vector of float) 0:165 Sequence 0:165 move second child to first child (temp 2-component vector of float) 0:165 'r061' (temp 2-component vector of float) -0:165 smoothstep (global 2-component vector of float) +0:165 smoothstep (temp 2-component vector of float) 0:165 'inF0' (in 2-component vector of float) 0:165 'inF1' (in 2-component vector of float) 0:165 'inF2' (in 2-component vector of float) 0:166 Sequence 0:166 move second child to first child (temp 2-component vector of float) 0:166 'r062' (temp 2-component vector of float) -0:166 sqrt (global 2-component vector of float) +0:166 sqrt (temp 2-component vector of float) 0:166 'inF0' (in 2-component vector of float) 0:167 Sequence 0:167 move second child to first child (temp 2-component vector of float) 0:167 'r063' (temp 2-component vector of float) -0:167 step (global 2-component vector of float) +0:167 step (temp 2-component vector of float) 0:167 'inF0' (in 2-component vector of float) 0:167 'inF1' (in 2-component vector of float) 0:168 Sequence 0:168 move second child to first child (temp 2-component vector of float) 0:168 'r064' (temp 2-component vector of float) -0:168 tangent (global 2-component vector of float) +0:168 tangent (temp 2-component vector of float) 0:168 'inF0' (in 2-component vector of float) 0:169 Sequence 0:169 move second child to first child (temp 2-component vector of float) 0:169 'r065' (temp 2-component vector of float) -0:169 hyp. tangent (global 2-component vector of float) +0:169 hyp. tangent (temp 2-component vector of float) 0:169 'inF0' (in 2-component vector of float) 0:171 Sequence 0:171 move second child to first child (temp 2-component vector of float) 0:171 'r066' (temp 2-component vector of float) -0:171 trunc (global 2-component vector of float) +0:171 trunc (temp 2-component vector of float) 0:171 'inF0' (in 2-component vector of float) 0:174 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:178 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:178 Function Parameters: 0:178 'inF0' (in 3-component vector of float) 0:178 'inF1' (in 3-component vector of float) @@ -3545,63 +3547,63 @@ gl_FragCoord origin is upper left 0:181 Sequence 0:181 move second child to first child (temp bool) 0:181 'r000' (temp bool) -0:181 all (global bool) +0:181 all (temp bool) 0:181 'inF0' (in 3-component vector of float) 0:182 Sequence 0:182 move second child to first child (temp 3-component vector of float) 0:182 'r001' (temp 3-component vector of float) -0:182 Absolute value (global 3-component vector of float) +0:182 Absolute value (temp 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) 0:183 Sequence 0:183 move second child to first child (temp 3-component vector of float) 0:183 'r002' (temp 3-component vector of float) -0:183 arc cosine (global 3-component vector of float) +0:183 arc cosine (temp 3-component vector of float) 0:183 'inF0' (in 3-component vector of float) 0:184 Sequence 0:184 move second child to first child (temp bool) 0:184 'r003' (temp bool) -0:184 any (global bool) +0:184 any (temp bool) 0:184 'inF0' (in 3-component vector of float) 0:185 Sequence 0:185 move second child to first child (temp 3-component vector of float) 0:185 'r004' (temp 3-component vector of float) -0:185 arc sine (global 3-component vector of float) +0:185 arc sine (temp 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) 0:186 Sequence 0:186 move second child to first child (temp 3-component vector of int) 0:186 'r005' (temp 3-component vector of int) -0:186 floatBitsToInt (global 3-component vector of int) +0:186 floatBitsToInt (temp 3-component vector of int) 0:186 'inF0' (in 3-component vector of float) 0:187 Sequence 0:187 move second child to first child (temp 3-component vector of uint) 0:187 'r006' (temp 3-component vector of uint) -0:187 floatBitsToUint (global 3-component vector of uint) +0:187 floatBitsToUint (temp 3-component vector of uint) 0:187 'inF0' (in 3-component vector of float) 0:188 Sequence 0:188 move second child to first child (temp 3-component vector of float) 0:188 'r007' (temp 3-component vector of float) -0:188 intBitsToFloat (global 3-component vector of float) +0:188 intBitsToFloat (temp 3-component vector of float) 0:188 'inU0' (in 3-component vector of uint) 0:190 Sequence 0:190 move second child to first child (temp 3-component vector of float) 0:190 'r009' (temp 3-component vector of float) -0:190 arc tangent (global 3-component vector of float) +0:190 arc tangent (temp 3-component vector of float) 0:190 'inF0' (in 3-component vector of float) 0:191 Sequence 0:191 move second child to first child (temp 3-component vector of float) 0:191 'r010' (temp 3-component vector of float) -0:191 arc tangent (global 3-component vector of float) +0:191 arc tangent (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) 0:191 'inF1' (in 3-component vector of float) 0:192 Sequence 0:192 move second child to first child (temp 3-component vector of float) 0:192 'r011' (temp 3-component vector of float) -0:192 Ceiling (global 3-component vector of float) +0:192 Ceiling (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 'r012' (temp 3-component vector of float) -0:193 clamp (global 3-component vector of float) +0:193 clamp (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:193 'inF2' (in 3-component vector of float) @@ -3619,17 +3621,17 @@ gl_FragCoord origin is upper left 0:195 Sequence 0:195 move second child to first child (temp 3-component vector of float) 0:195 'r013' (temp 3-component vector of float) -0:195 cosine (global 3-component vector of float) +0:195 cosine (temp 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) 0:196 Sequence 0:196 move second child to first child (temp 3-component vector of float) 0:196 'r014' (temp 3-component vector of float) -0:196 hyp. cosine (global 3-component vector of float) +0:196 hyp. cosine (temp 3-component vector of float) 0:196 'inF0' (in 3-component vector of float) 0:197 Sequence 0:197 move second child to first child (temp 3-component vector of uint) 0:197 'r015' (temp 3-component vector of uint) -0:? bitCount (global 3-component vector of uint) +0:? bitCount (temp 3-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) @@ -3637,77 +3639,77 @@ gl_FragCoord origin is upper left 0:198 Sequence 0:198 move second child to first child (temp 3-component vector of float) 0:198 'r016' (temp 3-component vector of float) -0:198 cross-product (global 3-component vector of float) +0:198 cross-product (temp 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) 0:198 'inF1' (in 3-component vector of float) 0:199 Sequence 0:199 move second child to first child (temp 3-component vector of float) 0:199 'r017' (temp 3-component vector of float) -0:199 dPdx (global 3-component vector of float) +0:199 dPdx (temp 3-component vector of float) 0:199 'inF0' (in 3-component vector of float) 0:200 Sequence 0:200 move second child to first child (temp 3-component vector of float) 0:200 'r018' (temp 3-component vector of float) -0:200 dPdxCoarse (global 3-component vector of float) +0:200 dPdxCoarse (temp 3-component vector of float) 0:200 'inF0' (in 3-component vector of float) 0:201 Sequence 0:201 move second child to first child (temp 3-component vector of float) 0:201 'r019' (temp 3-component vector of float) -0:201 dPdxFine (global 3-component vector of float) +0:201 dPdxFine (temp 3-component vector of float) 0:201 'inF0' (in 3-component vector of float) 0:202 Sequence 0:202 move second child to first child (temp 3-component vector of float) 0:202 'r020' (temp 3-component vector of float) -0:202 dPdy (global 3-component vector of float) +0:202 dPdy (temp 3-component vector of float) 0:202 'inF0' (in 3-component vector of float) 0:203 Sequence 0:203 move second child to first child (temp 3-component vector of float) 0:203 'r021' (temp 3-component vector of float) -0:203 dPdyCoarse (global 3-component vector of float) +0:203 dPdyCoarse (temp 3-component vector of float) 0:203 'inF0' (in 3-component vector of float) 0:204 Sequence 0:204 move second child to first child (temp 3-component vector of float) 0:204 'r022' (temp 3-component vector of float) -0:204 dPdyFine (global 3-component vector of float) +0:204 dPdyFine (temp 3-component vector of float) 0:204 'inF0' (in 3-component vector of float) 0:205 Sequence 0:205 move second child to first child (temp 3-component vector of float) 0:205 'r023' (temp 3-component vector of float) -0:205 degrees (global 3-component vector of float) +0:205 degrees (temp 3-component vector of float) 0:205 'inF0' (in 3-component vector of float) 0:206 Sequence 0:206 move second child to first child (temp float) 0:206 'r024' (temp float) -0:206 distance (global float) +0:206 distance (temp float) 0:206 'inF0' (in 3-component vector of float) 0:206 'inF1' (in 3-component vector of float) 0:207 Sequence 0:207 move second child to first child (temp float) 0:207 'r025' (temp float) -0:207 dot-product (global float) +0:207 dot-product (temp float) 0:207 'inF0' (in 3-component vector of float) 0:207 'inF1' (in 3-component vector of float) 0:211 Sequence 0:211 move second child to first child (temp 3-component vector of float) 0:211 'r029' (temp 3-component vector of float) -0:211 exp (global 3-component vector of float) +0:211 exp (temp 3-component vector of float) 0:211 'inF0' (in 3-component vector of float) 0:212 Sequence 0:212 move second child to first child (temp 3-component vector of float) 0:212 'r030' (temp 3-component vector of float) -0:212 exp2 (global 3-component vector of float) +0:212 exp2 (temp 3-component vector of float) 0:212 'inF0' (in 3-component vector of float) 0:213 Sequence 0:213 move second child to first child (temp 3-component vector of float) 0:213 'r031' (temp 3-component vector of float) -0:213 face-forward (global 3-component vector of float) +0:213 face-forward (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:213 'inF2' (in 3-component vector of float) 0:214 Sequence 0:214 move second child to first child (temp 3-component vector of uint) 0:214 'r032' (temp 3-component vector of uint) -0:? findMSB (global 3-component vector of uint) +0:? findMSB (temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) @@ -3715,7 +3717,7 @@ gl_FragCoord origin is upper left 0:215 Sequence 0:215 move second child to first child (temp 3-component vector of uint) 0:215 'r033' (temp 3-component vector of uint) -0:? findLSB (global 3-component vector of uint) +0:? findLSB (temp 3-component vector of uint) 0:? Constant: 0:? 2 (const uint) 0:? 3 (const uint) @@ -3723,57 +3725,57 @@ gl_FragCoord origin is upper left 0:216 Sequence 0:216 move second child to first child (temp 3-component vector of float) 0:216 'r034' (temp 3-component vector of float) -0:216 Floor (global 3-component vector of float) +0:216 Floor (temp 3-component vector of float) 0:216 'inF0' (in 3-component vector of float) 0:218 Sequence 0:218 move second child to first child (temp 3-component vector of float) 0:218 'r036' (temp 3-component vector of float) -0:218 mod (global 3-component vector of float) +0:218 mod (temp 3-component vector of float) 0:218 'inF0' (in 3-component vector of float) 0:218 'inF1' (in 3-component vector of float) 0:219 Sequence 0:219 move second child to first child (temp 3-component vector of float) 0:219 'r037' (temp 3-component vector of float) -0:219 Fraction (global 3-component vector of float) +0:219 Fraction (temp 3-component vector of float) 0:219 'inF0' (in 3-component vector of float) 0:220 Sequence 0:220 move second child to first child (temp 3-component vector of float) 0:220 'r038' (temp 3-component vector of float) -0:220 frexp (global 3-component vector of float) +0:220 frexp (temp 3-component vector of float) 0:220 'inF0' (in 3-component vector of float) 0:220 'inF1' (in 3-component vector of float) 0:221 Sequence 0:221 move second child to first child (temp 3-component vector of float) 0:221 'r039' (temp 3-component vector of float) -0:221 fwidth (global 3-component vector of float) +0:221 fwidth (temp 3-component vector of float) 0:221 'inF0' (in 3-component vector of float) 0:222 Sequence 0:222 move second child to first child (temp 3-component vector of bool) 0:222 'r040' (temp 3-component vector of bool) -0:222 isinf (global 3-component vector of bool) +0:222 isinf (temp 3-component vector of bool) 0:222 'inF0' (in 3-component vector of float) 0:223 Sequence 0:223 move second child to first child (temp 3-component vector of bool) 0:223 'r041' (temp 3-component vector of bool) -0:223 isnan (global 3-component vector of bool) +0:223 isnan (temp 3-component vector of bool) 0:223 'inF0' (in 3-component vector of float) 0:224 Sequence 0:224 move second child to first child (temp 3-component vector of float) 0:224 'r042' (temp 3-component vector of float) -0:224 ldexp (global 3-component vector of float) +0:224 ldexp (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 Sequence 0:225 move second child to first child (temp 3-component vector of float) 0:225 'r039a' (temp 3-component vector of float) -0:225 mix (global 3-component vector of float) +0:225 mix (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:225 'inF2' (in 3-component vector of float) 0:226 Sequence 0:226 move second child to first child (temp 3-component vector of float) 0:226 'r039b' (temp 3-component vector of float) -0:226 mix (global 3-component vector of float) +0:226 mix (temp 3-component vector of float) 0:226 'inF0' (in 3-component vector of float) 0:226 'inF1' (in 3-component vector of float) 0:226 Constant: @@ -3781,12 +3783,12 @@ gl_FragCoord origin is upper left 0:227 Sequence 0:227 move second child to first child (temp float) 0:227 'r043' (temp float) -0:227 length (global float) +0:227 length (temp float) 0:227 'inF0' (in 3-component vector of float) 0:228 Sequence 0:228 move second child to first child (temp 3-component vector of float) 0:228 'r044' (temp 3-component vector of float) -0:228 log (global 3-component vector of float) +0:228 log (temp 3-component vector of float) 0:228 'inF0' (in 3-component vector of float) 0:229 Sequence 0:229 move second child to first child (temp 3-component vector of float) @@ -3799,35 +3801,35 @@ gl_FragCoord origin is upper left 0:230 Sequence 0:230 move second child to first child (temp 3-component vector of float) 0:230 'r046' (temp 3-component vector of float) -0:230 log2 (global 3-component vector of float) +0:230 log2 (temp 3-component vector of float) 0:230 'inF0' (in 3-component vector of float) 0:231 Sequence 0:231 move second child to first child (temp 3-component vector of float) 0:231 'r047' (temp 3-component vector of float) -0:231 max (global 3-component vector of float) +0:231 max (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:232 Sequence 0:232 move second child to first child (temp 3-component vector of float) 0:232 'r048' (temp 3-component vector of float) -0:232 min (global 3-component vector of float) +0:232 min (temp 3-component vector of float) 0:232 'inF0' (in 3-component vector of float) 0:232 'inF1' (in 3-component vector of float) 0:233 Sequence 0:233 move second child to first child (temp 3-component vector of float) 0:233 'r049' (temp 3-component vector of float) -0:233 normalize (global 3-component vector of float) +0:233 normalize (temp 3-component vector of float) 0:233 'inF0' (in 3-component vector of float) 0:234 Sequence 0:234 move second child to first child (temp 3-component vector of float) 0:234 'r050' (temp 3-component vector of float) -0:234 pow (global 3-component vector of float) +0:234 pow (temp 3-component vector of float) 0:234 'inF0' (in 3-component vector of float) 0:234 'inF1' (in 3-component vector of float) 0:235 Sequence 0:235 move second child to first child (temp 3-component vector of float) 0:235 'r051' (temp 3-component vector of float) -0:235 radians (global 3-component vector of float) +0:235 radians (temp 3-component vector of float) 0:235 'inF0' (in 3-component vector of float) 0:236 Sequence 0:236 move second child to first child (temp 3-component vector of float) @@ -3839,13 +3841,13 @@ gl_FragCoord origin is upper left 0:237 Sequence 0:237 move second child to first child (temp 3-component vector of float) 0:237 'r053' (temp 3-component vector of float) -0:237 reflect (global 3-component vector of float) +0:237 reflect (temp 3-component vector of float) 0:237 'inF0' (in 3-component vector of float) 0:237 'inF1' (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 'r054' (temp 3-component vector of float) -0:238 refract (global 3-component vector of float) +0:238 refract (temp 3-component vector of float) 0:238 'inF0' (in 3-component vector of float) 0:238 'inF1' (in 3-component vector of float) 0:238 Constant: @@ -3853,7 +3855,7 @@ gl_FragCoord origin is upper left 0:239 Sequence 0:239 move second child to first child (temp 3-component vector of uint) 0:239 'r055' (temp 3-component vector of uint) -0:? bitFieldReverse (global 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) @@ -3861,12 +3863,12 @@ gl_FragCoord origin is upper left 0:240 Sequence 0:240 move second child to first child (temp 3-component vector of float) 0:240 'r056' (temp 3-component vector of float) -0:240 roundEven (global 3-component vector of float) +0:240 roundEven (temp 3-component vector of float) 0:240 'inF0' (in 3-component vector of float) 0:241 Sequence 0:241 move second child to first child (temp 3-component vector of float) 0:241 'r057' (temp 3-component vector of float) -0:241 inverse sqrt (global 3-component vector of float) +0:241 inverse sqrt (temp 3-component vector of float) 0:241 'inF0' (in 3-component vector of float) 0:242 Sequence 0:242 move second child to first child (temp 3-component vector of float) @@ -3880,12 +3882,12 @@ gl_FragCoord origin is upper left 0:243 Sequence 0:243 move second child to first child (temp 3-component vector of float) 0:243 'r059' (temp 3-component vector of float) -0:243 Sign (global 3-component vector of float) +0:243 Sign (temp 3-component vector of float) 0:243 'inF0' (in 3-component vector of float) 0:244 Sequence 0:244 move second child to first child (temp 3-component vector of float) 0:244 'r060' (temp 3-component vector of float) -0:244 sine (global 3-component vector of float) +0:244 sine (temp 3-component vector of float) 0:244 'inF0' (in 3-component vector of float) 0:245 Sequence 0:245 move second child to first child (temp 3-component vector of float) @@ -3899,47 +3901,47 @@ gl_FragCoord origin is upper left 0:246 Sequence 0:246 move second child to first child (temp 3-component vector of float) 0:246 'r061' (temp 3-component vector of float) -0:246 hyp. sine (global 3-component vector of float) +0:246 hyp. sine (temp 3-component vector of float) 0:246 'inF0' (in 3-component vector of float) 0:247 Sequence 0:247 move second child to first child (temp 3-component vector of float) 0:247 'r062' (temp 3-component vector of float) -0:247 smoothstep (global 3-component vector of float) +0:247 smoothstep (temp 3-component vector of float) 0:247 'inF0' (in 3-component vector of float) 0:247 'inF1' (in 3-component vector of float) 0:247 'inF2' (in 3-component vector of float) 0:248 Sequence 0:248 move second child to first child (temp 3-component vector of float) 0:248 'r063' (temp 3-component vector of float) -0:248 sqrt (global 3-component vector of float) +0:248 sqrt (temp 3-component vector of float) 0:248 'inF0' (in 3-component vector of float) 0:249 Sequence 0:249 move second child to first child (temp 3-component vector of float) 0:249 'r064' (temp 3-component vector of float) -0:249 step (global 3-component vector of float) +0:249 step (temp 3-component vector of float) 0:249 'inF0' (in 3-component vector of float) 0:249 'inF1' (in 3-component vector of float) 0:250 Sequence 0:250 move second child to first child (temp 3-component vector of float) 0:250 'r065' (temp 3-component vector of float) -0:250 tangent (global 3-component vector of float) +0:250 tangent (temp 3-component vector of float) 0:250 'inF0' (in 3-component vector of float) 0:251 Sequence 0:251 move second child to first child (temp 3-component vector of float) 0:251 'r066' (temp 3-component vector of float) -0:251 hyp. tangent (global 3-component vector of float) +0:251 hyp. tangent (temp 3-component vector of float) 0:251 'inF0' (in 3-component vector of float) 0:253 Sequence 0:253 move second child to first child (temp 3-component vector of float) 0:253 'r067' (temp 3-component vector of float) -0:253 trunc (global 3-component vector of float) +0:253 trunc (temp 3-component vector of float) 0:253 'inF0' (in 3-component vector of float) 0:256 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:260 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:260 Function Parameters: 0:260 'inF0' (in 4-component vector of float) 0:260 'inF1' (in 4-component vector of float) @@ -3950,63 +3952,63 @@ gl_FragCoord origin is upper left 0:263 Sequence 0:263 move second child to first child (temp bool) 0:263 'r000' (temp bool) -0:263 all (global bool) +0:263 all (temp bool) 0:263 'inF0' (in 4-component vector of float) 0:264 Sequence 0:264 move second child to first child (temp 4-component vector of float) 0:264 'r001' (temp 4-component vector of float) -0:264 Absolute value (global 4-component vector of float) +0:264 Absolute value (temp 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) 0:265 Sequence 0:265 move second child to first child (temp 4-component vector of float) 0:265 'r002' (temp 4-component vector of float) -0:265 arc cosine (global 4-component vector of float) +0:265 arc cosine (temp 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) 0:266 Sequence 0:266 move second child to first child (temp bool) 0:266 'r003' (temp bool) -0:266 any (global bool) +0:266 any (temp bool) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) 0:267 'r004' (temp 4-component vector of float) -0:267 arc sine (global 4-component vector of float) +0:267 arc sine (temp 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) 0:268 Sequence 0:268 move second child to first child (temp 4-component vector of int) 0:268 'r005' (temp 4-component vector of int) -0:268 floatBitsToInt (global 4-component vector of int) +0:268 floatBitsToInt (temp 4-component vector of int) 0:268 'inF0' (in 4-component vector of float) 0:269 Sequence 0:269 move second child to first child (temp 4-component vector of uint) 0:269 'r006' (temp 4-component vector of uint) -0:269 floatBitsToUint (global 4-component vector of uint) +0:269 floatBitsToUint (temp 4-component vector of uint) 0:269 'inF0' (in 4-component vector of float) 0:270 Sequence 0:270 move second child to first child (temp 4-component vector of float) 0:270 'r007' (temp 4-component vector of float) -0:270 intBitsToFloat (global 4-component vector of float) +0:270 intBitsToFloat (temp 4-component vector of float) 0:270 'inU0' (in 4-component vector of uint) 0:272 Sequence 0:272 move second child to first child (temp 4-component vector of float) 0:272 'r009' (temp 4-component vector of float) -0:272 arc tangent (global 4-component vector of float) +0:272 arc tangent (temp 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) 0:273 Sequence 0:273 move second child to first child (temp 4-component vector of float) 0:273 'r010' (temp 4-component vector of float) -0:273 arc tangent (global 4-component vector of float) +0:273 arc tangent (temp 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) 0:273 'inF1' (in 4-component vector of float) 0:274 Sequence 0:274 move second child to first child (temp 4-component vector of float) 0:274 'r011' (temp 4-component vector of float) -0:274 Ceiling (global 4-component vector of float) +0:274 Ceiling (temp 4-component vector of float) 0:274 'inF0' (in 4-component vector of float) 0:275 Sequence 0:275 move second child to first child (temp 4-component vector of float) 0:275 'r012' (temp 4-component vector of float) -0:275 clamp (global 4-component vector of float) +0:275 clamp (temp 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) 0:275 'inF1' (in 4-component vector of float) 0:275 'inF2' (in 4-component vector of float) @@ -4025,17 +4027,17 @@ gl_FragCoord origin is upper left 0:277 Sequence 0:277 move second child to first child (temp 4-component vector of float) 0:277 'r013' (temp 4-component vector of float) -0:277 cosine (global 4-component vector of float) +0:277 cosine (temp 4-component vector of float) 0:277 'inF0' (in 4-component vector of float) 0:278 Sequence 0:278 move second child to first child (temp 4-component vector of float) 0:278 'r014' (temp 4-component vector of float) -0:278 hyp. cosine (global 4-component vector of float) +0:278 hyp. cosine (temp 4-component vector of float) 0:278 'inF0' (in 4-component vector of float) 0:279 Sequence 0:279 move second child to first child (temp 4-component vector of uint) 0:279 'r015' (temp 4-component vector of uint) -0:? bitCount (global 4-component vector of uint) +0:? bitCount (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 3 (const uint) @@ -4044,48 +4046,48 @@ gl_FragCoord origin is upper left 0:280 Sequence 0:280 move second child to first child (temp 4-component vector of float) 0:280 'r016' (temp 4-component vector of float) -0:280 dPdx (global 4-component vector of float) +0:280 dPdx (temp 4-component vector of float) 0:280 'inF0' (in 4-component vector of float) 0:281 Sequence 0:281 move second child to first child (temp 4-component vector of float) 0:281 'r017' (temp 4-component vector of float) -0:281 dPdxCoarse (global 4-component vector of float) +0:281 dPdxCoarse (temp 4-component vector of float) 0:281 'inF0' (in 4-component vector of float) 0:282 Sequence 0:282 move second child to first child (temp 4-component vector of float) 0:282 'r018' (temp 4-component vector of float) -0:282 dPdxFine (global 4-component vector of float) +0:282 dPdxFine (temp 4-component vector of float) 0:282 'inF0' (in 4-component vector of float) 0:283 Sequence 0:283 move second child to first child (temp 4-component vector of float) 0:283 'r019' (temp 4-component vector of float) -0:283 dPdy (global 4-component vector of float) +0:283 dPdy (temp 4-component vector of float) 0:283 'inF0' (in 4-component vector of float) 0:284 Sequence 0:284 move second child to first child (temp 4-component vector of float) 0:284 'r020' (temp 4-component vector of float) -0:284 dPdyCoarse (global 4-component vector of float) +0:284 dPdyCoarse (temp 4-component vector of float) 0:284 'inF0' (in 4-component vector of float) 0:285 Sequence 0:285 move second child to first child (temp 4-component vector of float) 0:285 'r021' (temp 4-component vector of float) -0:285 dPdyFine (global 4-component vector of float) +0:285 dPdyFine (temp 4-component vector of float) 0:285 'inF0' (in 4-component vector of float) 0:286 Sequence 0:286 move second child to first child (temp 4-component vector of float) 0:286 'r022' (temp 4-component vector of float) -0:286 degrees (global 4-component vector of float) +0:286 degrees (temp 4-component vector of float) 0:286 'inF0' (in 4-component vector of float) 0:287 Sequence 0:287 move second child to first child (temp float) 0:287 'r023' (temp float) -0:287 distance (global float) +0:287 distance (temp float) 0:287 'inF0' (in 4-component vector of float) 0:287 'inF1' (in 4-component vector of float) 0:288 Sequence 0:288 move second child to first child (temp float) 0:288 'r024' (temp float) -0:288 dot-product (global float) +0:288 dot-product (temp float) 0:288 'inF0' (in 4-component vector of float) 0:288 'inF1' (in 4-component vector of float) 0:289 Sequence @@ -4114,24 +4116,24 @@ gl_FragCoord origin is upper left 0:293 Sequence 0:293 move second child to first child (temp 4-component vector of float) 0:293 'r029' (temp 4-component vector of float) -0:293 exp (global 4-component vector of float) +0:293 exp (temp 4-component vector of float) 0:293 'inF0' (in 4-component vector of float) 0:294 Sequence 0:294 move second child to first child (temp 4-component vector of float) 0:294 'r030' (temp 4-component vector of float) -0:294 exp2 (global 4-component vector of float) +0:294 exp2 (temp 4-component vector of float) 0:294 'inF0' (in 4-component vector of float) 0:295 Sequence 0:295 move second child to first child (temp 4-component vector of float) 0:295 'r031' (temp 4-component vector of float) -0:295 face-forward (global 4-component vector of float) +0:295 face-forward (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:295 'inF2' (in 4-component vector of float) 0:296 Sequence 0:296 move second child to first child (temp 4-component vector of uint) 0:296 'r032' (temp 4-component vector of uint) -0:? findMSB (global 4-component vector of uint) +0:? findMSB (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) @@ -4140,7 +4142,7 @@ gl_FragCoord origin is upper left 0:297 Sequence 0:297 move second child to first child (temp 4-component vector of uint) 0:297 'r033' (temp 4-component vector of uint) -0:? findLSB (global 4-component vector of uint) +0:? findLSB (temp 4-component vector of uint) 0:? Constant: 0:? 7 (const uint) 0:? 8 (const uint) @@ -4149,62 +4151,62 @@ gl_FragCoord origin is upper left 0:298 Sequence 0:298 move second child to first child (temp 4-component vector of float) 0:298 'r034' (temp 4-component vector of float) -0:298 Floor (global 4-component vector of float) +0:298 Floor (temp 4-component vector of float) 0:298 'inF0' (in 4-component vector of float) 0:300 Sequence 0:300 move second child to first child (temp 4-component vector of float) 0:300 'r036' (temp 4-component vector of float) -0:300 mod (global 4-component vector of float) +0:300 mod (temp 4-component vector of float) 0:300 'inF0' (in 4-component vector of float) 0:300 'inF1' (in 4-component vector of float) 0:301 Sequence 0:301 move second child to first child (temp 4-component vector of float) 0:301 'r037' (temp 4-component vector of float) -0:301 Fraction (global 4-component vector of float) +0:301 Fraction (temp 4-component vector of float) 0:301 'inF0' (in 4-component vector of float) 0:302 Sequence 0:302 move second child to first child (temp 4-component vector of float) 0:302 'r038' (temp 4-component vector of float) -0:302 frexp (global 4-component vector of float) +0:302 frexp (temp 4-component vector of float) 0:302 'inF0' (in 4-component vector of float) 0:302 'inF1' (in 4-component vector of float) 0:303 Sequence 0:303 move second child to first child (temp 4-component vector of float) 0:303 'r039' (temp 4-component vector of float) -0:303 fwidth (global 4-component vector of float) +0:303 fwidth (temp 4-component vector of float) 0:303 'inF0' (in 4-component vector of float) 0:304 Sequence 0:304 move second child to first child (temp 4-component vector of bool) 0:304 'r040' (temp 4-component vector of bool) -0:304 isinf (global 4-component vector of bool) +0:304 isinf (temp 4-component vector of bool) 0:304 'inF0' (in 4-component vector of float) 0:305 Sequence 0:305 move second child to first child (temp 4-component vector of bool) 0:305 'r041' (temp 4-component vector of bool) -0:305 isnan (global 4-component vector of bool) +0:305 isnan (temp 4-component vector of bool) 0:305 'inF0' (in 4-component vector of float) 0:306 Sequence 0:306 move second child to first child (temp 4-component vector of float) 0:306 'r042' (temp 4-component vector of float) -0:306 ldexp (global 4-component vector of float) +0:306 ldexp (temp 4-component vector of float) 0:306 'inF0' (in 4-component vector of float) 0:306 'inF1' (in 4-component vector of float) 0:307 Sequence 0:307 move second child to first child (temp 4-component vector of float) 0:307 'r039a' (temp 4-component vector of float) -0:307 mix (global 4-component vector of float) +0:307 mix (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:307 'inF2' (in 4-component vector of float) 0:308 Sequence 0:308 move second child to first child (temp float) 0:308 'r043' (temp float) -0:308 length (global float) +0:308 length (temp float) 0:308 'inF0' (in 4-component vector of float) 0:309 Sequence 0:309 move second child to first child (temp 4-component vector of float) 0:309 'r044' (temp 4-component vector of float) -0:309 log (global 4-component vector of float) +0:309 log (temp 4-component vector of float) 0:309 'inF0' (in 4-component vector of float) 0:310 Sequence 0:310 move second child to first child (temp 4-component vector of float) @@ -4217,35 +4219,35 @@ gl_FragCoord origin is upper left 0:311 Sequence 0:311 move second child to first child (temp 4-component vector of float) 0:311 'r046' (temp 4-component vector of float) -0:311 log2 (global 4-component vector of float) +0:311 log2 (temp 4-component vector of float) 0:311 'inF0' (in 4-component vector of float) 0:312 Sequence 0:312 move second child to first child (temp 4-component vector of float) 0:312 'r047' (temp 4-component vector of float) -0:312 max (global 4-component vector of float) +0:312 max (temp 4-component vector of float) 0:312 'inF0' (in 4-component vector of float) 0:312 'inF1' (in 4-component vector of float) 0:313 Sequence 0:313 move second child to first child (temp 4-component vector of float) 0:313 'r048' (temp 4-component vector of float) -0:313 min (global 4-component vector of float) +0:313 min (temp 4-component vector of float) 0:313 'inF0' (in 4-component vector of float) 0:313 'inF1' (in 4-component vector of float) 0:314 Sequence 0:314 move second child to first child (temp 4-component vector of float) 0:314 'r049' (temp 4-component vector of float) -0:314 normalize (global 4-component vector of float) +0:314 normalize (temp 4-component vector of float) 0:314 'inF0' (in 4-component vector of float) 0:315 Sequence 0:315 move second child to first child (temp 4-component vector of float) 0:315 'r050' (temp 4-component vector of float) -0:315 pow (global 4-component vector of float) +0:315 pow (temp 4-component vector of float) 0:315 'inF0' (in 4-component vector of float) 0:315 'inF1' (in 4-component vector of float) 0:316 Sequence 0:316 move second child to first child (temp 4-component vector of float) 0:316 'r051' (temp 4-component vector of float) -0:316 radians (global 4-component vector of float) +0:316 radians (temp 4-component vector of float) 0:316 'inF0' (in 4-component vector of float) 0:317 Sequence 0:317 move second child to first child (temp 4-component vector of float) @@ -4257,13 +4259,13 @@ gl_FragCoord origin is upper left 0:318 Sequence 0:318 move second child to first child (temp 4-component vector of float) 0:318 'r053' (temp 4-component vector of float) -0:318 reflect (global 4-component vector of float) +0:318 reflect (temp 4-component vector of float) 0:318 'inF0' (in 4-component vector of float) 0:318 'inF1' (in 4-component vector of float) 0:319 Sequence 0:319 move second child to first child (temp 4-component vector of float) 0:319 'r054' (temp 4-component vector of float) -0:319 refract (global 4-component vector of float) +0:319 refract (temp 4-component vector of float) 0:319 'inF0' (in 4-component vector of float) 0:319 'inF1' (in 4-component vector of float) 0:319 Constant: @@ -4271,7 +4273,7 @@ gl_FragCoord origin is upper left 0:320 Sequence 0:320 move second child to first child (temp 4-component vector of uint) 0:320 'r055' (temp 4-component vector of uint) -0:? bitFieldReverse (global 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of uint) 0:? Constant: 0:? 1 (const uint) 0:? 2 (const uint) @@ -4280,12 +4282,12 @@ gl_FragCoord origin is upper left 0:321 Sequence 0:321 move second child to first child (temp 4-component vector of float) 0:321 'r056' (temp 4-component vector of float) -0:321 roundEven (global 4-component vector of float) +0:321 roundEven (temp 4-component vector of float) 0:321 'inF0' (in 4-component vector of float) 0:322 Sequence 0:322 move second child to first child (temp 4-component vector of float) 0:322 'r057' (temp 4-component vector of float) -0:322 inverse sqrt (global 4-component vector of float) +0:322 inverse sqrt (temp 4-component vector of float) 0:322 'inF0' (in 4-component vector of float) 0:323 Sequence 0:323 move second child to first child (temp 4-component vector of float) @@ -4299,12 +4301,12 @@ gl_FragCoord origin is upper left 0:324 Sequence 0:324 move second child to first child (temp 4-component vector of float) 0:324 'r059' (temp 4-component vector of float) -0:324 Sign (global 4-component vector of float) +0:324 Sign (temp 4-component vector of float) 0:324 'inF0' (in 4-component vector of float) 0:325 Sequence 0:325 move second child to first child (temp 4-component vector of float) 0:325 'r060' (temp 4-component vector of float) -0:325 sine (global 4-component vector of float) +0:325 sine (temp 4-component vector of float) 0:325 'inF0' (in 4-component vector of float) 0:326 Sequence 0:326 move second child to first child (temp 4-component vector of float) @@ -4318,40 +4320,40 @@ gl_FragCoord origin is upper left 0:327 Sequence 0:327 move second child to first child (temp 4-component vector of float) 0:327 'r061' (temp 4-component vector of float) -0:327 hyp. sine (global 4-component vector of float) +0:327 hyp. sine (temp 4-component vector of float) 0:327 'inF0' (in 4-component vector of float) 0:328 Sequence 0:328 move second child to first child (temp 4-component vector of float) 0:328 'r062' (temp 4-component vector of float) -0:328 smoothstep (global 4-component vector of float) +0:328 smoothstep (temp 4-component vector of float) 0:328 'inF0' (in 4-component vector of float) 0:328 'inF1' (in 4-component vector of float) 0:328 'inF2' (in 4-component vector of float) 0:329 Sequence 0:329 move second child to first child (temp 4-component vector of float) 0:329 'r063' (temp 4-component vector of float) -0:329 sqrt (global 4-component vector of float) +0:329 sqrt (temp 4-component vector of float) 0:329 'inF0' (in 4-component vector of float) 0:330 Sequence 0:330 move second child to first child (temp 4-component vector of float) 0:330 'r064' (temp 4-component vector of float) -0:330 step (global 4-component vector of float) +0:330 step (temp 4-component vector of float) 0:330 'inF0' (in 4-component vector of float) 0:330 'inF1' (in 4-component vector of float) 0:331 Sequence 0:331 move second child to first child (temp 4-component vector of float) 0:331 'r065' (temp 4-component vector of float) -0:331 tangent (global 4-component vector of float) +0:331 tangent (temp 4-component vector of float) 0:331 'inF0' (in 4-component vector of float) 0:332 Sequence 0:332 move second child to first child (temp 4-component vector of float) 0:332 'r066' (temp 4-component vector of float) -0:332 hyp. tangent (global 4-component vector of float) +0:332 hyp. tangent (temp 4-component vector of float) 0:332 'inF0' (in 4-component vector of float) 0:334 Sequence 0:334 move second child to first child (temp 4-component vector of float) 0:334 'r067' (temp 4-component vector of float) -0:334 trunc (global 4-component vector of float) +0:334 trunc (temp 4-component vector of float) 0:334 'inF0' (in 4-component vector of float) 0:337 Branch: Return with expression 0:? Constant: @@ -4359,7 +4361,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:401 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:401 Function Parameters: 0:401 'inF0' (in 2X2 matrix of float) 0:401 'inF1' (in 2X2 matrix of float) @@ -4368,40 +4370,40 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp bool) 0:403 'r000' (temp bool) -0:403 all (global bool) +0:403 all (temp bool) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r001' (temp 2X2 matrix of float) -0:403 Absolute value (global 2X2 matrix of float) +0:403 Absolute value (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) -0:403 arc cosine (global 2X2 matrix of float) +0:403 arc cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp bool) 0:403 'r003' (temp bool) -0:403 any (global bool) +0:403 any (temp bool) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r004' (temp 2X2 matrix of float) -0:403 arc sine (global 2X2 matrix of float) +0:403 arc sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r005' (temp 2X2 matrix of float) -0:403 arc tangent (global 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r006' (temp 2X2 matrix of float) -0:403 arc tangent (global 2X2 matrix of float) +0:403 arc tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r007' (temp 2X2 matrix of float) -0:403 Ceiling (global 2X2 matrix of float) +0:403 Ceiling (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Test condition and select (temp void) 0:403 Condition @@ -4418,114 +4420,114 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r008' (temp 2X2 matrix of float) -0:403 clamp (global 2X2 matrix of float) +0:403 clamp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r009' (temp 2X2 matrix of float) -0:403 cosine (global 2X2 matrix of float) +0:403 cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r010' (temp 2X2 matrix of float) -0:403 hyp. cosine (global 2X2 matrix of float) +0:403 hyp. cosine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r011' (temp 2X2 matrix of float) -0:403 dPdx (global 2X2 matrix of float) +0:403 dPdx (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r012' (temp 2X2 matrix of float) -0:403 dPdxCoarse (global 2X2 matrix of float) +0:403 dPdxCoarse (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r013' (temp 2X2 matrix of float) -0:403 dPdxFine (global 2X2 matrix of float) +0:403 dPdxFine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r014' (temp 2X2 matrix of float) -0:403 dPdy (global 2X2 matrix of float) +0:403 dPdy (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r015' (temp 2X2 matrix of float) -0:403 dPdyCoarse (global 2X2 matrix of float) +0:403 dPdyCoarse (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r016' (temp 2X2 matrix of float) -0:403 dPdyFine (global 2X2 matrix of float) +0:403 dPdyFine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r017' (temp 2X2 matrix of float) -0:403 degrees (global 2X2 matrix of float) +0:403 degrees (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp float) 0:403 'r018' (temp float) -0:403 determinant (global float) +0:403 determinant (temp float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r019' (temp 2X2 matrix of float) -0:403 exp (global 2X2 matrix of float) +0:403 exp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'R020' (temp 2X2 matrix of float) -0:403 exp2 (global 2X2 matrix of float) +0:403 exp2 (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r021' (temp 2X2 matrix of float) -0:403 Floor (global 2X2 matrix of float) +0:403 Floor (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r022' (temp 2X2 matrix of float) -0:403 mod (global 2X2 matrix of float) +0:403 mod (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r023' (temp 2X2 matrix of float) -0:403 Fraction (global 2X2 matrix of float) +0:403 Fraction (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r024' (temp 2X2 matrix of float) -0:403 frexp (global 2X2 matrix of float) +0:403 frexp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r025' (temp 2X2 matrix of float) -0:403 fwidth (global 2X2 matrix of float) +0:403 fwidth (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r026' (temp 2X2 matrix of float) -0:403 ldexp (global 2X2 matrix of float) +0:403 ldexp (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r026a' (temp 2X2 matrix of float) -0:403 mix (global 2X2 matrix of float) +0:403 mix (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r027' (temp 2X2 matrix of float) -0:403 log (global 2X2 matrix of float) +0:403 log (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -4538,40 +4540,40 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r029' (temp 2X2 matrix of float) -0:403 log2 (global 2X2 matrix of float) +0:403 log2 (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r030' (temp 2X2 matrix of float) -0:403 max (global 2X2 matrix of float) +0:403 max (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r031' (temp 2X2 matrix of float) -0:403 min (global 2X2 matrix of float) +0:403 min (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r032' (temp 2X2 matrix of float) -0:403 pow (global 2X2 matrix of float) +0:403 pow (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r033' (temp 2X2 matrix of float) -0:403 radians (global 2X2 matrix of float) +0:403 radians (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r034' (temp 2X2 matrix of float) -0:403 roundEven (global 2X2 matrix of float) +0:403 roundEven (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r035' (temp 2X2 matrix of float) -0:403 inverse sqrt (global 2X2 matrix of float) +0:403 inverse sqrt (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -4585,12 +4587,12 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r037' (temp 2X2 matrix of float) -0:403 Sign (global 2X2 matrix of float) +0:403 Sign (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r038' (temp 2X2 matrix of float) -0:403 sine (global 2X2 matrix of float) +0:403 sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) @@ -4604,42 +4606,42 @@ gl_FragCoord origin is upper left 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r039' (temp 2X2 matrix of float) -0:403 hyp. sine (global 2X2 matrix of float) +0:403 hyp. sine (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r049' (temp 2X2 matrix of float) -0:403 smoothstep (global 2X2 matrix of float) +0:403 smoothstep (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 'inF2' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r041' (temp 2X2 matrix of float) -0:403 sqrt (global 2X2 matrix of float) +0:403 sqrt (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r042' (temp 2X2 matrix of float) -0:403 step (global 2X2 matrix of float) +0:403 step (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 'inF1' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r043' (temp 2X2 matrix of float) -0:403 tangent (global 2X2 matrix of float) +0:403 tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r044' (temp 2X2 matrix of float) -0:403 hyp. tangent (global 2X2 matrix of float) +0:403 hyp. tangent (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) -0:403 transpose (global 2X2 matrix of float) +0:403 transpose (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:403 Sequence 0:403 move second child to first child (temp 2X2 matrix of float) 0:403 'r046' (temp 2X2 matrix of float) -0:403 trunc (global 2X2 matrix of float) +0:403 trunc (temp 2X2 matrix of float) 0:403 'inF0' (in 2X2 matrix of float) 0:406 Branch: Return with expression 0:? Constant: @@ -4647,7 +4649,7 @@ gl_FragCoord origin is upper left 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:410 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:410 Function Parameters: 0:410 'inF0' (in 3X3 matrix of float) 0:410 'inF1' (in 3X3 matrix of float) @@ -4656,40 +4658,40 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp bool) 0:412 'r000' (temp bool) -0:412 all (global bool) +0:412 all (temp bool) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r001' (temp 3X3 matrix of float) -0:412 Absolute value (global 3X3 matrix of float) +0:412 Absolute value (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) -0:412 arc cosine (global 3X3 matrix of float) +0:412 arc cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp bool) 0:412 'r003' (temp bool) -0:412 any (global bool) +0:412 any (temp bool) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r004' (temp 3X3 matrix of float) -0:412 arc sine (global 3X3 matrix of float) +0:412 arc sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r005' (temp 3X3 matrix of float) -0:412 arc tangent (global 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r006' (temp 3X3 matrix of float) -0:412 arc tangent (global 3X3 matrix of float) +0:412 arc tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r007' (temp 3X3 matrix of float) -0:412 Ceiling (global 3X3 matrix of float) +0:412 Ceiling (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Test condition and select (temp void) 0:412 Condition @@ -4711,114 +4713,114 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r008' (temp 3X3 matrix of float) -0:412 clamp (global 3X3 matrix of float) +0:412 clamp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r009' (temp 3X3 matrix of float) -0:412 cosine (global 3X3 matrix of float) +0:412 cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r010' (temp 3X3 matrix of float) -0:412 hyp. cosine (global 3X3 matrix of float) +0:412 hyp. cosine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r011' (temp 3X3 matrix of float) -0:412 dPdx (global 3X3 matrix of float) +0:412 dPdx (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r012' (temp 3X3 matrix of float) -0:412 dPdxCoarse (global 3X3 matrix of float) +0:412 dPdxCoarse (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r013' (temp 3X3 matrix of float) -0:412 dPdxFine (global 3X3 matrix of float) +0:412 dPdxFine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r014' (temp 3X3 matrix of float) -0:412 dPdy (global 3X3 matrix of float) +0:412 dPdy (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r015' (temp 3X3 matrix of float) -0:412 dPdyCoarse (global 3X3 matrix of float) +0:412 dPdyCoarse (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r016' (temp 3X3 matrix of float) -0:412 dPdyFine (global 3X3 matrix of float) +0:412 dPdyFine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r017' (temp 3X3 matrix of float) -0:412 degrees (global 3X3 matrix of float) +0:412 degrees (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp float) 0:412 'r018' (temp float) -0:412 determinant (global float) +0:412 determinant (temp float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r019' (temp 3X3 matrix of float) -0:412 exp (global 3X3 matrix of float) +0:412 exp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'R020' (temp 3X3 matrix of float) -0:412 exp2 (global 3X3 matrix of float) +0:412 exp2 (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r021' (temp 3X3 matrix of float) -0:412 Floor (global 3X3 matrix of float) +0:412 Floor (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r022' (temp 3X3 matrix of float) -0:412 mod (global 3X3 matrix of float) +0:412 mod (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r023' (temp 3X3 matrix of float) -0:412 Fraction (global 3X3 matrix of float) +0:412 Fraction (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r024' (temp 3X3 matrix of float) -0:412 frexp (global 3X3 matrix of float) +0:412 frexp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r025' (temp 3X3 matrix of float) -0:412 fwidth (global 3X3 matrix of float) +0:412 fwidth (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r026' (temp 3X3 matrix of float) -0:412 ldexp (global 3X3 matrix of float) +0:412 ldexp (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r026a' (temp 3X3 matrix of float) -0:412 mix (global 3X3 matrix of float) +0:412 mix (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r027' (temp 3X3 matrix of float) -0:412 log (global 3X3 matrix of float) +0:412 log (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -4831,40 +4833,40 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r029' (temp 3X3 matrix of float) -0:412 log2 (global 3X3 matrix of float) +0:412 log2 (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r030' (temp 3X3 matrix of float) -0:412 max (global 3X3 matrix of float) +0:412 max (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r031' (temp 3X3 matrix of float) -0:412 min (global 3X3 matrix of float) +0:412 min (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r032' (temp 3X3 matrix of float) -0:412 pow (global 3X3 matrix of float) +0:412 pow (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r033' (temp 3X3 matrix of float) -0:412 radians (global 3X3 matrix of float) +0:412 radians (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r034' (temp 3X3 matrix of float) -0:412 roundEven (global 3X3 matrix of float) +0:412 roundEven (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r035' (temp 3X3 matrix of float) -0:412 inverse sqrt (global 3X3 matrix of float) +0:412 inverse sqrt (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -4878,12 +4880,12 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r037' (temp 3X3 matrix of float) -0:412 Sign (global 3X3 matrix of float) +0:412 Sign (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r038' (temp 3X3 matrix of float) -0:412 sine (global 3X3 matrix of float) +0:412 sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) @@ -4897,42 +4899,42 @@ gl_FragCoord origin is upper left 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r039' (temp 3X3 matrix of float) -0:412 hyp. sine (global 3X3 matrix of float) +0:412 hyp. sine (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r049' (temp 3X3 matrix of float) -0:412 smoothstep (global 3X3 matrix of float) +0:412 smoothstep (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 'inF2' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r041' (temp 3X3 matrix of float) -0:412 sqrt (global 3X3 matrix of float) +0:412 sqrt (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r042' (temp 3X3 matrix of float) -0:412 step (global 3X3 matrix of float) +0:412 step (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 'inF1' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r043' (temp 3X3 matrix of float) -0:412 tangent (global 3X3 matrix of float) +0:412 tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r044' (temp 3X3 matrix of float) -0:412 hyp. tangent (global 3X3 matrix of float) +0:412 hyp. tangent (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) -0:412 transpose (global 3X3 matrix of float) +0:412 transpose (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:412 Sequence 0:412 move second child to first child (temp 3X3 matrix of float) 0:412 'r046' (temp 3X3 matrix of float) -0:412 trunc (global 3X3 matrix of float) +0:412 trunc (temp 3X3 matrix of float) 0:412 'inF0' (in 3X3 matrix of float) 0:415 Branch: Return with expression 0:? Constant: @@ -4945,7 +4947,7 @@ gl_FragCoord origin is upper left 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:419 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:419 Function Parameters: 0:419 'inF0' (in 4X4 matrix of float) 0:419 'inF1' (in 4X4 matrix of float) @@ -4954,40 +4956,40 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp bool) 0:421 'r000' (temp bool) -0:421 all (global bool) +0:421 all (temp bool) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r001' (temp 4X4 matrix of float) -0:421 Absolute value (global 4X4 matrix of float) +0:421 Absolute value (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) -0:421 arc cosine (global 4X4 matrix of float) +0:421 arc cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp bool) 0:421 'r003' (temp bool) -0:421 any (global bool) +0:421 any (temp bool) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r004' (temp 4X4 matrix of float) -0:421 arc sine (global 4X4 matrix of float) +0:421 arc sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r005' (temp 4X4 matrix of float) -0:421 arc tangent (global 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r006' (temp 4X4 matrix of float) -0:421 arc tangent (global 4X4 matrix of float) +0:421 arc tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r007' (temp 4X4 matrix of float) -0:421 Ceiling (global 4X4 matrix of float) +0:421 Ceiling (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Test condition and select (temp void) 0:421 Condition @@ -5016,114 +5018,114 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r008' (temp 4X4 matrix of float) -0:421 clamp (global 4X4 matrix of float) +0:421 clamp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r009' (temp 4X4 matrix of float) -0:421 cosine (global 4X4 matrix of float) +0:421 cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r010' (temp 4X4 matrix of float) -0:421 hyp. cosine (global 4X4 matrix of float) +0:421 hyp. cosine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r011' (temp 4X4 matrix of float) -0:421 dPdx (global 4X4 matrix of float) +0:421 dPdx (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r012' (temp 4X4 matrix of float) -0:421 dPdxCoarse (global 4X4 matrix of float) +0:421 dPdxCoarse (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r013' (temp 4X4 matrix of float) -0:421 dPdxFine (global 4X4 matrix of float) +0:421 dPdxFine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r014' (temp 4X4 matrix of float) -0:421 dPdy (global 4X4 matrix of float) +0:421 dPdy (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r015' (temp 4X4 matrix of float) -0:421 dPdyCoarse (global 4X4 matrix of float) +0:421 dPdyCoarse (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r016' (temp 4X4 matrix of float) -0:421 dPdyFine (global 4X4 matrix of float) +0:421 dPdyFine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r017' (temp 4X4 matrix of float) -0:421 degrees (global 4X4 matrix of float) +0:421 degrees (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp float) 0:421 'r018' (temp float) -0:421 determinant (global float) +0:421 determinant (temp float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r019' (temp 4X4 matrix of float) -0:421 exp (global 4X4 matrix of float) +0:421 exp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'R020' (temp 4X4 matrix of float) -0:421 exp2 (global 4X4 matrix of float) +0:421 exp2 (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r021' (temp 4X4 matrix of float) -0:421 Floor (global 4X4 matrix of float) +0:421 Floor (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r022' (temp 4X4 matrix of float) -0:421 mod (global 4X4 matrix of float) +0:421 mod (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r023' (temp 4X4 matrix of float) -0:421 Fraction (global 4X4 matrix of float) +0:421 Fraction (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r024' (temp 4X4 matrix of float) -0:421 frexp (global 4X4 matrix of float) +0:421 frexp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r025' (temp 4X4 matrix of float) -0:421 fwidth (global 4X4 matrix of float) +0:421 fwidth (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r026' (temp 4X4 matrix of float) -0:421 ldexp (global 4X4 matrix of float) +0:421 ldexp (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r026a' (temp 4X4 matrix of float) -0:421 mix (global 4X4 matrix of float) +0:421 mix (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r027' (temp 4X4 matrix of float) -0:421 log (global 4X4 matrix of float) +0:421 log (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -5136,40 +5138,40 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r029' (temp 4X4 matrix of float) -0:421 log2 (global 4X4 matrix of float) +0:421 log2 (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r030' (temp 4X4 matrix of float) -0:421 max (global 4X4 matrix of float) +0:421 max (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r031' (temp 4X4 matrix of float) -0:421 min (global 4X4 matrix of float) +0:421 min (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r032' (temp 4X4 matrix of float) -0:421 pow (global 4X4 matrix of float) +0:421 pow (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r033' (temp 4X4 matrix of float) -0:421 radians (global 4X4 matrix of float) +0:421 radians (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r034' (temp 4X4 matrix of float) -0:421 roundEven (global 4X4 matrix of float) +0:421 roundEven (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r035' (temp 4X4 matrix of float) -0:421 inverse sqrt (global 4X4 matrix of float) +0:421 inverse sqrt (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -5183,12 +5185,12 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r037' (temp 4X4 matrix of float) -0:421 Sign (global 4X4 matrix of float) +0:421 Sign (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r038' (temp 4X4 matrix of float) -0:421 sine (global 4X4 matrix of float) +0:421 sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) @@ -5202,42 +5204,42 @@ gl_FragCoord origin is upper left 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r039' (temp 4X4 matrix of float) -0:421 hyp. sine (global 4X4 matrix of float) +0:421 hyp. sine (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r049' (temp 4X4 matrix of float) -0:421 smoothstep (global 4X4 matrix of float) +0:421 smoothstep (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 'inF2' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r041' (temp 4X4 matrix of float) -0:421 sqrt (global 4X4 matrix of float) +0:421 sqrt (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r042' (temp 4X4 matrix of float) -0:421 step (global 4X4 matrix of float) +0:421 step (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 'inF1' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r043' (temp 4X4 matrix of float) -0:421 tangent (global 4X4 matrix of float) +0:421 tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r044' (temp 4X4 matrix of float) -0:421 hyp. tangent (global 4X4 matrix of float) +0:421 hyp. tangent (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) -0:421 transpose (global 4X4 matrix of float) +0:421 transpose (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:421 Sequence 0:421 move second child to first child (temp 4X4 matrix of float) 0:421 'r046' (temp 4X4 matrix of float) -0:421 trunc (global 4X4 matrix of float) +0:421 trunc (temp 4X4 matrix of float) 0:421 'inF0' (in 4X4 matrix of float) 0:424 Branch: Return with expression 0:? Constant: @@ -5257,7 +5259,7 @@ gl_FragCoord origin is upper left 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:442 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:442 Function Parameters: 0:442 'inF0' (in float) 0:442 'inF1' (in float) @@ -5287,7 +5289,7 @@ gl_FragCoord origin is upper left 0:443 Sequence 0:443 move second child to first child (temp float) 0:443 'r3' (temp float) -0:443 dot-product (global float) +0:443 dot-product (temp float) 0:443 'inFV0' (in 2-component vector of float) 0:443 'inFV1' (in 2-component vector of float) 0:443 Sequence @@ -5320,7 +5322,7 @@ gl_FragCoord origin is upper left 0:443 matrix-multiply (temp 2X2 matrix of float) 0:443 'inFM1' (in 2X2 matrix of float) 0:443 'inFM0' (in 2X2 matrix of float) -0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:449 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:449 Function Parameters: 0:449 'inF0' (in float) 0:449 'inF1' (in float) @@ -5350,7 +5352,7 @@ gl_FragCoord origin is upper left 0:450 Sequence 0:450 move second child to first child (temp float) 0:450 'r3' (temp float) -0:450 dot-product (global float) +0:450 dot-product (temp float) 0:450 'inFV0' (in 3-component vector of float) 0:450 'inFV1' (in 3-component vector of float) 0:450 Sequence @@ -5383,7 +5385,7 @@ gl_FragCoord origin is upper left 0:450 matrix-multiply (temp 3X3 matrix of float) 0:450 'inFM1' (in 3X3 matrix of float) 0:450 'inFM0' (in 3X3 matrix of float) -0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:456 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:456 Function Parameters: 0:456 'inF0' (in float) 0:456 'inF1' (in float) @@ -5413,7 +5415,7 @@ gl_FragCoord origin is upper left 0:457 Sequence 0:457 move second child to first child (temp float) 0:457 'r3' (temp float) -0:457 dot-product (global float) +0:457 dot-product (temp float) 0:457 'inFV0' (in 4-component vector of float) 0:457 'inFV1' (in 4-component vector of float) 0:457 Sequence @@ -5446,7 +5448,7 @@ gl_FragCoord origin is upper left 0:457 matrix-multiply (temp 4X4 matrix of float) 0:457 'inFM1' (in 4X4 matrix of float) 0:457 'inFM0' (in 4X4 matrix of float) -0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) +0:466 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) 0:466 Function Parameters: 0:466 'inF0' (in float) 0:466 'inF1' (in float) @@ -5491,13 +5493,13 @@ gl_FragCoord origin is upper left 0:472 Sequence 0:472 move second child to first child (temp float) 0:472 'r05' (temp float) -0:472 dot-product (global float) +0:472 dot-product (temp float) 0:472 'inFV2' (in 2-component vector of float) 0:472 'inFV2' (in 2-component vector of float) 0:473 Sequence 0:473 move second child to first child (temp float) 0:473 'r06' (temp float) -0:473 dot-product (global float) +0:473 dot-product (temp float) 0:473 'inFV3' (in 3-component vector of float) 0:473 'inFV3' (in 3-component vector of float) 0:474 Sequence @@ -5560,7 +5562,7 @@ gl_FragCoord origin is upper left 0:483 matrix-multiply (temp 3X4 matrix of float) 0:483 'inFM2x4' (in 2X4 matrix of float) 0:483 'inFM3x2' (in 3X2 matrix of float) -0:489 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:489 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:489 Function Parameters: 0:? Sequence 0:491 move second child to first child (temp 4-component vector of float) @@ -5573,8 +5575,8 @@ gl_FragCoord origin is upper left 0:491 1.000000 0:491 1.000000 0:491 1.000000 -0:? Sequence -0:? Sequence +0:492 Sequence +0:492 Sequence 0:492 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:492 color: direct index for structure (temp 4-component vector of float) @@ -5583,29 +5585,29 @@ gl_FragCoord origin is upper left 0:492 0 (const int) 0:492 Branch: Return 0:? Linker Objects -0:? 'gs_ua' (global uint) -0:? 'gs_ub' (global uint) -0:? 'gs_uc' (global uint) -0:? 'gs_ua2' (global 2-component vector of uint) -0:? 'gs_ub2' (global 2-component vector of uint) -0:? 'gs_uc2' (global 2-component vector of uint) -0:? 'gs_ua3' (global 3-component vector of uint) -0:? 'gs_ub3' (global 3-component vector of uint) -0:? 'gs_uc3' (global 3-component vector of uint) -0:? 'gs_ua4' (global 4-component vector of uint) -0:? 'gs_ub4' (global 4-component vector of uint) -0:? 'gs_uc4' (global 4-component vector of uint) 0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'gs_ua' (shared uint) +0:? 'gs_ub' (shared uint) +0:? 'gs_uc' (shared uint) +0:? 'gs_ua2' (shared 2-component vector of uint) +0:? 'gs_ub2' (shared 2-component vector of uint) +0:? 'gs_uc2' (shared 2-component vector of uint) +0:? 'gs_ua3' (shared 3-component vector of uint) +0:? 'gs_ub3' (shared 3-component vector of uint) +0:? 'gs_uc3' (shared 3-component vector of uint) +0:? 'gs_ua4' (shared 4-component vector of uint) +0:? 'gs_ub4' (shared 4-component vector of uint) +0:? 'gs_uc4' (shared 4-component vector of uint) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1825 +// Id's are bound by 1828 Capability Shader Capability DerivativeControl 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 1805 + EntryPoint Fragment 4 "main" 1808 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 16 "PixelShaderFunctionS(f1;f1;f1;u1;u1;" @@ -5704,26 +5706,26 @@ gl_FragCoord origin is upper left Name 210 "r027" Name 213 "r028" Name 216 "r029" - Name 220 "r030" - Name 223 "r031" - Name 226 "r033" - Name 230 "r034" - Name 233 "r035" - Name 235 "ResType" - Name 239 "r036" - Name 242 "r037" - Name 245 "r038" - Name 248 "r039" - Name 252 "r039a" - Name 257 "r040" - Name 260 "r041" - Name 265 "r042" - Name 268 "r043" - Name 272 "r044" - Name 276 "r045" - Name 280 "r046" - Name 283 "r047" - Name 287 "r048" + Name 219 "r030" + Name 222 "r031" + Name 225 "r033" + Name 229 "r034" + Name 232 "r035" + Name 234 "ResType" + Name 238 "r036" + Name 241 "r037" + Name 244 "r038" + Name 247 "r039" + Name 251 "r039a" + Name 256 "r040" + Name 259 "r041" + Name 264 "r042" + Name 267 "r043" + Name 271 "r044" + Name 275 "r045" + Name 279 "r046" + Name 282 "r047" + Name 286 "r048" Name 290 "r049" Name 293 "r050" Name 296 "r051" @@ -5764,375 +5766,375 @@ gl_FragCoord origin is upper left Name 428 "r029" Name 431 "r030" Name 436 "r031" - Name 440 "r032" - Name 442 "r033" - Name 445 "r035" - Name 449 "r036" - Name 452 "r037" - Name 454 "ResType" - Name 458 "r038" - Name 462 "r039" - Name 465 "r040" - Name 468 "r041" - Name 472 "r039a" - Name 477 "r042" - Name 480 "r043" - Name 483 "r044" - Name 487 "r045" - Name 490 "r046" - Name 494 "r047" - Name 498 "r048" - Name 501 "r049" - Name 505 "r050" - Name 508 "r051" - Name 512 "r052" - Name 516 "r053" - Name 521 "r054" - Name 525 "r055" - Name 528 "r056" - Name 531 "r057" - Name 536 "r058" - Name 539 "r059" - Name 546 "r060" - Name 549 "r061" - Name 554 "r062" - Name 557 "r063" - Name 561 "r064" - Name 564 "r065" - Name 567 "r066" - Name 573 "r000" - Name 576 "r001" - Name 579 "r002" - Name 582 "r003" - Name 585 "r004" - Name 590 "r005" - Name 593 "r006" - Name 596 "r007" - Name 599 "r009" - Name 602 "r010" - Name 606 "r011" - Name 609 "r012" - Name 622 "r013" - Name 625 "r014" - Name 628 "r015" - Name 632 "r016" - Name 636 "r017" - Name 639 "r018" - Name 642 "r019" - Name 645 "r020" - Name 648 "r021" - Name 651 "r022" - Name 654 "r023" - Name 657 "r024" - Name 661 "r025" - Name 665 "r029" - Name 668 "r030" - Name 671 "r031" - Name 676 "r032" - Name 680 "r033" - Name 682 "r034" - Name 685 "r036" - Name 689 "r037" - Name 692 "r038" - Name 694 "ResType" - Name 698 "r039" - Name 702 "r040" - Name 705 "r041" - Name 708 "r042" - Name 712 "r039a" - Name 717 "r039b" - Name 723 "r043" - Name 726 "r044" - Name 729 "r045" - Name 733 "r046" - Name 736 "r047" - Name 740 "r048" - Name 744 "r049" - Name 747 "r050" - Name 751 "r051" - Name 754 "r052" - Name 758 "r053" - Name 762 "r054" - Name 766 "r055" - Name 769 "r056" - Name 772 "r057" - Name 775 "r058" - Name 780 "r059" - Name 783 "r060" - Name 790 "r061" - Name 793 "r062" - Name 798 "r063" - Name 801 "r064" - Name 805 "r065" - Name 808 "r066" - Name 811 "r067" - Name 818 "r000" - Name 821 "r001" - Name 824 "r002" - Name 827 "r003" - Name 830 "r004" - Name 835 "r005" - Name 838 "r006" - Name 841 "r007" - Name 844 "r009" - Name 847 "r010" - Name 851 "r011" - Name 854 "r012" - Name 867 "r013" - Name 870 "r014" - Name 873 "r015" - Name 876 "r016" - Name 879 "r017" - Name 882 "r018" - Name 885 "r019" - Name 888 "r020" - Name 891 "r021" - Name 894 "r022" - Name 897 "r023" - Name 901 "r024" - Name 905 "r025" - Name 916 "r029" - Name 919 "r030" - Name 922 "r031" - Name 927 "r032" - Name 932 "r033" - Name 934 "r034" - Name 937 "r036" - Name 941 "r037" - Name 944 "r038" - Name 946 "ResType" - Name 950 "r039" - Name 954 "r040" - Name 957 "r041" - Name 960 "r042" - Name 964 "r039a" - Name 969 "r043" - Name 972 "r044" - Name 975 "r045" - Name 979 "r046" - Name 982 "r047" - Name 986 "r048" - Name 990 "r049" - Name 993 "r050" - Name 997 "r051" - Name 1000 "r052" - Name 1004 "r053" - Name 1008 "r054" - Name 1012 "r055" - Name 1015 "r056" - Name 1018 "r057" - Name 1021 "r058" - Name 1026 "r059" - Name 1029 "r060" - Name 1036 "r061" - Name 1039 "r062" - Name 1044 "r063" - Name 1047 "r064" - Name 1051 "r065" - Name 1054 "r066" - Name 1057 "r067" - Name 1064 "r000" - Name 1067 "r001" - Name 1072 "r003" - Name 1075 "r004" - Name 1078 "r005" - Name 1081 "r006" - Name 1085 "r007" - Name 1096 "r008" - Name 1101 "r009" - Name 1104 "r010" - Name 1107 "r011" - Name 1110 "r012" - Name 1113 "r013" - Name 1116 "r014" - Name 1119 "r015" - Name 1122 "r016" - Name 1125 "r017" - Name 1128 "r018" - Name 1131 "r019" - Name 1134 "R020" - Name 1137 "r021" - Name 1140 "r022" - Name 1150 "r023" - Name 1153 "r024" - Name 1155 "ResType" - Name 1159 "r025" - Name 1162 "r026" - Name 1166 "r026a" - Name 1171 "r027" - Name 1174 "r028" - Name 1178 "r029" - Name 1181 "r030" - Name 1185 "r031" - Name 1189 "r032" - Name 1193 "r033" - Name 1196 "r034" - Name 1199 "r035" - Name 1202 "r036" - Name 1207 "r037" - Name 1210 "r038" - Name 1217 "r039" - Name 1220 "r049" - Name 1225 "r041" - Name 1228 "r042" - Name 1232 "r043" - Name 1235 "r044" - Name 1240 "r046" - Name 1247 "r000" - Name 1250 "r001" - Name 1255 "r003" - Name 1258 "r004" - Name 1261 "r005" - Name 1264 "r006" - Name 1268 "r007" - Name 1279 "r008" - Name 1284 "r009" - Name 1287 "r010" - Name 1290 "r011" - Name 1293 "r012" - Name 1296 "r013" - Name 1299 "r014" - Name 1302 "r015" - Name 1305 "r016" - Name 1308 "r017" - Name 1311 "r018" - Name 1314 "r019" - Name 1317 "R020" - Name 1320 "r021" - Name 1323 "r022" - Name 1336 "r023" - Name 1339 "r024" - Name 1341 "ResType" - Name 1345 "r025" - Name 1348 "r026" - Name 1352 "r026a" - Name 1357 "r027" - Name 1360 "r028" - Name 1364 "r029" - Name 1367 "r030" - Name 1371 "r031" - Name 1375 "r032" - Name 1379 "r033" - Name 1382 "r034" - Name 1385 "r035" - Name 1388 "r036" - Name 1393 "r037" - Name 1396 "r038" - Name 1403 "r039" - Name 1406 "r049" - Name 1411 "r041" - Name 1414 "r042" - Name 1418 "r043" - Name 1421 "r044" - Name 1426 "r046" - Name 1433 "r000" - Name 1436 "r001" - Name 1441 "r003" - Name 1444 "r004" - Name 1447 "r005" - Name 1450 "r006" - Name 1454 "r007" - Name 1465 "r008" - Name 1470 "r009" - Name 1473 "r010" - Name 1476 "r011" - Name 1479 "r012" - Name 1482 "r013" - Name 1485 "r014" - Name 1488 "r015" - Name 1491 "r016" - Name 1494 "r017" - Name 1497 "r018" - Name 1500 "r019" - Name 1503 "R020" - Name 1506 "r021" - Name 1509 "r022" - Name 1525 "r023" - Name 1528 "r024" - Name 1530 "ResType" - Name 1534 "r025" - Name 1537 "r026" - Name 1541 "r026a" - Name 1546 "r027" - Name 1549 "r028" - Name 1553 "r029" - Name 1556 "r030" - Name 1560 "r031" - Name 1564 "r032" - Name 1568 "r033" - Name 1571 "r034" - Name 1574 "r035" - Name 1577 "r036" - Name 1582 "r037" - Name 1585 "r038" - Name 1592 "r039" - Name 1595 "r049" - Name 1600 "r041" - Name 1603 "r042" - Name 1607 "r043" - Name 1610 "r044" - Name 1615 "r046" - Name 1622 "r0" - Name 1626 "r1" - Name 1630 "r2" - Name 1634 "r3" - Name 1638 "r4" - Name 1642 "r5" - Name 1646 "r6" - Name 1650 "r7" - Name 1654 "r8" - Name 1658 "r0" - Name 1662 "r1" - Name 1666 "r2" - Name 1670 "r3" - Name 1674 "r4" - Name 1678 "r5" - Name 1682 "r6" - Name 1686 "r7" - Name 1690 "r8" - Name 1694 "r0" - Name 1698 "r1" - Name 1702 "r2" - Name 1706 "r3" - Name 1710 "r4" - Name 1714 "r5" - Name 1718 "r6" - Name 1722 "r7" - Name 1726 "r8" - Name 1730 "r00" - Name 1734 "r01" - Name 1738 "r02" - Name 1742 "r03" - Name 1746 "r04" - Name 1750 "r05" - Name 1754 "r06" - Name 1758 "r07" - Name 1762 "r08" - Name 1766 "r09" - Name 1770 "r10" - Name 1774 "r11" - Name 1778 "r12" - Name 1782 "r13" - Name 1786 "r14" - Name 1790 "r15" - Name 1794 "r16" - Name 1798 "PS_OUTPUT" - MemberName 1798(PS_OUTPUT) 0 "color" - Name 1800 "ps_output" - Name 1805 "color" - Name 1810 "gs_ua" - Name 1811 "gs_ub" - Name 1812 "gs_uc" - Name 1814 "gs_ua2" - Name 1815 "gs_ub2" - Name 1816 "gs_uc2" - Name 1818 "gs_ua3" - Name 1819 "gs_ub3" - Name 1820 "gs_uc3" - Name 1822 "gs_ua4" - Name 1823 "gs_ub4" - Name 1824 "gs_uc4" - Decorate 1805(color) Location 0 + Name 441 "r032" + Name 443 "r033" + Name 446 "r035" + Name 450 "r036" + Name 453 "r037" + Name 455 "ResType" + Name 459 "r038" + Name 463 "r039" + Name 466 "r040" + Name 469 "r041" + Name 473 "r039a" + Name 478 "r042" + Name 481 "r043" + Name 484 "r044" + Name 488 "r045" + Name 491 "r046" + Name 495 "r047" + Name 499 "r048" + Name 502 "r049" + Name 506 "r050" + Name 509 "r051" + Name 513 "r052" + Name 517 "r053" + Name 522 "r054" + Name 527 "r055" + Name 530 "r056" + Name 533 "r057" + Name 538 "r058" + Name 541 "r059" + Name 548 "r060" + Name 551 "r061" + Name 556 "r062" + Name 559 "r063" + Name 563 "r064" + Name 566 "r065" + Name 569 "r066" + Name 575 "r000" + Name 578 "r001" + Name 581 "r002" + Name 584 "r003" + Name 587 "r004" + Name 592 "r005" + Name 595 "r006" + Name 598 "r007" + Name 601 "r009" + Name 604 "r010" + Name 608 "r011" + Name 611 "r012" + Name 624 "r013" + Name 627 "r014" + Name 630 "r015" + Name 635 "r016" + Name 639 "r017" + Name 642 "r018" + Name 645 "r019" + Name 648 "r020" + Name 651 "r021" + Name 654 "r022" + Name 657 "r023" + Name 660 "r024" + Name 664 "r025" + Name 668 "r029" + Name 671 "r030" + Name 674 "r031" + Name 679 "r032" + Name 683 "r033" + Name 685 "r034" + Name 688 "r036" + Name 692 "r037" + Name 695 "r038" + Name 697 "ResType" + Name 701 "r039" + Name 705 "r040" + Name 708 "r041" + Name 711 "r042" + Name 715 "r039a" + Name 720 "r039b" + Name 726 "r043" + Name 729 "r044" + Name 732 "r045" + Name 736 "r046" + Name 739 "r047" + Name 743 "r048" + Name 747 "r049" + Name 750 "r050" + Name 754 "r051" + Name 757 "r052" + Name 761 "r053" + Name 765 "r054" + Name 769 "r055" + Name 772 "r056" + Name 775 "r057" + Name 778 "r058" + Name 783 "r059" + Name 786 "r060" + Name 793 "r061" + Name 796 "r062" + Name 801 "r063" + Name 804 "r064" + Name 808 "r065" + Name 811 "r066" + Name 814 "r067" + Name 821 "r000" + Name 824 "r001" + Name 827 "r002" + Name 830 "r003" + Name 833 "r004" + Name 838 "r005" + Name 841 "r006" + Name 844 "r007" + Name 847 "r009" + Name 850 "r010" + Name 854 "r011" + Name 857 "r012" + Name 870 "r013" + Name 873 "r014" + Name 876 "r015" + Name 879 "r016" + Name 882 "r017" + Name 885 "r018" + Name 888 "r019" + Name 891 "r020" + Name 894 "r021" + Name 897 "r022" + Name 900 "r023" + Name 904 "r024" + Name 908 "r025" + Name 919 "r029" + Name 922 "r030" + Name 925 "r031" + Name 930 "r032" + Name 935 "r033" + Name 937 "r034" + Name 940 "r036" + Name 944 "r037" + Name 947 "r038" + Name 949 "ResType" + Name 953 "r039" + Name 957 "r040" + Name 960 "r041" + Name 963 "r042" + Name 967 "r039a" + Name 972 "r043" + Name 975 "r044" + Name 978 "r045" + Name 982 "r046" + Name 985 "r047" + Name 989 "r048" + Name 993 "r049" + Name 996 "r050" + Name 1000 "r051" + Name 1003 "r052" + Name 1007 "r053" + Name 1011 "r054" + Name 1015 "r055" + Name 1018 "r056" + Name 1021 "r057" + Name 1024 "r058" + Name 1029 "r059" + Name 1032 "r060" + Name 1039 "r061" + Name 1042 "r062" + Name 1047 "r063" + Name 1050 "r064" + Name 1054 "r065" + Name 1057 "r066" + Name 1060 "r067" + Name 1067 "r000" + Name 1070 "r001" + Name 1075 "r003" + Name 1078 "r004" + Name 1081 "r005" + Name 1084 "r006" + Name 1088 "r007" + Name 1099 "r008" + Name 1104 "r009" + Name 1107 "r010" + Name 1110 "r011" + Name 1113 "r012" + Name 1116 "r013" + Name 1119 "r014" + Name 1122 "r015" + Name 1125 "r016" + Name 1128 "r017" + Name 1131 "r018" + Name 1134 "r019" + Name 1137 "R020" + Name 1140 "r021" + Name 1143 "r022" + Name 1153 "r023" + Name 1156 "r024" + Name 1158 "ResType" + Name 1162 "r025" + Name 1165 "r026" + Name 1169 "r026a" + Name 1174 "r027" + Name 1177 "r028" + Name 1181 "r029" + Name 1184 "r030" + Name 1188 "r031" + Name 1192 "r032" + Name 1196 "r033" + Name 1199 "r034" + Name 1202 "r035" + Name 1205 "r036" + Name 1210 "r037" + Name 1213 "r038" + Name 1220 "r039" + Name 1223 "r049" + Name 1228 "r041" + Name 1231 "r042" + Name 1235 "r043" + Name 1238 "r044" + Name 1243 "r046" + Name 1250 "r000" + Name 1253 "r001" + Name 1258 "r003" + Name 1261 "r004" + Name 1264 "r005" + Name 1267 "r006" + Name 1271 "r007" + Name 1282 "r008" + Name 1287 "r009" + Name 1290 "r010" + Name 1293 "r011" + Name 1296 "r012" + Name 1299 "r013" + Name 1302 "r014" + Name 1305 "r015" + Name 1308 "r016" + Name 1311 "r017" + Name 1314 "r018" + Name 1317 "r019" + Name 1320 "R020" + Name 1323 "r021" + Name 1326 "r022" + Name 1339 "r023" + Name 1342 "r024" + Name 1344 "ResType" + Name 1348 "r025" + Name 1351 "r026" + Name 1355 "r026a" + Name 1360 "r027" + Name 1363 "r028" + Name 1367 "r029" + Name 1370 "r030" + Name 1374 "r031" + Name 1378 "r032" + Name 1382 "r033" + Name 1385 "r034" + Name 1388 "r035" + Name 1391 "r036" + Name 1396 "r037" + Name 1399 "r038" + Name 1406 "r039" + Name 1409 "r049" + Name 1414 "r041" + Name 1417 "r042" + Name 1421 "r043" + Name 1424 "r044" + Name 1429 "r046" + Name 1436 "r000" + Name 1439 "r001" + Name 1444 "r003" + Name 1447 "r004" + Name 1450 "r005" + Name 1453 "r006" + Name 1457 "r007" + Name 1468 "r008" + Name 1473 "r009" + Name 1476 "r010" + Name 1479 "r011" + Name 1482 "r012" + Name 1485 "r013" + Name 1488 "r014" + Name 1491 "r015" + Name 1494 "r016" + Name 1497 "r017" + Name 1500 "r018" + Name 1503 "r019" + Name 1506 "R020" + Name 1509 "r021" + Name 1512 "r022" + Name 1528 "r023" + Name 1531 "r024" + Name 1533 "ResType" + Name 1537 "r025" + Name 1540 "r026" + Name 1544 "r026a" + Name 1549 "r027" + Name 1552 "r028" + Name 1556 "r029" + Name 1559 "r030" + Name 1563 "r031" + Name 1567 "r032" + Name 1571 "r033" + Name 1574 "r034" + Name 1577 "r035" + Name 1580 "r036" + Name 1585 "r037" + Name 1588 "r038" + Name 1595 "r039" + Name 1598 "r049" + Name 1603 "r041" + Name 1606 "r042" + Name 1610 "r043" + Name 1613 "r044" + Name 1618 "r046" + Name 1625 "r0" + Name 1629 "r1" + Name 1633 "r2" + Name 1637 "r3" + Name 1641 "r4" + Name 1645 "r5" + Name 1649 "r6" + Name 1653 "r7" + Name 1657 "r8" + Name 1661 "r0" + Name 1665 "r1" + Name 1669 "r2" + Name 1673 "r3" + Name 1677 "r4" + Name 1681 "r5" + Name 1685 "r6" + Name 1689 "r7" + Name 1693 "r8" + Name 1697 "r0" + Name 1701 "r1" + Name 1705 "r2" + Name 1709 "r3" + Name 1713 "r4" + Name 1717 "r5" + Name 1721 "r6" + Name 1725 "r7" + Name 1729 "r8" + Name 1733 "r00" + Name 1737 "r01" + Name 1741 "r02" + Name 1745 "r03" + Name 1749 "r04" + Name 1753 "r05" + Name 1757 "r06" + Name 1761 "r07" + Name 1765 "r08" + Name 1769 "r09" + Name 1773 "r10" + Name 1777 "r11" + Name 1781 "r12" + Name 1785 "r13" + Name 1789 "r14" + Name 1793 "r15" + Name 1797 "r16" + Name 1801 "PS_OUTPUT" + MemberName 1801(PS_OUTPUT) 0 "color" + Name 1803 "ps_output" + Name 1808 "color" + Name 1813 "gs_ua" + Name 1814 "gs_ub" + Name 1815 "gs_uc" + Name 1817 "gs_ua2" + Name 1818 "gs_ub2" + Name 1819 "gs_uc2" + Name 1821 "gs_ua3" + Name 1822 "gs_ub3" + Name 1823 "gs_uc3" + Name 1825 "gs_ua4" + Name 1826 "gs_ub4" + Name 1827 "gs_uc4" + Decorate 1808(color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -6182,98 +6184,100 @@ gl_FragCoord origin is upper left 148: TypeInt 32 1 149: TypePointer Function 148(int) 175: 6(float) Constant 0 - 187: 8(int) Constant 7 - 217: 148(int) Constant 7 - 235(ResType): TypeStruct 6(float) 148(int) - 263: 6(float) Constant 1050288283 - 284: 6(float) Constant 1065353216 - 288: 8(int) Constant 2 + 187: 148(int) Constant 7 + 234(ResType): TypeStruct 6(float) 148(int) + 262: 6(float) Constant 1050288283 + 283: 6(float) Constant 1065353216 + 287: 148(int) Constant 2 352: TypeVector 148(int) 2 353: TypePointer Function 352(ivec2) 379: 24(fvec2) ConstantComposite 175 175 380: TypeVector 131(bool) 2 - 393: 8(int) Constant 3 - 394: 26(ivec2) ConstantComposite 187 393 - 437: 8(int) Constant 8 - 438: 26(ivec2) ConstantComposite 187 437 - 454(ResType): TypeStruct 24(fvec2) 352(ivec2) - 461: TypePointer Function 380(bvec2) - 519: 6(float) Constant 1073741824 - 522: 8(int) Constant 1 - 523: 26(ivec2) ConstantComposite 522 288 - 570: 24(fvec2) ConstantComposite 284 519 - 588: TypeVector 148(int) 3 - 589: TypePointer Function 588(ivec3) - 615: 36(fvec3) ConstantComposite 175 175 175 - 616: TypeVector 131(bool) 3 - 629: 8(int) Constant 5 - 630: 38(ivec3) ConstantComposite 187 393 629 - 677: 8(int) Constant 4 - 678: 38(ivec3) ConstantComposite 288 393 677 - 694(ResType): TypeStruct 36(fvec3) 588(ivec3) - 701: TypePointer Function 616(bvec3) - 720: 6(float) Constant 1050253722 - 767: 38(ivec3) ConstantComposite 522 288 393 - 814: 6(float) Constant 1077936128 - 815: 36(fvec3) ConstantComposite 284 519 814 - 833: TypeVector 148(int) 4 - 834: TypePointer Function 833(ivec4) - 860: 48(fvec4) ConstantComposite 175 175 175 175 - 861: TypeVector 131(bool) 4 - 874: 50(ivec4) ConstantComposite 187 393 629 288 - 928: 8(int) Constant 9 - 929: 8(int) Constant 10 - 930: 50(ivec4) ConstantComposite 187 437 928 929 - 946(ResType): TypeStruct 48(fvec4) 833(ivec4) - 953: TypePointer Function 861(bvec4) - 1013: 50(ivec4) ConstantComposite 522 288 393 677 - 1060: 6(float) Constant 1082130432 - 1061: 48(fvec4) ConstantComposite 284 519 814 1060 - 1089: 60 ConstantComposite 379 379 - 1090: TypeMatrix 380(bvec2) 2 - 1155(ResType): TypeStruct 60 352(ivec2) - 1243: 24(fvec2) ConstantComposite 519 519 - 1244: 60 ConstantComposite 1243 1243 - 1272: 68 ConstantComposite 615 615 615 - 1273: TypeMatrix 616(bvec3) 3 - 1341(ResType): TypeStruct 68 588(ivec3) - 1429: 36(fvec3) ConstantComposite 814 814 814 - 1430: 68 ConstantComposite 1429 1429 1429 - 1458: 76 ConstantComposite 860 860 860 860 - 1459: TypeMatrix 861(bvec4) 4 - 1530(ResType): TypeStruct 76 833(ivec4) - 1618: 48(fvec4) ConstantComposite 1060 1060 1060 1060 - 1619: 76 ConstantComposite 1618 1618 1618 1618 - 1798(PS_OUTPUT): TypeStruct 48(fvec4) - 1799: TypePointer Function 1798(PS_OUTPUT) - 1801: 148(int) Constant 0 - 1802: 48(fvec4) ConstantComposite 284 284 284 284 - 1804: TypePointer Output 48(fvec4) - 1805(color): 1804(ptr) Variable Output - 1809: TypePointer Private 8(int) - 1810(gs_ua): 1809(ptr) Variable Private - 1811(gs_ub): 1809(ptr) Variable Private - 1812(gs_uc): 1809(ptr) Variable Private - 1813: TypePointer Private 26(ivec2) - 1814(gs_ua2): 1813(ptr) Variable Private - 1815(gs_ub2): 1813(ptr) Variable Private - 1816(gs_uc2): 1813(ptr) Variable Private - 1817: TypePointer Private 38(ivec3) - 1818(gs_ua3): 1817(ptr) Variable Private - 1819(gs_ub3): 1817(ptr) Variable Private - 1820(gs_uc3): 1817(ptr) Variable Private - 1821: TypePointer Private 50(ivec4) - 1822(gs_ua4): 1821(ptr) Variable Private - 1823(gs_ub4): 1821(ptr) Variable Private - 1824(gs_uc4): 1821(ptr) Variable Private + 393: 148(int) Constant 3 + 394: 352(ivec2) ConstantComposite 187 393 + 437: 8(int) Constant 7 + 438: 8(int) Constant 8 + 439: 26(ivec2) ConstantComposite 437 438 + 455(ResType): TypeStruct 24(fvec2) 352(ivec2) + 462: TypePointer Function 380(bvec2) + 520: 6(float) Constant 1073741824 + 523: 8(int) Constant 1 + 524: 8(int) Constant 2 + 525: 26(ivec2) ConstantComposite 523 524 + 572: 24(fvec2) ConstantComposite 283 520 + 590: TypeVector 148(int) 3 + 591: TypePointer Function 590(ivec3) + 617: 36(fvec3) ConstantComposite 175 175 175 + 618: TypeVector 131(bool) 3 + 631: 8(int) Constant 3 + 632: 8(int) Constant 5 + 633: 38(ivec3) ConstantComposite 437 631 632 + 680: 8(int) Constant 4 + 681: 38(ivec3) ConstantComposite 524 631 680 + 697(ResType): TypeStruct 36(fvec3) 590(ivec3) + 704: TypePointer Function 618(bvec3) + 723: 6(float) Constant 1050253722 + 770: 38(ivec3) ConstantComposite 523 524 631 + 817: 6(float) Constant 1077936128 + 818: 36(fvec3) ConstantComposite 283 520 817 + 836: TypeVector 148(int) 4 + 837: TypePointer Function 836(ivec4) + 863: 48(fvec4) ConstantComposite 175 175 175 175 + 864: TypeVector 131(bool) 4 + 877: 50(ivec4) ConstantComposite 437 631 632 524 + 931: 8(int) Constant 9 + 932: 8(int) Constant 10 + 933: 50(ivec4) ConstantComposite 437 438 931 932 + 949(ResType): TypeStruct 48(fvec4) 836(ivec4) + 956: TypePointer Function 864(bvec4) + 1016: 50(ivec4) ConstantComposite 523 524 631 680 + 1063: 6(float) Constant 1082130432 + 1064: 48(fvec4) ConstantComposite 283 520 817 1063 + 1092: 60 ConstantComposite 379 379 + 1093: TypeMatrix 380(bvec2) 2 + 1158(ResType): TypeStruct 60 352(ivec2) + 1246: 24(fvec2) ConstantComposite 520 520 + 1247: 60 ConstantComposite 1246 1246 + 1275: 68 ConstantComposite 617 617 617 + 1276: TypeMatrix 618(bvec3) 3 + 1344(ResType): TypeStruct 68 590(ivec3) + 1432: 36(fvec3) ConstantComposite 817 817 817 + 1433: 68 ConstantComposite 1432 1432 1432 + 1461: 76 ConstantComposite 863 863 863 863 + 1462: TypeMatrix 864(bvec4) 4 + 1533(ResType): TypeStruct 76 836(ivec4) + 1621: 48(fvec4) ConstantComposite 1063 1063 1063 1063 + 1622: 76 ConstantComposite 1621 1621 1621 1621 + 1801(PS_OUTPUT): TypeStruct 48(fvec4) + 1802: TypePointer Function 1801(PS_OUTPUT) + 1804: 148(int) Constant 0 + 1805: 48(fvec4) ConstantComposite 283 283 283 283 + 1807: TypePointer Output 48(fvec4) + 1808(color): 1807(ptr) Variable Output + 1812: TypePointer Workgroup 8(int) + 1813(gs_ua): 1812(ptr) Variable Workgroup + 1814(gs_ub): 1812(ptr) Variable Workgroup + 1815(gs_uc): 1812(ptr) Variable Workgroup + 1816: TypePointer Workgroup 26(ivec2) + 1817(gs_ua2): 1816(ptr) Variable Workgroup + 1818(gs_ub2): 1816(ptr) Variable Workgroup + 1819(gs_uc2): 1816(ptr) Variable Workgroup + 1820: TypePointer Workgroup 38(ivec3) + 1821(gs_ua3): 1820(ptr) Variable Workgroup + 1822(gs_ub3): 1820(ptr) Variable Workgroup + 1823(gs_uc3): 1820(ptr) Variable Workgroup + 1824: TypePointer Workgroup 50(ivec4) + 1825(gs_ua4): 1824(ptr) Variable Workgroup + 1826(gs_ub4): 1824(ptr) Variable Workgroup + 1827(gs_uc4): 1824(ptr) Variable Workgroup 4(main): 2 Function None 3 5: Label - 1800(ps_output): 1799(ptr) Variable Function - 1803: 49(ptr) AccessChain 1800(ps_output) 1801 - Store 1803 1802 - 1806: 49(ptr) AccessChain 1800(ps_output) 1801 - 1807: 48(fvec4) Load 1806 - Store 1805(color) 1807 + 1803(ps_output): 1802(ptr) Variable Function + 1806: 49(ptr) AccessChain 1803(ps_output) 1804 + Store 1806 1805 + 1809: 49(ptr) AccessChain 1803(ps_output) 1804 + 1810: 48(fvec4) Load 1809 + Store 1808(color) 1810 Return FunctionEnd 16(PixelShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 @@ -6297,7 +6301,7 @@ gl_FragCoord origin is upper left 169(r012): 7(ptr) Variable Function 180(r014): 7(ptr) Variable Function 183(r015): 7(ptr) Variable Function - 186(r016): 9(ptr) Variable Function + 186(r016): 149(ptr) Variable Function 189(r017): 7(ptr) Variable Function 192(r018): 7(ptr) Variable Function 195(r019): 7(ptr) Variable Function @@ -6308,25 +6312,25 @@ gl_FragCoord origin is upper left 210(r027): 7(ptr) Variable Function 213(r028): 7(ptr) Variable Function 216(r029): 9(ptr) Variable Function - 220(r030): 9(ptr) Variable Function - 223(r031): 7(ptr) Variable Function - 226(r033): 7(ptr) Variable Function - 230(r034): 7(ptr) Variable Function - 233(r035): 7(ptr) Variable Function - 239(r036): 7(ptr) Variable Function - 242(r037): 132(ptr) Variable Function - 245(r038): 132(ptr) Variable Function - 248(r039): 7(ptr) Variable Function - 252(r039a): 7(ptr) Variable Function - 257(r040): 7(ptr) Variable Function - 260(r041): 7(ptr) Variable Function - 265(r042): 7(ptr) Variable Function - 268(r043): 7(ptr) Variable Function - 272(r044): 7(ptr) Variable Function - 276(r045): 7(ptr) Variable Function - 280(r046): 7(ptr) Variable Function - 283(r047): 7(ptr) Variable Function - 287(r048): 9(ptr) Variable Function + 219(r030): 9(ptr) Variable Function + 222(r031): 7(ptr) Variable Function + 225(r033): 7(ptr) Variable Function + 229(r034): 7(ptr) Variable Function + 232(r035): 7(ptr) Variable Function + 238(r036): 7(ptr) Variable Function + 241(r037): 132(ptr) Variable Function + 244(r038): 132(ptr) Variable Function + 247(r039): 7(ptr) Variable Function + 251(r039a): 7(ptr) Variable Function + 256(r040): 7(ptr) Variable Function + 259(r041): 7(ptr) Variable Function + 264(r042): 7(ptr) Variable Function + 267(r043): 7(ptr) Variable Function + 271(r044): 7(ptr) Variable Function + 275(r045): 7(ptr) Variable Function + 279(r046): 7(ptr) Variable Function + 282(r047): 7(ptr) Variable Function + 286(r048): 9(ptr) Variable Function 290(r049): 7(ptr) Variable Function 293(r050): 7(ptr) Variable Function 296(r051): 7(ptr) Variable Function @@ -6391,7 +6395,7 @@ gl_FragCoord origin is upper left 184: 6(float) Load 11(inF0) 185: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 184 Store 183(r015) 185 - 188: 8(int) BitCount 187 + 188: 148(int) BitCount 187 Store 186(r016) 188 190: 6(float) Load 11(inF0) 191: 6(float) DPdx 190 @@ -6420,76 +6424,77 @@ gl_FragCoord origin is upper left 214: 6(float) Load 11(inF0) 215: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 214 Store 213(r028) 215 - 218: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 217 - 219: 8(int) Bitcast 218 - Store 216(r029) 219 - 221: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 217 - 222: 8(int) Bitcast 221 - Store 220(r030) 222 - 224: 6(float) Load 11(inF0) - 225: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 224 - Store 223(r031) 225 - 227: 6(float) Load 11(inF0) - 228: 6(float) Load 12(inF1) - 229: 6(float) FMod 227 228 - Store 226(r033) 229 - 231: 6(float) Load 11(inF0) - 232: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 231 - Store 230(r034) 232 - 234: 6(float) Load 11(inF0) - 236:235(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 234 - 237: 148(int) CompositeExtract 236 1 - Store 12(inF1) 237 - 238: 6(float) CompositeExtract 236 0 - Store 233(r035) 238 - 240: 6(float) Load 11(inF0) - 241: 6(float) Fwidth 240 - Store 239(r036) 241 - 243: 6(float) Load 11(inF0) - 244: 131(bool) IsInf 243 - Store 242(r037) 244 - 246: 6(float) Load 11(inF0) - 247: 131(bool) IsNan 246 - Store 245(r038) 247 - 249: 6(float) Load 11(inF0) - 250: 6(float) Load 12(inF1) - 251: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 249 250 - Store 248(r039) 251 - 253: 6(float) Load 11(inF0) - 254: 6(float) Load 12(inF1) - 255: 6(float) Load 13(inF2) - 256: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 253 254 255 - Store 252(r039a) 256 - 258: 6(float) Load 11(inF0) - 259: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 258 - Store 257(r040) 259 - 261: 6(float) Load 11(inF0) - 262: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 261 - 264: 6(float) FMul 262 263 - Store 260(r041) 264 - 266: 6(float) Load 11(inF0) - 267: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 266 - Store 265(r042) 267 - 269: 6(float) Load 11(inF0) - 270: 6(float) Load 12(inF1) - 271: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 269 270 - Store 268(r043) 271 - 273: 6(float) Load 11(inF0) - 274: 6(float) Load 12(inF1) - 275: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 273 274 - Store 272(r044) 275 - 277: 6(float) Load 11(inF0) - 278: 6(float) Load 12(inF1) - 279: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 277 278 - Store 276(r045) 279 - 281: 6(float) Load 11(inF0) - 282: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 281 - Store 280(r046) 282 - 285: 6(float) Load 11(inF0) - 286: 6(float) FDiv 284 285 - Store 283(r047) 286 - 289: 8(int) BitReverse 288 - Store 287(r048) 289 + 217: 148(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 187 + 218: 8(int) Bitcast 217 + Store 216(r029) 218 + 220: 148(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 187 + 221: 8(int) Bitcast 220 + Store 219(r030) 221 + 223: 6(float) Load 11(inF0) + 224: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 223 + Store 222(r031) 224 + 226: 6(float) Load 11(inF0) + 227: 6(float) Load 12(inF1) + 228: 6(float) FMod 226 227 + Store 225(r033) 228 + 230: 6(float) Load 11(inF0) + 231: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 230 + Store 229(r034) 231 + 233: 6(float) Load 11(inF0) + 235:234(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 233 + 236: 148(int) CompositeExtract 235 1 + Store 12(inF1) 236 + 237: 6(float) CompositeExtract 235 0 + Store 232(r035) 237 + 239: 6(float) Load 11(inF0) + 240: 6(float) Fwidth 239 + Store 238(r036) 240 + 242: 6(float) Load 11(inF0) + 243: 131(bool) IsInf 242 + Store 241(r037) 243 + 245: 6(float) Load 11(inF0) + 246: 131(bool) IsNan 245 + Store 244(r038) 246 + 248: 6(float) Load 11(inF0) + 249: 6(float) Load 12(inF1) + 250: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 248 249 + Store 247(r039) 250 + 252: 6(float) Load 11(inF0) + 253: 6(float) Load 12(inF1) + 254: 6(float) Load 13(inF2) + 255: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 252 253 254 + Store 251(r039a) 255 + 257: 6(float) Load 11(inF0) + 258: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 257 + Store 256(r040) 258 + 260: 6(float) Load 11(inF0) + 261: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 260 + 263: 6(float) FMul 261 262 + Store 259(r041) 263 + 265: 6(float) Load 11(inF0) + 266: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 265 + Store 264(r042) 266 + 268: 6(float) Load 11(inF0) + 269: 6(float) Load 12(inF1) + 270: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 268 269 + Store 267(r043) 270 + 272: 6(float) Load 11(inF0) + 273: 6(float) Load 12(inF1) + 274: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 272 273 + Store 271(r044) 274 + 276: 6(float) Load 11(inF0) + 277: 6(float) Load 12(inF1) + 278: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 276 277 + Store 275(r045) 278 + 280: 6(float) Load 11(inF0) + 281: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 280 + Store 279(r046) 281 + 284: 6(float) Load 11(inF0) + 285: 6(float) FDiv 283 284 + Store 282(r047) 285 + 288: 148(int) BitReverse 287 + 289: 8(int) Bitcast 288 + Store 286(r048) 289 291: 6(float) Load 11(inF0) 292: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 291 Store 290(r049) 292 @@ -6497,7 +6502,7 @@ gl_FragCoord origin is upper left 295: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 294 Store 293(r050) 295 297: 6(float) Load 11(inF0) - 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 284 + 298: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 297 175 283 Store 296(r051) 298 300: 6(float) Load 11(inF0) 301: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 300 @@ -6565,7 +6570,7 @@ gl_FragCoord origin is upper left 373(r012): 25(ptr) Variable Function 386(r013): 25(ptr) Variable Function 389(r015): 25(ptr) Variable Function - 392(r016): 27(ptr) Variable Function + 392(r016): 353(ptr) Variable Function 396(r017): 25(ptr) Variable Function 399(r018): 25(ptr) Variable Function 402(r019): 25(ptr) Variable Function @@ -6579,41 +6584,41 @@ gl_FragCoord origin is upper left 428(r029): 25(ptr) Variable Function 431(r030): 25(ptr) Variable Function 436(r031): 27(ptr) Variable Function - 440(r032): 27(ptr) Variable Function - 442(r033): 25(ptr) Variable Function - 445(r035): 25(ptr) Variable Function - 449(r036): 25(ptr) Variable Function - 452(r037): 25(ptr) Variable Function - 458(r038): 25(ptr) Variable Function - 462(r039): 461(ptr) Variable Function - 465(r040): 461(ptr) Variable Function - 468(r041): 25(ptr) Variable Function - 472(r039a): 25(ptr) Variable Function - 477(r042): 7(ptr) Variable Function - 480(r043): 25(ptr) Variable Function - 483(r044): 25(ptr) Variable Function - 487(r045): 25(ptr) Variable Function - 490(r046): 25(ptr) Variable Function - 494(r047): 25(ptr) Variable Function - 498(r048): 25(ptr) Variable Function - 501(r049): 25(ptr) Variable Function - 505(r050): 25(ptr) Variable Function - 508(r051): 25(ptr) Variable Function - 512(r052): 25(ptr) Variable Function - 516(r053): 25(ptr) Variable Function - 521(r054): 27(ptr) Variable Function - 525(r055): 25(ptr) Variable Function - 528(r056): 25(ptr) Variable Function - 531(r057): 25(ptr) Variable Function - 536(r058): 25(ptr) Variable Function - 539(r059): 25(ptr) Variable Function - 546(r060): 25(ptr) Variable Function - 549(r061): 25(ptr) Variable Function - 554(r062): 25(ptr) Variable Function - 557(r063): 25(ptr) Variable Function - 561(r064): 25(ptr) Variable Function - 564(r065): 25(ptr) Variable Function - 567(r066): 25(ptr) Variable Function + 441(r032): 27(ptr) Variable Function + 443(r033): 25(ptr) Variable Function + 446(r035): 25(ptr) Variable Function + 450(r036): 25(ptr) Variable Function + 453(r037): 25(ptr) Variable Function + 459(r038): 25(ptr) Variable Function + 463(r039): 462(ptr) Variable Function + 466(r040): 462(ptr) Variable Function + 469(r041): 25(ptr) Variable Function + 473(r039a): 25(ptr) Variable Function + 478(r042): 7(ptr) Variable Function + 481(r043): 25(ptr) Variable Function + 484(r044): 25(ptr) Variable Function + 488(r045): 25(ptr) Variable Function + 491(r046): 25(ptr) Variable Function + 495(r047): 25(ptr) Variable Function + 499(r048): 25(ptr) Variable Function + 502(r049): 25(ptr) Variable Function + 506(r050): 25(ptr) Variable Function + 509(r051): 25(ptr) Variable Function + 513(r052): 25(ptr) Variable Function + 517(r053): 25(ptr) Variable Function + 522(r054): 27(ptr) Variable Function + 527(r055): 25(ptr) Variable Function + 530(r056): 25(ptr) Variable Function + 533(r057): 25(ptr) Variable Function + 538(r058): 25(ptr) Variable Function + 541(r059): 25(ptr) Variable Function + 548(r060): 25(ptr) Variable Function + 551(r061): 25(ptr) Variable Function + 556(r062): 25(ptr) Variable Function + 559(r063): 25(ptr) Variable Function + 563(r064): 25(ptr) Variable Function + 566(r065): 25(ptr) Variable Function + 569(r066): 25(ptr) Variable Function 338: 24(fvec2) Load 29(inF0) 339: 131(bool) All 338 Store 337(r000) 339 @@ -6667,7 +6672,7 @@ gl_FragCoord origin is upper left 390: 24(fvec2) Load 29(inF0) 391: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 390 Store 389(r015) 391 - 395: 26(ivec2) BitCount 394 + 395: 352(ivec2) BitCount 394 Store 392(r016) 395 397: 24(fvec2) Load 29(inF0) 398: 24(fvec2) DPdx 397 @@ -6709,137 +6714,137 @@ gl_FragCoord origin is upper left 434: 24(fvec2) Load 31(inF2) 435: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 432 433 434 Store 431(r030) 435 - 439: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 438 - Store 436(r031) 439 - 441: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 438 - Store 440(r032) 441 - 443: 24(fvec2) Load 29(inF0) - 444: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 443 - Store 442(r033) 444 - 446: 24(fvec2) Load 29(inF0) - 447: 24(fvec2) Load 30(inF1) - 448: 24(fvec2) FMod 446 447 - Store 445(r035) 448 - 450: 24(fvec2) Load 29(inF0) - 451: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 450 - Store 449(r036) 451 - 453: 24(fvec2) Load 29(inF0) - 455:454(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 453 - 456: 352(ivec2) CompositeExtract 455 1 - Store 30(inF1) 456 - 457: 24(fvec2) CompositeExtract 455 0 - Store 452(r037) 457 - 459: 24(fvec2) Load 29(inF0) - 460: 24(fvec2) Fwidth 459 - Store 458(r038) 460 - 463: 24(fvec2) Load 29(inF0) - 464: 380(bvec2) IsInf 463 - Store 462(r039) 464 - 466: 24(fvec2) Load 29(inF0) - 467: 380(bvec2) IsNan 466 - Store 465(r040) 467 - 469: 24(fvec2) Load 29(inF0) - 470: 24(fvec2) Load 30(inF1) - 471: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 469 470 - Store 468(r041) 471 - 473: 24(fvec2) Load 29(inF0) - 474: 24(fvec2) Load 30(inF1) - 475: 24(fvec2) Load 31(inF2) - 476: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 473 474 475 - Store 472(r039a) 476 - 478: 24(fvec2) Load 29(inF0) - 479: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 478 - Store 477(r042) 479 - 481: 24(fvec2) Load 29(inF0) - 482: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 481 - Store 480(r043) 482 - 484: 24(fvec2) Load 29(inF0) - 485: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 484 - 486: 24(fvec2) VectorTimesScalar 485 263 - Store 483(r044) 486 - 488: 24(fvec2) Load 29(inF0) - 489: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 488 - Store 487(r045) 489 - 491: 24(fvec2) Load 29(inF0) - 492: 24(fvec2) Load 30(inF1) - 493: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 491 492 - Store 490(r046) 493 - 495: 24(fvec2) Load 29(inF0) - 496: 24(fvec2) Load 30(inF1) - 497: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 495 496 - Store 494(r047) 497 - 499: 24(fvec2) Load 29(inF0) - 500: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 499 - Store 498(r048) 500 - 502: 24(fvec2) Load 29(inF0) - 503: 24(fvec2) Load 30(inF1) - 504: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 502 503 - Store 501(r049) 504 - 506: 24(fvec2) Load 29(inF0) - 507: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 506 - Store 505(r050) 507 - 509: 24(fvec2) Load 29(inF0) - 510: 24(fvec2) CompositeConstruct 284 284 - 511: 24(fvec2) FDiv 510 509 - Store 508(r051) 511 - 513: 24(fvec2) Load 29(inF0) - 514: 24(fvec2) Load 30(inF1) - 515: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 513 514 - Store 512(r052) 515 - 517: 24(fvec2) Load 29(inF0) - 518: 24(fvec2) Load 30(inF1) - 520: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 517 518 519 - Store 516(r053) 520 - 524: 26(ivec2) BitReverse 523 - Store 521(r054) 524 - 526: 24(fvec2) Load 29(inF0) - 527: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 526 - Store 525(r055) 527 - 529: 24(fvec2) Load 29(inF0) - 530: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 529 - Store 528(r056) 530 - 532: 24(fvec2) Load 29(inF0) - 533: 24(fvec2) CompositeConstruct 175 175 - 534: 24(fvec2) CompositeConstruct 284 284 - 535: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 532 533 534 - Store 531(r057) 535 - 537: 24(fvec2) Load 29(inF0) - 538: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 537 - Store 536(r058) 538 - 540: 24(fvec2) Load 29(inF0) - 541: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 540 - Store 539(r059) 541 + 440: 26(ivec2) ExtInst 1(GLSL.std.450) 75(FindUMsb) 439 + Store 436(r031) 440 + 442: 26(ivec2) ExtInst 1(GLSL.std.450) 73(FindILsb) 439 + Store 441(r032) 442 + 444: 24(fvec2) Load 29(inF0) + 445: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 444 + Store 443(r033) 445 + 447: 24(fvec2) Load 29(inF0) + 448: 24(fvec2) Load 30(inF1) + 449: 24(fvec2) FMod 447 448 + Store 446(r035) 449 + 451: 24(fvec2) Load 29(inF0) + 452: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 451 + Store 450(r036) 452 + 454: 24(fvec2) Load 29(inF0) + 456:455(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 454 + 457: 352(ivec2) CompositeExtract 456 1 + Store 30(inF1) 457 + 458: 24(fvec2) CompositeExtract 456 0 + Store 453(r037) 458 + 460: 24(fvec2) Load 29(inF0) + 461: 24(fvec2) Fwidth 460 + Store 459(r038) 461 + 464: 24(fvec2) Load 29(inF0) + 465: 380(bvec2) IsInf 464 + Store 463(r039) 465 + 467: 24(fvec2) Load 29(inF0) + 468: 380(bvec2) IsNan 467 + Store 466(r040) 468 + 470: 24(fvec2) Load 29(inF0) + 471: 24(fvec2) Load 30(inF1) + 472: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 470 471 + Store 469(r041) 472 + 474: 24(fvec2) Load 29(inF0) + 475: 24(fvec2) Load 30(inF1) + 476: 24(fvec2) Load 31(inF2) + 477: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 474 475 476 + Store 473(r039a) 477 + 479: 24(fvec2) Load 29(inF0) + 480: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 479 + Store 478(r042) 480 + 482: 24(fvec2) Load 29(inF0) + 483: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 482 + Store 481(r043) 483 + 485: 24(fvec2) Load 29(inF0) + 486: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 485 + 487: 24(fvec2) VectorTimesScalar 486 262 + Store 484(r044) 487 + 489: 24(fvec2) Load 29(inF0) + 490: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 489 + Store 488(r045) 490 + 492: 24(fvec2) Load 29(inF0) + 493: 24(fvec2) Load 30(inF1) + 494: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 492 493 + Store 491(r046) 494 + 496: 24(fvec2) Load 29(inF0) + 497: 24(fvec2) Load 30(inF1) + 498: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 496 497 + Store 495(r047) 498 + 500: 24(fvec2) Load 29(inF0) + 501: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 500 + Store 499(r048) 501 + 503: 24(fvec2) Load 29(inF0) + 504: 24(fvec2) Load 30(inF1) + 505: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 503 504 + Store 502(r049) 505 + 507: 24(fvec2) Load 29(inF0) + 508: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 507 + Store 506(r050) 508 + 510: 24(fvec2) Load 29(inF0) + 511: 24(fvec2) CompositeConstruct 283 283 + 512: 24(fvec2) FDiv 511 510 + Store 509(r051) 512 + 514: 24(fvec2) Load 29(inF0) + 515: 24(fvec2) Load 30(inF1) + 516: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 514 515 + Store 513(r052) 516 + 518: 24(fvec2) Load 29(inF0) + 519: 24(fvec2) Load 30(inF1) + 521: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 518 519 520 + Store 517(r053) 521 + 526: 26(ivec2) BitReverse 525 + Store 522(r054) 526 + 528: 24(fvec2) Load 29(inF0) + 529: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 528 + Store 527(r055) 529 + 531: 24(fvec2) Load 29(inF0) + 532: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 531 + Store 530(r056) 532 + 534: 24(fvec2) Load 29(inF0) + 535: 24(fvec2) CompositeConstruct 175 175 + 536: 24(fvec2) CompositeConstruct 283 283 + 537: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 534 535 536 + Store 533(r057) 537 + 539: 24(fvec2) Load 29(inF0) + 540: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 539 + Store 538(r058) 540 542: 24(fvec2) Load 29(inF0) 543: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 542 - Store 30(inF1) 543 + Store 541(r059) 543 544: 24(fvec2) Load 29(inF0) - 545: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 544 - Store 31(inF2) 545 - 547: 24(fvec2) Load 29(inF0) - 548: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 547 - Store 546(r060) 548 - 550: 24(fvec2) Load 29(inF0) - 551: 24(fvec2) Load 30(inF1) - 552: 24(fvec2) Load 31(inF2) - 553: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 550 551 552 - Store 549(r061) 553 - 555: 24(fvec2) Load 29(inF0) - 556: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 555 - Store 554(r062) 556 - 558: 24(fvec2) Load 29(inF0) - 559: 24(fvec2) Load 30(inF1) - 560: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 558 559 - Store 557(r063) 560 - 562: 24(fvec2) Load 29(inF0) - 563: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 562 - Store 561(r064) 563 - 565: 24(fvec2) Load 29(inF0) - 566: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 565 - Store 564(r065) 566 - 568: 24(fvec2) Load 29(inF0) - 569: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 568 - Store 567(r066) 569 - ReturnValue 570 + 545: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 544 + Store 30(inF1) 545 + 546: 24(fvec2) Load 29(inF0) + 547: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 546 + Store 31(inF2) 547 + 549: 24(fvec2) Load 29(inF0) + 550: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 549 + Store 548(r060) 550 + 552: 24(fvec2) Load 29(inF0) + 553: 24(fvec2) Load 30(inF1) + 554: 24(fvec2) Load 31(inF2) + 555: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 552 553 554 + Store 551(r061) 555 + 557: 24(fvec2) Load 29(inF0) + 558: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 557 + Store 556(r062) 558 + 560: 24(fvec2) Load 29(inF0) + 561: 24(fvec2) Load 30(inF1) + 562: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 560 561 + Store 559(r063) 562 + 564: 24(fvec2) Load 29(inF0) + 565: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 564 + Store 563(r064) 565 + 567: 24(fvec2) Load 29(inF0) + 568: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 567 + Store 566(r065) 568 + 570: 24(fvec2) Load 29(inF0) + 571: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 570 + Store 569(r066) 571 + ReturnValue 572 FunctionEnd 46(PixelShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 41(inF0): 37(ptr) FunctionParameter @@ -6848,306 +6853,306 @@ gl_FragCoord origin is upper left 44(inU0): 39(ptr) FunctionParameter 45(inU1): 39(ptr) FunctionParameter 47: Label - 573(r000): 132(ptr) Variable Function - 576(r001): 37(ptr) Variable Function - 579(r002): 37(ptr) Variable Function - 582(r003): 132(ptr) Variable Function - 585(r004): 37(ptr) Variable Function - 590(r005): 589(ptr) Variable Function - 593(r006): 39(ptr) Variable Function - 596(r007): 37(ptr) Variable Function - 599(r009): 37(ptr) Variable Function - 602(r010): 37(ptr) Variable Function - 606(r011): 37(ptr) Variable Function - 609(r012): 37(ptr) Variable Function - 622(r013): 37(ptr) Variable Function - 625(r014): 37(ptr) Variable Function - 628(r015): 39(ptr) Variable Function - 632(r016): 37(ptr) Variable Function - 636(r017): 37(ptr) Variable Function - 639(r018): 37(ptr) Variable Function - 642(r019): 37(ptr) Variable Function - 645(r020): 37(ptr) Variable Function - 648(r021): 37(ptr) Variable Function - 651(r022): 37(ptr) Variable Function - 654(r023): 37(ptr) Variable Function - 657(r024): 7(ptr) Variable Function - 661(r025): 7(ptr) Variable Function - 665(r029): 37(ptr) Variable Function - 668(r030): 37(ptr) Variable Function - 671(r031): 37(ptr) Variable Function - 676(r032): 39(ptr) Variable Function - 680(r033): 39(ptr) Variable Function - 682(r034): 37(ptr) Variable Function - 685(r036): 37(ptr) Variable Function - 689(r037): 37(ptr) Variable Function - 692(r038): 37(ptr) Variable Function - 698(r039): 37(ptr) Variable Function - 702(r040): 701(ptr) Variable Function - 705(r041): 701(ptr) Variable Function - 708(r042): 37(ptr) Variable Function - 712(r039a): 37(ptr) Variable Function - 717(r039b): 37(ptr) Variable Function - 723(r043): 7(ptr) Variable Function - 726(r044): 37(ptr) Variable Function - 729(r045): 37(ptr) Variable Function - 733(r046): 37(ptr) Variable Function - 736(r047): 37(ptr) Variable Function - 740(r048): 37(ptr) Variable Function - 744(r049): 37(ptr) Variable Function - 747(r050): 37(ptr) Variable Function - 751(r051): 37(ptr) Variable Function - 754(r052): 37(ptr) Variable Function - 758(r053): 37(ptr) Variable Function - 762(r054): 37(ptr) Variable Function - 766(r055): 39(ptr) Variable Function - 769(r056): 37(ptr) Variable Function - 772(r057): 37(ptr) Variable Function - 775(r058): 37(ptr) Variable Function - 780(r059): 37(ptr) Variable Function - 783(r060): 37(ptr) Variable Function - 790(r061): 37(ptr) Variable Function - 793(r062): 37(ptr) Variable Function - 798(r063): 37(ptr) Variable Function - 801(r064): 37(ptr) Variable Function - 805(r065): 37(ptr) Variable Function - 808(r066): 37(ptr) Variable Function - 811(r067): 37(ptr) Variable Function - 574: 36(fvec3) Load 41(inF0) - 575: 131(bool) All 574 - Store 573(r000) 575 - 577: 36(fvec3) Load 41(inF0) - 578: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 577 - Store 576(r001) 578 - 580: 36(fvec3) Load 41(inF0) - 581: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 580 - Store 579(r002) 581 - 583: 36(fvec3) Load 41(inF0) - 584: 131(bool) Any 583 - Store 582(r003) 584 - 586: 36(fvec3) Load 41(inF0) - 587: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 586 - Store 585(r004) 587 - 591: 36(fvec3) Load 41(inF0) - 592: 588(ivec3) Bitcast 591 - Store 590(r005) 592 - 594: 36(fvec3) Load 41(inF0) - 595: 38(ivec3) Bitcast 594 - Store 593(r006) 595 - 597: 38(ivec3) Load 44(inU0) - 598: 36(fvec3) Bitcast 597 - Store 596(r007) 598 - 600: 36(fvec3) Load 41(inF0) - 601: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 600 - Store 599(r009) 601 - 603: 36(fvec3) Load 41(inF0) - 604: 36(fvec3) Load 42(inF1) - 605: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 603 604 - Store 602(r010) 605 - 607: 36(fvec3) Load 41(inF0) - 608: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 607 - Store 606(r011) 608 - 610: 36(fvec3) Load 41(inF0) - 611: 36(fvec3) Load 42(inF1) - 612: 36(fvec3) Load 43(inF2) - 613: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 610 611 612 - Store 609(r012) 613 - 614: 36(fvec3) Load 41(inF0) - 617: 616(bvec3) FOrdLessThan 614 615 - 618: 131(bool) Any 617 - SelectionMerge 620 None - BranchConditional 618 619 620 - 619: Label + 575(r000): 132(ptr) Variable Function + 578(r001): 37(ptr) Variable Function + 581(r002): 37(ptr) Variable Function + 584(r003): 132(ptr) Variable Function + 587(r004): 37(ptr) Variable Function + 592(r005): 591(ptr) Variable Function + 595(r006): 39(ptr) Variable Function + 598(r007): 37(ptr) Variable Function + 601(r009): 37(ptr) Variable Function + 604(r010): 37(ptr) Variable Function + 608(r011): 37(ptr) Variable Function + 611(r012): 37(ptr) Variable Function + 624(r013): 37(ptr) Variable Function + 627(r014): 37(ptr) Variable Function + 630(r015): 39(ptr) Variable Function + 635(r016): 37(ptr) Variable Function + 639(r017): 37(ptr) Variable Function + 642(r018): 37(ptr) Variable Function + 645(r019): 37(ptr) Variable Function + 648(r020): 37(ptr) Variable Function + 651(r021): 37(ptr) Variable Function + 654(r022): 37(ptr) Variable Function + 657(r023): 37(ptr) Variable Function + 660(r024): 7(ptr) Variable Function + 664(r025): 7(ptr) Variable Function + 668(r029): 37(ptr) Variable Function + 671(r030): 37(ptr) Variable Function + 674(r031): 37(ptr) Variable Function + 679(r032): 39(ptr) Variable Function + 683(r033): 39(ptr) Variable Function + 685(r034): 37(ptr) Variable Function + 688(r036): 37(ptr) Variable Function + 692(r037): 37(ptr) Variable Function + 695(r038): 37(ptr) Variable Function + 701(r039): 37(ptr) Variable Function + 705(r040): 704(ptr) Variable Function + 708(r041): 704(ptr) Variable Function + 711(r042): 37(ptr) Variable Function + 715(r039a): 37(ptr) Variable Function + 720(r039b): 37(ptr) Variable Function + 726(r043): 7(ptr) Variable Function + 729(r044): 37(ptr) Variable Function + 732(r045): 37(ptr) Variable Function + 736(r046): 37(ptr) Variable Function + 739(r047): 37(ptr) Variable Function + 743(r048): 37(ptr) Variable Function + 747(r049): 37(ptr) Variable Function + 750(r050): 37(ptr) Variable Function + 754(r051): 37(ptr) Variable Function + 757(r052): 37(ptr) Variable Function + 761(r053): 37(ptr) Variable Function + 765(r054): 37(ptr) Variable Function + 769(r055): 39(ptr) Variable Function + 772(r056): 37(ptr) Variable Function + 775(r057): 37(ptr) Variable Function + 778(r058): 37(ptr) Variable Function + 783(r059): 37(ptr) Variable Function + 786(r060): 37(ptr) Variable Function + 793(r061): 37(ptr) Variable Function + 796(r062): 37(ptr) Variable Function + 801(r063): 37(ptr) Variable Function + 804(r064): 37(ptr) Variable Function + 808(r065): 37(ptr) Variable Function + 811(r066): 37(ptr) Variable Function + 814(r067): 37(ptr) Variable Function + 576: 36(fvec3) Load 41(inF0) + 577: 131(bool) All 576 + Store 575(r000) 577 + 579: 36(fvec3) Load 41(inF0) + 580: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 579 + Store 578(r001) 580 + 582: 36(fvec3) Load 41(inF0) + 583: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 582 + Store 581(r002) 583 + 585: 36(fvec3) Load 41(inF0) + 586: 131(bool) Any 585 + Store 584(r003) 586 + 588: 36(fvec3) Load 41(inF0) + 589: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 588 + Store 587(r004) 589 + 593: 36(fvec3) Load 41(inF0) + 594: 590(ivec3) Bitcast 593 + Store 592(r005) 594 + 596: 36(fvec3) Load 41(inF0) + 597: 38(ivec3) Bitcast 596 + Store 595(r006) 597 + 599: 38(ivec3) Load 44(inU0) + 600: 36(fvec3) Bitcast 599 + Store 598(r007) 600 + 602: 36(fvec3) Load 41(inF0) + 603: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 602 + Store 601(r009) 603 + 605: 36(fvec3) Load 41(inF0) + 606: 36(fvec3) Load 42(inF1) + 607: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 605 606 + Store 604(r010) 607 + 609: 36(fvec3) Load 41(inF0) + 610: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 609 + Store 608(r011) 610 + 612: 36(fvec3) Load 41(inF0) + 613: 36(fvec3) Load 42(inF1) + 614: 36(fvec3) Load 43(inF2) + 615: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 612 613 614 + Store 611(r012) 615 + 616: 36(fvec3) Load 41(inF0) + 619: 618(bvec3) FOrdLessThan 616 617 + 620: 131(bool) Any 619 + SelectionMerge 622 None + BranchConditional 620 621 622 + 621: Label Kill - 620: Label - 623: 36(fvec3) Load 41(inF0) - 624: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 623 - Store 622(r013) 624 - 626: 36(fvec3) Load 41(inF0) - 627: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 626 - Store 625(r014) 627 - 631: 38(ivec3) BitCount 630 - Store 628(r015) 631 - 633: 36(fvec3) Load 41(inF0) - 634: 36(fvec3) Load 42(inF1) - 635: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 633 634 - Store 632(r016) 635 - 637: 36(fvec3) Load 41(inF0) - 638: 36(fvec3) DPdx 637 - Store 636(r017) 638 + 622: Label + 625: 36(fvec3) Load 41(inF0) + 626: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 625 + Store 624(r013) 626 + 628: 36(fvec3) Load 41(inF0) + 629: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 628 + Store 627(r014) 629 + 634: 38(ivec3) BitCount 633 + Store 630(r015) 634 + 636: 36(fvec3) Load 41(inF0) + 637: 36(fvec3) Load 42(inF1) + 638: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 636 637 + Store 635(r016) 638 640: 36(fvec3) Load 41(inF0) - 641: 36(fvec3) DPdxCoarse 640 - Store 639(r018) 641 + 641: 36(fvec3) DPdx 640 + Store 639(r017) 641 643: 36(fvec3) Load 41(inF0) - 644: 36(fvec3) DPdxFine 643 - Store 642(r019) 644 + 644: 36(fvec3) DPdxCoarse 643 + Store 642(r018) 644 646: 36(fvec3) Load 41(inF0) - 647: 36(fvec3) DPdy 646 - Store 645(r020) 647 + 647: 36(fvec3) DPdxFine 646 + Store 645(r019) 647 649: 36(fvec3) Load 41(inF0) - 650: 36(fvec3) DPdyCoarse 649 - Store 648(r021) 650 + 650: 36(fvec3) DPdy 649 + Store 648(r020) 650 652: 36(fvec3) Load 41(inF0) - 653: 36(fvec3) DPdyFine 652 - Store 651(r022) 653 + 653: 36(fvec3) DPdyCoarse 652 + Store 651(r021) 653 655: 36(fvec3) Load 41(inF0) - 656: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 655 - Store 654(r023) 656 + 656: 36(fvec3) DPdyFine 655 + Store 654(r022) 656 658: 36(fvec3) Load 41(inF0) - 659: 36(fvec3) Load 42(inF1) - 660: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 658 659 - Store 657(r024) 660 - 662: 36(fvec3) Load 41(inF0) - 663: 36(fvec3) Load 42(inF1) - 664: 6(float) Dot 662 663 - Store 661(r025) 664 - 666: 36(fvec3) Load 41(inF0) - 667: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 666 - Store 665(r029) 667 + 659: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 658 + Store 657(r023) 659 + 661: 36(fvec3) Load 41(inF0) + 662: 36(fvec3) Load 42(inF1) + 663: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 661 662 + Store 660(r024) 663 + 665: 36(fvec3) Load 41(inF0) + 666: 36(fvec3) Load 42(inF1) + 667: 6(float) Dot 665 666 + Store 664(r025) 667 669: 36(fvec3) Load 41(inF0) - 670: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 669 - Store 668(r030) 670 + 670: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 669 + Store 668(r029) 670 672: 36(fvec3) Load 41(inF0) - 673: 36(fvec3) Load 42(inF1) - 674: 36(fvec3) Load 43(inF2) - 675: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 672 673 674 - Store 671(r031) 675 - 679: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 678 - Store 676(r032) 679 - 681: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 678 - Store 680(r033) 681 - 683: 36(fvec3) Load 41(inF0) - 684: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 683 - Store 682(r034) 684 + 673: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 672 + Store 671(r030) 673 + 675: 36(fvec3) Load 41(inF0) + 676: 36(fvec3) Load 42(inF1) + 677: 36(fvec3) Load 43(inF2) + 678: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 675 676 677 + Store 674(r031) 678 + 682: 38(ivec3) ExtInst 1(GLSL.std.450) 75(FindUMsb) 681 + Store 679(r032) 682 + 684: 38(ivec3) ExtInst 1(GLSL.std.450) 73(FindILsb) 681 + Store 683(r033) 684 686: 36(fvec3) Load 41(inF0) - 687: 36(fvec3) Load 42(inF1) - 688: 36(fvec3) FMod 686 687 - Store 685(r036) 688 - 690: 36(fvec3) Load 41(inF0) - 691: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 690 - Store 689(r037) 691 + 687: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 686 + Store 685(r034) 687 + 689: 36(fvec3) Load 41(inF0) + 690: 36(fvec3) Load 42(inF1) + 691: 36(fvec3) FMod 689 690 + Store 688(r036) 691 693: 36(fvec3) Load 41(inF0) - 695:694(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 693 - 696: 588(ivec3) CompositeExtract 695 1 - Store 42(inF1) 696 - 697: 36(fvec3) CompositeExtract 695 0 - Store 692(r038) 697 - 699: 36(fvec3) Load 41(inF0) - 700: 36(fvec3) Fwidth 699 - Store 698(r039) 700 - 703: 36(fvec3) Load 41(inF0) - 704: 616(bvec3) IsInf 703 - Store 702(r040) 704 + 694: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 693 + Store 692(r037) 694 + 696: 36(fvec3) Load 41(inF0) + 698:697(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 696 + 699: 590(ivec3) CompositeExtract 698 1 + Store 42(inF1) 699 + 700: 36(fvec3) CompositeExtract 698 0 + Store 695(r038) 700 + 702: 36(fvec3) Load 41(inF0) + 703: 36(fvec3) Fwidth 702 + Store 701(r039) 703 706: 36(fvec3) Load 41(inF0) - 707: 616(bvec3) IsNan 706 - Store 705(r041) 707 + 707: 618(bvec3) IsInf 706 + Store 705(r040) 707 709: 36(fvec3) Load 41(inF0) - 710: 36(fvec3) Load 42(inF1) - 711: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 709 710 - Store 708(r042) 711 - 713: 36(fvec3) Load 41(inF0) - 714: 36(fvec3) Load 42(inF1) - 715: 36(fvec3) Load 43(inF2) - 716: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 713 714 715 - Store 712(r039a) 716 - 718: 36(fvec3) Load 41(inF0) - 719: 36(fvec3) Load 42(inF1) - 721: 36(fvec3) CompositeConstruct 720 720 720 - 722: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 718 719 721 - Store 717(r039b) 722 - 724: 36(fvec3) Load 41(inF0) - 725: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 724 - Store 723(r043) 725 + 710: 618(bvec3) IsNan 709 + Store 708(r041) 710 + 712: 36(fvec3) Load 41(inF0) + 713: 36(fvec3) Load 42(inF1) + 714: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 712 713 + Store 711(r042) 714 + 716: 36(fvec3) Load 41(inF0) + 717: 36(fvec3) Load 42(inF1) + 718: 36(fvec3) Load 43(inF2) + 719: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 716 717 718 + Store 715(r039a) 719 + 721: 36(fvec3) Load 41(inF0) + 722: 36(fvec3) Load 42(inF1) + 724: 36(fvec3) CompositeConstruct 723 723 723 + 725: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 721 722 724 + Store 720(r039b) 725 727: 36(fvec3) Load 41(inF0) - 728: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 727 - Store 726(r044) 728 + 728: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 727 + Store 726(r043) 728 730: 36(fvec3) Load 41(inF0) - 731: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 730 - 732: 36(fvec3) VectorTimesScalar 731 263 - Store 729(r045) 732 - 734: 36(fvec3) Load 41(inF0) - 735: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 734 - Store 733(r046) 735 + 731: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 730 + Store 729(r044) 731 + 733: 36(fvec3) Load 41(inF0) + 734: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 733 + 735: 36(fvec3) VectorTimesScalar 734 262 + Store 732(r045) 735 737: 36(fvec3) Load 41(inF0) - 738: 36(fvec3) Load 42(inF1) - 739: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 737 738 - Store 736(r047) 739 - 741: 36(fvec3) Load 41(inF0) - 742: 36(fvec3) Load 42(inF1) - 743: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 741 742 - Store 740(r048) 743 - 745: 36(fvec3) Load 41(inF0) - 746: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 745 - Store 744(r049) 746 + 738: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 737 + Store 736(r046) 738 + 740: 36(fvec3) Load 41(inF0) + 741: 36(fvec3) Load 42(inF1) + 742: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 740 741 + Store 739(r047) 742 + 744: 36(fvec3) Load 41(inF0) + 745: 36(fvec3) Load 42(inF1) + 746: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 744 745 + Store 743(r048) 746 748: 36(fvec3) Load 41(inF0) - 749: 36(fvec3) Load 42(inF1) - 750: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 748 749 - Store 747(r050) 750 - 752: 36(fvec3) Load 41(inF0) - 753: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 752 - Store 751(r051) 753 + 749: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 748 + Store 747(r049) 749 + 751: 36(fvec3) Load 41(inF0) + 752: 36(fvec3) Load 42(inF1) + 753: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 751 752 + Store 750(r050) 753 755: 36(fvec3) Load 41(inF0) - 756: 36(fvec3) CompositeConstruct 284 284 284 - 757: 36(fvec3) FDiv 756 755 - Store 754(r052) 757 - 759: 36(fvec3) Load 41(inF0) - 760: 36(fvec3) Load 42(inF1) - 761: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 759 760 - Store 758(r053) 761 - 763: 36(fvec3) Load 41(inF0) - 764: 36(fvec3) Load 42(inF1) - 765: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 763 764 519 - Store 762(r054) 765 - 768: 38(ivec3) BitReverse 767 - Store 766(r055) 768 - 770: 36(fvec3) Load 41(inF0) - 771: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 770 - Store 769(r056) 771 + 756: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 755 + Store 754(r051) 756 + 758: 36(fvec3) Load 41(inF0) + 759: 36(fvec3) CompositeConstruct 283 283 283 + 760: 36(fvec3) FDiv 759 758 + Store 757(r052) 760 + 762: 36(fvec3) Load 41(inF0) + 763: 36(fvec3) Load 42(inF1) + 764: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 762 763 + Store 761(r053) 764 + 766: 36(fvec3) Load 41(inF0) + 767: 36(fvec3) Load 42(inF1) + 768: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 766 767 520 + Store 765(r054) 768 + 771: 38(ivec3) BitReverse 770 + Store 769(r055) 771 773: 36(fvec3) Load 41(inF0) - 774: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 773 - Store 772(r057) 774 + 774: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 773 + Store 772(r056) 774 776: 36(fvec3) Load 41(inF0) - 777: 36(fvec3) CompositeConstruct 175 175 175 - 778: 36(fvec3) CompositeConstruct 284 284 284 - 779: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 776 777 778 - Store 775(r058) 779 - 781: 36(fvec3) Load 41(inF0) - 782: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 781 - Store 780(r059) 782 + 777: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 776 + Store 775(r057) 777 + 779: 36(fvec3) Load 41(inF0) + 780: 36(fvec3) CompositeConstruct 175 175 175 + 781: 36(fvec3) CompositeConstruct 283 283 283 + 782: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 779 780 781 + Store 778(r058) 782 784: 36(fvec3) Load 41(inF0) - 785: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 784 - Store 783(r060) 785 - 786: 36(fvec3) Load 41(inF0) - 787: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 786 - Store 42(inF1) 787 - 788: 36(fvec3) Load 41(inF0) - 789: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 788 - Store 43(inF2) 789 + 785: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 784 + Store 783(r059) 785 + 787: 36(fvec3) Load 41(inF0) + 788: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 787 + Store 786(r060) 788 + 789: 36(fvec3) Load 41(inF0) + 790: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 789 + Store 42(inF1) 790 791: 36(fvec3) Load 41(inF0) - 792: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 791 - Store 790(r061) 792 + 792: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 791 + Store 43(inF2) 792 794: 36(fvec3) Load 41(inF0) - 795: 36(fvec3) Load 42(inF1) - 796: 36(fvec3) Load 43(inF2) - 797: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 794 795 796 - Store 793(r062) 797 - 799: 36(fvec3) Load 41(inF0) - 800: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 799 - Store 798(r063) 800 + 795: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 794 + Store 793(r061) 795 + 797: 36(fvec3) Load 41(inF0) + 798: 36(fvec3) Load 42(inF1) + 799: 36(fvec3) Load 43(inF2) + 800: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 797 798 799 + Store 796(r062) 800 802: 36(fvec3) Load 41(inF0) - 803: 36(fvec3) Load 42(inF1) - 804: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 802 803 - Store 801(r064) 804 - 806: 36(fvec3) Load 41(inF0) - 807: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 806 - Store 805(r065) 807 + 803: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 802 + Store 801(r063) 803 + 805: 36(fvec3) Load 41(inF0) + 806: 36(fvec3) Load 42(inF1) + 807: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 805 806 + Store 804(r064) 807 809: 36(fvec3) Load 41(inF0) - 810: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 809 - Store 808(r066) 810 + 810: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 809 + Store 808(r065) 810 812: 36(fvec3) Load 41(inF0) - 813: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 812 - Store 811(r067) 813 - ReturnValue 815 + 813: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 812 + Store 811(r066) 813 + 815: 36(fvec3) Load 41(inF0) + 816: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 815 + Store 814(r067) 816 + ReturnValue 818 FunctionEnd 58(PixelShaderFunction(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 53(inF0): 49(ptr) FunctionParameter @@ -7156,1018 +7161,1018 @@ gl_FragCoord origin is upper left 56(inU0): 51(ptr) FunctionParameter 57(inU1): 51(ptr) FunctionParameter 59: Label - 818(r000): 132(ptr) Variable Function - 821(r001): 49(ptr) Variable Function - 824(r002): 49(ptr) Variable Function - 827(r003): 132(ptr) Variable Function - 830(r004): 49(ptr) Variable Function - 835(r005): 834(ptr) Variable Function - 838(r006): 51(ptr) Variable Function - 841(r007): 49(ptr) Variable Function - 844(r009): 49(ptr) Variable Function - 847(r010): 49(ptr) Variable Function - 851(r011): 49(ptr) Variable Function - 854(r012): 49(ptr) Variable Function - 867(r013): 49(ptr) Variable Function - 870(r014): 49(ptr) Variable Function - 873(r015): 51(ptr) Variable Function - 876(r016): 49(ptr) Variable Function - 879(r017): 49(ptr) Variable Function - 882(r018): 49(ptr) Variable Function - 885(r019): 49(ptr) Variable Function - 888(r020): 49(ptr) Variable Function - 891(r021): 49(ptr) Variable Function - 894(r022): 49(ptr) Variable Function - 897(r023): 7(ptr) Variable Function - 901(r024): 7(ptr) Variable Function - 905(r025): 49(ptr) Variable Function - 916(r029): 49(ptr) Variable Function - 919(r030): 49(ptr) Variable Function - 922(r031): 49(ptr) Variable Function - 927(r032): 51(ptr) Variable Function - 932(r033): 51(ptr) Variable Function - 934(r034): 49(ptr) Variable Function - 937(r036): 49(ptr) Variable Function - 941(r037): 49(ptr) Variable Function - 944(r038): 49(ptr) Variable Function - 950(r039): 49(ptr) Variable Function - 954(r040): 953(ptr) Variable Function - 957(r041): 953(ptr) Variable Function - 960(r042): 49(ptr) Variable Function - 964(r039a): 49(ptr) Variable Function - 969(r043): 7(ptr) Variable Function - 972(r044): 49(ptr) Variable Function - 975(r045): 49(ptr) Variable Function - 979(r046): 49(ptr) Variable Function - 982(r047): 49(ptr) Variable Function - 986(r048): 49(ptr) Variable Function - 990(r049): 49(ptr) Variable Function - 993(r050): 49(ptr) Variable Function - 997(r051): 49(ptr) Variable Function - 1000(r052): 49(ptr) Variable Function - 1004(r053): 49(ptr) Variable Function - 1008(r054): 49(ptr) Variable Function - 1012(r055): 51(ptr) Variable Function - 1015(r056): 49(ptr) Variable Function - 1018(r057): 49(ptr) Variable Function - 1021(r058): 49(ptr) Variable Function - 1026(r059): 49(ptr) Variable Function - 1029(r060): 49(ptr) Variable Function - 1036(r061): 49(ptr) Variable Function - 1039(r062): 49(ptr) Variable Function - 1044(r063): 49(ptr) Variable Function - 1047(r064): 49(ptr) Variable Function - 1051(r065): 49(ptr) Variable Function - 1054(r066): 49(ptr) Variable Function - 1057(r067): 49(ptr) Variable Function - 819: 48(fvec4) Load 53(inF0) - 820: 131(bool) All 819 - Store 818(r000) 820 + 821(r000): 132(ptr) Variable Function + 824(r001): 49(ptr) Variable Function + 827(r002): 49(ptr) Variable Function + 830(r003): 132(ptr) Variable Function + 833(r004): 49(ptr) Variable Function + 838(r005): 837(ptr) Variable Function + 841(r006): 51(ptr) Variable Function + 844(r007): 49(ptr) Variable Function + 847(r009): 49(ptr) Variable Function + 850(r010): 49(ptr) Variable Function + 854(r011): 49(ptr) Variable Function + 857(r012): 49(ptr) Variable Function + 870(r013): 49(ptr) Variable Function + 873(r014): 49(ptr) Variable Function + 876(r015): 51(ptr) Variable Function + 879(r016): 49(ptr) Variable Function + 882(r017): 49(ptr) Variable Function + 885(r018): 49(ptr) Variable Function + 888(r019): 49(ptr) Variable Function + 891(r020): 49(ptr) Variable Function + 894(r021): 49(ptr) Variable Function + 897(r022): 49(ptr) Variable Function + 900(r023): 7(ptr) Variable Function + 904(r024): 7(ptr) Variable Function + 908(r025): 49(ptr) Variable Function + 919(r029): 49(ptr) Variable Function + 922(r030): 49(ptr) Variable Function + 925(r031): 49(ptr) Variable Function + 930(r032): 51(ptr) Variable Function + 935(r033): 51(ptr) Variable Function + 937(r034): 49(ptr) Variable Function + 940(r036): 49(ptr) Variable Function + 944(r037): 49(ptr) Variable Function + 947(r038): 49(ptr) Variable Function + 953(r039): 49(ptr) Variable Function + 957(r040): 956(ptr) Variable Function + 960(r041): 956(ptr) Variable Function + 963(r042): 49(ptr) Variable Function + 967(r039a): 49(ptr) Variable Function + 972(r043): 7(ptr) Variable Function + 975(r044): 49(ptr) Variable Function + 978(r045): 49(ptr) Variable Function + 982(r046): 49(ptr) Variable Function + 985(r047): 49(ptr) Variable Function + 989(r048): 49(ptr) Variable Function + 993(r049): 49(ptr) Variable Function + 996(r050): 49(ptr) Variable Function + 1000(r051): 49(ptr) Variable Function + 1003(r052): 49(ptr) Variable Function + 1007(r053): 49(ptr) Variable Function + 1011(r054): 49(ptr) Variable Function + 1015(r055): 51(ptr) Variable Function + 1018(r056): 49(ptr) Variable Function + 1021(r057): 49(ptr) Variable Function + 1024(r058): 49(ptr) Variable Function + 1029(r059): 49(ptr) Variable Function + 1032(r060): 49(ptr) Variable Function + 1039(r061): 49(ptr) Variable Function + 1042(r062): 49(ptr) Variable Function + 1047(r063): 49(ptr) Variable Function + 1050(r064): 49(ptr) Variable Function + 1054(r065): 49(ptr) Variable Function + 1057(r066): 49(ptr) Variable Function + 1060(r067): 49(ptr) Variable Function 822: 48(fvec4) Load 53(inF0) - 823: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 822 - Store 821(r001) 823 + 823: 131(bool) All 822 + Store 821(r000) 823 825: 48(fvec4) Load 53(inF0) - 826: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 825 - Store 824(r002) 826 + 826: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 825 + Store 824(r001) 826 828: 48(fvec4) Load 53(inF0) - 829: 131(bool) Any 828 - Store 827(r003) 829 + 829: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 828 + Store 827(r002) 829 831: 48(fvec4) Load 53(inF0) - 832: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 831 - Store 830(r004) 832 - 836: 48(fvec4) Load 53(inF0) - 837: 833(ivec4) Bitcast 836 - Store 835(r005) 837 + 832: 131(bool) Any 831 + Store 830(r003) 832 + 834: 48(fvec4) Load 53(inF0) + 835: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 834 + Store 833(r004) 835 839: 48(fvec4) Load 53(inF0) - 840: 50(ivec4) Bitcast 839 - Store 838(r006) 840 - 842: 50(ivec4) Load 56(inU0) - 843: 48(fvec4) Bitcast 842 - Store 841(r007) 843 - 845: 48(fvec4) Load 53(inF0) - 846: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 845 - Store 844(r009) 846 + 840: 836(ivec4) Bitcast 839 + Store 838(r005) 840 + 842: 48(fvec4) Load 53(inF0) + 843: 50(ivec4) Bitcast 842 + Store 841(r006) 843 + 845: 50(ivec4) Load 56(inU0) + 846: 48(fvec4) Bitcast 845 + Store 844(r007) 846 848: 48(fvec4) Load 53(inF0) - 849: 48(fvec4) Load 54(inF1) - 850: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 848 849 - Store 847(r010) 850 - 852: 48(fvec4) Load 53(inF0) - 853: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 852 - Store 851(r011) 853 + 849: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 848 + Store 847(r009) 849 + 851: 48(fvec4) Load 53(inF0) + 852: 48(fvec4) Load 54(inF1) + 853: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 851 852 + Store 850(r010) 853 855: 48(fvec4) Load 53(inF0) - 856: 48(fvec4) Load 54(inF1) - 857: 48(fvec4) Load 55(inF2) - 858: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 855 856 857 - Store 854(r012) 858 - 859: 48(fvec4) Load 53(inF0) - 862: 861(bvec4) FOrdLessThan 859 860 - 863: 131(bool) Any 862 - SelectionMerge 865 None - BranchConditional 863 864 865 - 864: Label + 856: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 855 + Store 854(r011) 856 + 858: 48(fvec4) Load 53(inF0) + 859: 48(fvec4) Load 54(inF1) + 860: 48(fvec4) Load 55(inF2) + 861: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 858 859 860 + Store 857(r012) 861 + 862: 48(fvec4) Load 53(inF0) + 865: 864(bvec4) FOrdLessThan 862 863 + 866: 131(bool) Any 865 + SelectionMerge 868 None + BranchConditional 866 867 868 + 867: Label Kill - 865: Label - 868: 48(fvec4) Load 53(inF0) - 869: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 868 - Store 867(r013) 869 + 868: Label 871: 48(fvec4) Load 53(inF0) - 872: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 871 - Store 870(r014) 872 - 875: 50(ivec4) BitCount 874 - Store 873(r015) 875 - 877: 48(fvec4) Load 53(inF0) - 878: 48(fvec4) DPdx 877 - Store 876(r016) 878 + 872: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 871 + Store 870(r013) 872 + 874: 48(fvec4) Load 53(inF0) + 875: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 874 + Store 873(r014) 875 + 878: 50(ivec4) BitCount 877 + Store 876(r015) 878 880: 48(fvec4) Load 53(inF0) - 881: 48(fvec4) DPdxCoarse 880 - Store 879(r017) 881 + 881: 48(fvec4) DPdx 880 + Store 879(r016) 881 883: 48(fvec4) Load 53(inF0) - 884: 48(fvec4) DPdxFine 883 - Store 882(r018) 884 + 884: 48(fvec4) DPdxCoarse 883 + Store 882(r017) 884 886: 48(fvec4) Load 53(inF0) - 887: 48(fvec4) DPdy 886 - Store 885(r019) 887 + 887: 48(fvec4) DPdxFine 886 + Store 885(r018) 887 889: 48(fvec4) Load 53(inF0) - 890: 48(fvec4) DPdyCoarse 889 - Store 888(r020) 890 + 890: 48(fvec4) DPdy 889 + Store 888(r019) 890 892: 48(fvec4) Load 53(inF0) - 893: 48(fvec4) DPdyFine 892 - Store 891(r021) 893 + 893: 48(fvec4) DPdyCoarse 892 + Store 891(r020) 893 895: 48(fvec4) Load 53(inF0) - 896: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 895 - Store 894(r022) 896 + 896: 48(fvec4) DPdyFine 895 + Store 894(r021) 896 898: 48(fvec4) Load 53(inF0) - 899: 48(fvec4) Load 54(inF1) - 900: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 898 899 - Store 897(r023) 900 - 902: 48(fvec4) Load 53(inF0) - 903: 48(fvec4) Load 54(inF1) - 904: 6(float) Dot 902 903 - Store 901(r024) 904 - 906: 7(ptr) AccessChain 53(inF0) 522 - 907: 6(float) Load 906 - 908: 7(ptr) AccessChain 54(inF1) 522 - 909: 6(float) Load 908 - 910: 6(float) FMul 907 909 - 911: 7(ptr) AccessChain 53(inF0) 288 + 899: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 898 + Store 897(r022) 899 + 901: 48(fvec4) Load 53(inF0) + 902: 48(fvec4) Load 54(inF1) + 903: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 901 902 + Store 900(r023) 903 + 905: 48(fvec4) Load 53(inF0) + 906: 48(fvec4) Load 54(inF1) + 907: 6(float) Dot 905 906 + Store 904(r024) 907 + 909: 7(ptr) AccessChain 53(inF0) 523 + 910: 6(float) Load 909 + 911: 7(ptr) AccessChain 54(inF1) 523 912: 6(float) Load 911 - 913: 7(ptr) AccessChain 54(inF1) 393 - 914: 6(float) Load 913 - 915: 48(fvec4) CompositeConstruct 284 910 912 914 - Store 905(r025) 915 - 917: 48(fvec4) Load 53(inF0) - 918: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 917 - Store 916(r029) 918 + 913: 6(float) FMul 910 912 + 914: 7(ptr) AccessChain 53(inF0) 524 + 915: 6(float) Load 914 + 916: 7(ptr) AccessChain 54(inF1) 631 + 917: 6(float) Load 916 + 918: 48(fvec4) CompositeConstruct 283 913 915 917 + Store 908(r025) 918 920: 48(fvec4) Load 53(inF0) - 921: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 920 - Store 919(r030) 921 + 921: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 920 + Store 919(r029) 921 923: 48(fvec4) Load 53(inF0) - 924: 48(fvec4) Load 54(inF1) - 925: 48(fvec4) Load 55(inF2) - 926: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 923 924 925 - Store 922(r031) 926 - 931: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 930 - Store 927(r032) 931 - 933: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 930 - Store 932(r033) 933 - 935: 48(fvec4) Load 53(inF0) - 936: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 935 - Store 934(r034) 936 + 924: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 923 + Store 922(r030) 924 + 926: 48(fvec4) Load 53(inF0) + 927: 48(fvec4) Load 54(inF1) + 928: 48(fvec4) Load 55(inF2) + 929: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 926 927 928 + Store 925(r031) 929 + 934: 50(ivec4) ExtInst 1(GLSL.std.450) 75(FindUMsb) 933 + Store 930(r032) 934 + 936: 50(ivec4) ExtInst 1(GLSL.std.450) 73(FindILsb) 933 + Store 935(r033) 936 938: 48(fvec4) Load 53(inF0) - 939: 48(fvec4) Load 54(inF1) - 940: 48(fvec4) FMod 938 939 - Store 937(r036) 940 - 942: 48(fvec4) Load 53(inF0) - 943: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 942 - Store 941(r037) 943 + 939: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 938 + Store 937(r034) 939 + 941: 48(fvec4) Load 53(inF0) + 942: 48(fvec4) Load 54(inF1) + 943: 48(fvec4) FMod 941 942 + Store 940(r036) 943 945: 48(fvec4) Load 53(inF0) - 947:946(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 945 - 948: 833(ivec4) CompositeExtract 947 1 - Store 54(inF1) 948 - 949: 48(fvec4) CompositeExtract 947 0 - Store 944(r038) 949 - 951: 48(fvec4) Load 53(inF0) - 952: 48(fvec4) Fwidth 951 - Store 950(r039) 952 - 955: 48(fvec4) Load 53(inF0) - 956: 861(bvec4) IsInf 955 - Store 954(r040) 956 + 946: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 945 + Store 944(r037) 946 + 948: 48(fvec4) Load 53(inF0) + 950:949(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 948 + 951: 836(ivec4) CompositeExtract 950 1 + Store 54(inF1) 951 + 952: 48(fvec4) CompositeExtract 950 0 + Store 947(r038) 952 + 954: 48(fvec4) Load 53(inF0) + 955: 48(fvec4) Fwidth 954 + Store 953(r039) 955 958: 48(fvec4) Load 53(inF0) - 959: 861(bvec4) IsNan 958 - Store 957(r041) 959 + 959: 864(bvec4) IsInf 958 + Store 957(r040) 959 961: 48(fvec4) Load 53(inF0) - 962: 48(fvec4) Load 54(inF1) - 963: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 961 962 - Store 960(r042) 963 - 965: 48(fvec4) Load 53(inF0) - 966: 48(fvec4) Load 54(inF1) - 967: 48(fvec4) Load 55(inF2) - 968: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 965 966 967 - Store 964(r039a) 968 - 970: 48(fvec4) Load 53(inF0) - 971: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 970 - Store 969(r043) 971 + 962: 864(bvec4) IsNan 961 + Store 960(r041) 962 + 964: 48(fvec4) Load 53(inF0) + 965: 48(fvec4) Load 54(inF1) + 966: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 964 965 + Store 963(r042) 966 + 968: 48(fvec4) Load 53(inF0) + 969: 48(fvec4) Load 54(inF1) + 970: 48(fvec4) Load 55(inF2) + 971: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 968 969 970 + Store 967(r039a) 971 973: 48(fvec4) Load 53(inF0) - 974: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 973 - Store 972(r044) 974 + 974: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 973 + Store 972(r043) 974 976: 48(fvec4) Load 53(inF0) - 977: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 976 - 978: 48(fvec4) VectorTimesScalar 977 263 - Store 975(r045) 978 - 980: 48(fvec4) Load 53(inF0) - 981: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 980 - Store 979(r046) 981 + 977: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 976 + Store 975(r044) 977 + 979: 48(fvec4) Load 53(inF0) + 980: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 979 + 981: 48(fvec4) VectorTimesScalar 980 262 + Store 978(r045) 981 983: 48(fvec4) Load 53(inF0) - 984: 48(fvec4) Load 54(inF1) - 985: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 983 984 - Store 982(r047) 985 - 987: 48(fvec4) Load 53(inF0) - 988: 48(fvec4) Load 54(inF1) - 989: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 987 988 - Store 986(r048) 989 - 991: 48(fvec4) Load 53(inF0) - 992: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 991 - Store 990(r049) 992 + 984: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 983 + Store 982(r046) 984 + 986: 48(fvec4) Load 53(inF0) + 987: 48(fvec4) Load 54(inF1) + 988: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 986 987 + Store 985(r047) 988 + 990: 48(fvec4) Load 53(inF0) + 991: 48(fvec4) Load 54(inF1) + 992: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 990 991 + Store 989(r048) 992 994: 48(fvec4) Load 53(inF0) - 995: 48(fvec4) Load 54(inF1) - 996: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 994 995 - Store 993(r050) 996 - 998: 48(fvec4) Load 53(inF0) - 999: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 998 - Store 997(r051) 999 + 995: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 994 + Store 993(r049) 995 + 997: 48(fvec4) Load 53(inF0) + 998: 48(fvec4) Load 54(inF1) + 999: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 997 998 + Store 996(r050) 999 1001: 48(fvec4) Load 53(inF0) - 1002: 48(fvec4) CompositeConstruct 284 284 284 284 - 1003: 48(fvec4) FDiv 1002 1001 - Store 1000(r052) 1003 - 1005: 48(fvec4) Load 53(inF0) - 1006: 48(fvec4) Load 54(inF1) - 1007: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1005 1006 - Store 1004(r053) 1007 - 1009: 48(fvec4) Load 53(inF0) - 1010: 48(fvec4) Load 54(inF1) - 1011: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1009 1010 519 - Store 1008(r054) 1011 - 1014: 50(ivec4) BitReverse 1013 - Store 1012(r055) 1014 - 1016: 48(fvec4) Load 53(inF0) - 1017: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1016 - Store 1015(r056) 1017 + 1002: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 1001 + Store 1000(r051) 1002 + 1004: 48(fvec4) Load 53(inF0) + 1005: 48(fvec4) CompositeConstruct 283 283 283 283 + 1006: 48(fvec4) FDiv 1005 1004 + Store 1003(r052) 1006 + 1008: 48(fvec4) Load 53(inF0) + 1009: 48(fvec4) Load 54(inF1) + 1010: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 1008 1009 + Store 1007(r053) 1010 + 1012: 48(fvec4) Load 53(inF0) + 1013: 48(fvec4) Load 54(inF1) + 1014: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 1012 1013 520 + Store 1011(r054) 1014 + 1017: 50(ivec4) BitReverse 1016 + Store 1015(r055) 1017 1019: 48(fvec4) Load 53(inF0) - 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1019 - Store 1018(r057) 1020 + 1020: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 1019 + Store 1018(r056) 1020 1022: 48(fvec4) Load 53(inF0) - 1023: 48(fvec4) CompositeConstruct 175 175 175 175 - 1024: 48(fvec4) CompositeConstruct 284 284 284 284 - 1025: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1022 1023 1024 - Store 1021(r058) 1025 - 1027: 48(fvec4) Load 53(inF0) - 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1027 - Store 1026(r059) 1028 + 1023: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1022 + Store 1021(r057) 1023 + 1025: 48(fvec4) Load 53(inF0) + 1026: 48(fvec4) CompositeConstruct 175 175 175 175 + 1027: 48(fvec4) CompositeConstruct 283 283 283 283 + 1028: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 1025 1026 1027 + Store 1024(r058) 1028 1030: 48(fvec4) Load 53(inF0) - 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1030 - Store 1029(r060) 1031 - 1032: 48(fvec4) Load 53(inF0) - 1033: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1032 - Store 54(inF1) 1033 - 1034: 48(fvec4) Load 53(inF0) - 1035: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1034 - Store 55(inF2) 1035 + 1031: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 1030 + Store 1029(r059) 1031 + 1033: 48(fvec4) Load 53(inF0) + 1034: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1033 + Store 1032(r060) 1034 + 1035: 48(fvec4) Load 53(inF0) + 1036: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 1035 + Store 54(inF1) 1036 1037: 48(fvec4) Load 53(inF0) - 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1037 - Store 1036(r061) 1038 + 1038: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 1037 + Store 55(inF2) 1038 1040: 48(fvec4) Load 53(inF0) - 1041: 48(fvec4) Load 54(inF1) - 1042: 48(fvec4) Load 55(inF2) - 1043: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1040 1041 1042 - Store 1039(r062) 1043 - 1045: 48(fvec4) Load 53(inF0) - 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1045 - Store 1044(r063) 1046 + 1041: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 1040 + Store 1039(r061) 1041 + 1043: 48(fvec4) Load 53(inF0) + 1044: 48(fvec4) Load 54(inF1) + 1045: 48(fvec4) Load 55(inF2) + 1046: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045 + Store 1042(r062) 1046 1048: 48(fvec4) Load 53(inF0) - 1049: 48(fvec4) Load 54(inF1) - 1050: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1048 1049 - Store 1047(r064) 1050 - 1052: 48(fvec4) Load 53(inF0) - 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1052 - Store 1051(r065) 1053 + 1049: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 1048 + Store 1047(r063) 1049 + 1051: 48(fvec4) Load 53(inF0) + 1052: 48(fvec4) Load 54(inF1) + 1053: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 1051 1052 + Store 1050(r064) 1053 1055: 48(fvec4) Load 53(inF0) - 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1055 - Store 1054(r066) 1056 + 1056: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 1055 + Store 1054(r065) 1056 1058: 48(fvec4) Load 53(inF0) - 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1058 - Store 1057(r067) 1059 - ReturnValue 1061 + 1059: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 1058 + Store 1057(r066) 1059 + 1061: 48(fvec4) Load 53(inF0) + 1062: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 1061 + Store 1060(r067) 1062 + ReturnValue 1064 FunctionEnd 66(PixelShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 63(inF0): 61(ptr) FunctionParameter 64(inF1): 61(ptr) FunctionParameter 65(inF2): 61(ptr) FunctionParameter 67: Label - 1064(r000): 132(ptr) Variable Function - 1067(r001): 61(ptr) Variable Function - 1072(r003): 132(ptr) Variable Function - 1075(r004): 61(ptr) Variable Function - 1078(r005): 61(ptr) Variable Function - 1081(r006): 61(ptr) Variable Function - 1085(r007): 61(ptr) Variable Function - 1096(r008): 61(ptr) Variable Function - 1101(r009): 61(ptr) Variable Function - 1104(r010): 61(ptr) Variable Function - 1107(r011): 61(ptr) Variable Function - 1110(r012): 61(ptr) Variable Function - 1113(r013): 61(ptr) Variable Function - 1116(r014): 61(ptr) Variable Function - 1119(r015): 61(ptr) Variable Function - 1122(r016): 61(ptr) Variable Function - 1125(r017): 61(ptr) Variable Function - 1128(r018): 7(ptr) Variable Function - 1131(r019): 61(ptr) Variable Function - 1134(R020): 61(ptr) Variable Function - 1137(r021): 61(ptr) Variable Function - 1140(r022): 61(ptr) Variable Function - 1150(r023): 61(ptr) Variable Function - 1153(r024): 61(ptr) Variable Function - 1159(r025): 61(ptr) Variable Function - 1162(r026): 61(ptr) Variable Function - 1166(r026a): 61(ptr) Variable Function - 1171(r027): 61(ptr) Variable Function - 1174(r028): 61(ptr) Variable Function - 1178(r029): 61(ptr) Variable Function - 1181(r030): 61(ptr) Variable Function - 1185(r031): 61(ptr) Variable Function - 1189(r032): 61(ptr) Variable Function - 1193(r033): 61(ptr) Variable Function - 1196(r034): 61(ptr) Variable Function - 1199(r035): 61(ptr) Variable Function - 1202(r036): 61(ptr) Variable Function - 1207(r037): 61(ptr) Variable Function - 1210(r038): 61(ptr) Variable Function - 1217(r039): 61(ptr) Variable Function - 1220(r049): 61(ptr) Variable Function - 1225(r041): 61(ptr) Variable Function - 1228(r042): 61(ptr) Variable Function - 1232(r043): 61(ptr) Variable Function - 1235(r044): 61(ptr) Variable Function - 1240(r046): 61(ptr) Variable Function - 1065: 60 Load 63(inF0) - 1066: 131(bool) All 1065 - Store 1064(r000) 1066 + 1067(r000): 132(ptr) Variable Function + 1070(r001): 61(ptr) Variable Function + 1075(r003): 132(ptr) Variable Function + 1078(r004): 61(ptr) Variable Function + 1081(r005): 61(ptr) Variable Function + 1084(r006): 61(ptr) Variable Function + 1088(r007): 61(ptr) Variable Function + 1099(r008): 61(ptr) Variable Function + 1104(r009): 61(ptr) Variable Function + 1107(r010): 61(ptr) Variable Function + 1110(r011): 61(ptr) Variable Function + 1113(r012): 61(ptr) Variable Function + 1116(r013): 61(ptr) Variable Function + 1119(r014): 61(ptr) Variable Function + 1122(r015): 61(ptr) Variable Function + 1125(r016): 61(ptr) Variable Function + 1128(r017): 61(ptr) Variable Function + 1131(r018): 7(ptr) Variable Function + 1134(r019): 61(ptr) Variable Function + 1137(R020): 61(ptr) Variable Function + 1140(r021): 61(ptr) Variable Function + 1143(r022): 61(ptr) Variable Function + 1153(r023): 61(ptr) Variable Function + 1156(r024): 61(ptr) Variable Function + 1162(r025): 61(ptr) Variable Function + 1165(r026): 61(ptr) Variable Function + 1169(r026a): 61(ptr) Variable Function + 1174(r027): 61(ptr) Variable Function + 1177(r028): 61(ptr) Variable Function + 1181(r029): 61(ptr) Variable Function + 1184(r030): 61(ptr) Variable Function + 1188(r031): 61(ptr) Variable Function + 1192(r032): 61(ptr) Variable Function + 1196(r033): 61(ptr) Variable Function + 1199(r034): 61(ptr) Variable Function + 1202(r035): 61(ptr) Variable Function + 1205(r036): 61(ptr) Variable Function + 1210(r037): 61(ptr) Variable Function + 1213(r038): 61(ptr) Variable Function + 1220(r039): 61(ptr) Variable Function + 1223(r049): 61(ptr) Variable Function + 1228(r041): 61(ptr) Variable Function + 1231(r042): 61(ptr) Variable Function + 1235(r043): 61(ptr) Variable Function + 1238(r044): 61(ptr) Variable Function + 1243(r046): 61(ptr) Variable Function 1068: 60 Load 63(inF0) - 1069: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1068 - Store 1067(r001) 1069 - 1070: 60 Load 63(inF0) - 1071: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1070 + 1069: 131(bool) All 1068 + Store 1067(r000) 1069 + 1071: 60 Load 63(inF0) + 1072: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 1071 + Store 1070(r001) 1072 1073: 60 Load 63(inF0) - 1074: 131(bool) Any 1073 - Store 1072(r003) 1074 + 1074: 60 ExtInst 1(GLSL.std.450) 17(Acos) 1073 1076: 60 Load 63(inF0) - 1077: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1076 - Store 1075(r004) 1077 + 1077: 131(bool) Any 1076 + Store 1075(r003) 1077 1079: 60 Load 63(inF0) - 1080: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1079 - Store 1078(r005) 1080 + 1080: 60 ExtInst 1(GLSL.std.450) 16(Asin) 1079 + Store 1078(r004) 1080 1082: 60 Load 63(inF0) - 1083: 60 Load 64(inF1) - 1084: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1082 1083 - Store 1081(r006) 1084 - 1086: 60 Load 63(inF0) - 1087: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1086 - Store 1085(r007) 1087 - 1088: 60 Load 63(inF0) - 1091: 1090 FOrdLessThan 1088 1089 - 1092: 131(bool) Any 1091 - SelectionMerge 1094 None - BranchConditional 1092 1093 1094 - 1093: Label + 1083: 60 ExtInst 1(GLSL.std.450) 18(Atan) 1082 + Store 1081(r005) 1083 + 1085: 60 Load 63(inF0) + 1086: 60 Load 64(inF1) + 1087: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 1085 1086 + Store 1084(r006) 1087 + 1089: 60 Load 63(inF0) + 1090: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 1089 + Store 1088(r007) 1090 + 1091: 60 Load 63(inF0) + 1094: 1093 FOrdLessThan 1091 1092 + 1095: 131(bool) Any 1094 + SelectionMerge 1097 None + BranchConditional 1095 1096 1097 + 1096: Label Kill - 1094: Label - 1097: 60 Load 63(inF0) - 1098: 60 Load 64(inF1) - 1099: 60 Load 65(inF2) - 1100: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1097 1098 1099 - Store 1096(r008) 1100 - 1102: 60 Load 63(inF0) - 1103: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1102 - Store 1101(r009) 1103 + 1097: Label + 1100: 60 Load 63(inF0) + 1101: 60 Load 64(inF1) + 1102: 60 Load 65(inF2) + 1103: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1100 1101 1102 + Store 1099(r008) 1103 1105: 60 Load 63(inF0) - 1106: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1105 - Store 1104(r010) 1106 + 1106: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1105 + Store 1104(r009) 1106 1108: 60 Load 63(inF0) - 1109: 60 DPdx 1108 - Store 1107(r011) 1109 + 1109: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 1108 + Store 1107(r010) 1109 1111: 60 Load 63(inF0) - 1112: 60 DPdxCoarse 1111 - Store 1110(r012) 1112 + 1112: 60 DPdx 1111 + Store 1110(r011) 1112 1114: 60 Load 63(inF0) - 1115: 60 DPdxFine 1114 - Store 1113(r013) 1115 + 1115: 60 DPdxCoarse 1114 + Store 1113(r012) 1115 1117: 60 Load 63(inF0) - 1118: 60 DPdy 1117 - Store 1116(r014) 1118 + 1118: 60 DPdxFine 1117 + Store 1116(r013) 1118 1120: 60 Load 63(inF0) - 1121: 60 DPdyCoarse 1120 - Store 1119(r015) 1121 + 1121: 60 DPdy 1120 + Store 1119(r014) 1121 1123: 60 Load 63(inF0) - 1124: 60 DPdyFine 1123 - Store 1122(r016) 1124 + 1124: 60 DPdyCoarse 1123 + Store 1122(r015) 1124 1126: 60 Load 63(inF0) - 1127: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1126 - Store 1125(r017) 1127 + 1127: 60 DPdyFine 1126 + Store 1125(r016) 1127 1129: 60 Load 63(inF0) - 1130: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1129 - Store 1128(r018) 1130 + 1130: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 1129 + Store 1128(r017) 1130 1132: 60 Load 63(inF0) - 1133: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1132 - Store 1131(r019) 1133 + 1133: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1132 + Store 1131(r018) 1133 1135: 60 Load 63(inF0) - 1136: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1135 - Store 1134(R020) 1136 + 1136: 60 ExtInst 1(GLSL.std.450) 27(Exp) 1135 + Store 1134(r019) 1136 1138: 60 Load 63(inF0) - 1139: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1138 - Store 1137(r021) 1139 + 1139: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 1138 + Store 1137(R020) 1139 1141: 60 Load 63(inF0) - 1142: 60 Load 64(inF1) - 1143: 24(fvec2) CompositeExtract 1141 0 - 1144: 24(fvec2) CompositeExtract 1142 0 - 1145: 24(fvec2) FMod 1143 1144 - 1146: 24(fvec2) CompositeExtract 1141 1 - 1147: 24(fvec2) CompositeExtract 1142 1 + 1142: 60 ExtInst 1(GLSL.std.450) 8(Floor) 1141 + Store 1140(r021) 1142 + 1144: 60 Load 63(inF0) + 1145: 60 Load 64(inF1) + 1146: 24(fvec2) CompositeExtract 1144 0 + 1147: 24(fvec2) CompositeExtract 1145 0 1148: 24(fvec2) FMod 1146 1147 - 1149: 60 CompositeConstruct 1145 1148 - Store 1140(r022) 1149 - 1151: 60 Load 63(inF0) - 1152: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1151 - Store 1150(r023) 1152 + 1149: 24(fvec2) CompositeExtract 1144 1 + 1150: 24(fvec2) CompositeExtract 1145 1 + 1151: 24(fvec2) FMod 1149 1150 + 1152: 60 CompositeConstruct 1148 1151 + Store 1143(r022) 1152 1154: 60 Load 63(inF0) - 1156:1155(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1154 - 1157: 352(ivec2) CompositeExtract 1156 1 - Store 64(inF1) 1157 - 1158: 60 CompositeExtract 1156 0 - Store 1153(r024) 1158 - 1160: 60 Load 63(inF0) - 1161: 60 Fwidth 1160 - Store 1159(r025) 1161 + 1155: 60 ExtInst 1(GLSL.std.450) 10(Fract) 1154 + Store 1153(r023) 1155 + 1157: 60 Load 63(inF0) + 1159:1158(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1157 + 1160: 352(ivec2) CompositeExtract 1159 1 + Store 64(inF1) 1160 + 1161: 60 CompositeExtract 1159 0 + Store 1156(r024) 1161 1163: 60 Load 63(inF0) - 1164: 60 Load 64(inF1) - 1165: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1163 1164 - Store 1162(r026) 1165 - 1167: 60 Load 63(inF0) - 1168: 60 Load 64(inF1) - 1169: 60 Load 65(inF2) - 1170: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1167 1168 1169 - Store 1166(r026a) 1170 - 1172: 60 Load 63(inF0) - 1173: 60 ExtInst 1(GLSL.std.450) 28(Log) 1172 - Store 1171(r027) 1173 + 1164: 60 Fwidth 1163 + Store 1162(r025) 1164 + 1166: 60 Load 63(inF0) + 1167: 60 Load 64(inF1) + 1168: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 1166 1167 + Store 1165(r026) 1168 + 1170: 60 Load 63(inF0) + 1171: 60 Load 64(inF1) + 1172: 60 Load 65(inF2) + 1173: 60 ExtInst 1(GLSL.std.450) 46(FMix) 1170 1171 1172 + Store 1169(r026a) 1173 1175: 60 Load 63(inF0) - 1176: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1175 - 1177: 60 MatrixTimesScalar 1176 263 - Store 1174(r028) 1177 - 1179: 60 Load 63(inF0) - 1180: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1179 - Store 1178(r029) 1180 + 1176: 60 ExtInst 1(GLSL.std.450) 28(Log) 1175 + Store 1174(r027) 1176 + 1178: 60 Load 63(inF0) + 1179: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1178 + 1180: 60 MatrixTimesScalar 1179 262 + Store 1177(r028) 1180 1182: 60 Load 63(inF0) - 1183: 60 Load 64(inF1) - 1184: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1182 1183 - Store 1181(r030) 1184 - 1186: 60 Load 63(inF0) - 1187: 60 Load 64(inF1) - 1188: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1186 1187 - Store 1185(r031) 1188 - 1190: 60 Load 63(inF0) - 1191: 60 Load 64(inF1) - 1192: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1190 1191 - Store 1189(r032) 1192 - 1194: 60 Load 63(inF0) - 1195: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1194 - Store 1193(r033) 1195 + 1183: 60 ExtInst 1(GLSL.std.450) 30(Log2) 1182 + Store 1181(r029) 1183 + 1185: 60 Load 63(inF0) + 1186: 60 Load 64(inF1) + 1187: 60 ExtInst 1(GLSL.std.450) 40(FMax) 1185 1186 + Store 1184(r030) 1187 + 1189: 60 Load 63(inF0) + 1190: 60 Load 64(inF1) + 1191: 60 ExtInst 1(GLSL.std.450) 37(FMin) 1189 1190 + Store 1188(r031) 1191 + 1193: 60 Load 63(inF0) + 1194: 60 Load 64(inF1) + 1195: 60 ExtInst 1(GLSL.std.450) 26(Pow) 1193 1194 + Store 1192(r032) 1195 1197: 60 Load 63(inF0) - 1198: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1197 - Store 1196(r034) 1198 + 1198: 60 ExtInst 1(GLSL.std.450) 11(Radians) 1197 + Store 1196(r033) 1198 1200: 60 Load 63(inF0) - 1201: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1200 - Store 1199(r035) 1201 + 1201: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 1200 + Store 1199(r034) 1201 1203: 60 Load 63(inF0) - 1204: 24(fvec2) CompositeConstruct 175 175 - 1205: 24(fvec2) CompositeConstruct 284 284 - 1206: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1203 1204 1205 - Store 1202(r036) 1206 - 1208: 60 Load 63(inF0) - 1209: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1208 - Store 1207(r037) 1209 + 1204: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1203 + Store 1202(r035) 1204 + 1206: 60 Load 63(inF0) + 1207: 24(fvec2) CompositeConstruct 175 175 + 1208: 24(fvec2) CompositeConstruct 283 283 + 1209: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 1206 1207 1208 + Store 1205(r036) 1209 1211: 60 Load 63(inF0) - 1212: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1211 - Store 1210(r038) 1212 - 1213: 60 Load 63(inF0) - 1214: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1213 - Store 64(inF1) 1214 - 1215: 60 Load 63(inF0) - 1216: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1215 - Store 65(inF2) 1216 + 1212: 60 ExtInst 1(GLSL.std.450) 6(FSign) 1211 + Store 1210(r037) 1212 + 1214: 60 Load 63(inF0) + 1215: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1214 + Store 1213(r038) 1215 + 1216: 60 Load 63(inF0) + 1217: 60 ExtInst 1(GLSL.std.450) 13(Sin) 1216 + Store 64(inF1) 1217 1218: 60 Load 63(inF0) - 1219: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1218 - Store 1217(r039) 1219 + 1219: 60 ExtInst 1(GLSL.std.450) 14(Cos) 1218 + Store 65(inF2) 1219 1221: 60 Load 63(inF0) - 1222: 60 Load 64(inF1) - 1223: 60 Load 65(inF2) - 1224: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1221 1222 1223 - Store 1220(r049) 1224 - 1226: 60 Load 63(inF0) - 1227: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1226 - Store 1225(r041) 1227 + 1222: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 1221 + Store 1220(r039) 1222 + 1224: 60 Load 63(inF0) + 1225: 60 Load 64(inF1) + 1226: 60 Load 65(inF2) + 1227: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1224 1225 1226 + Store 1223(r049) 1227 1229: 60 Load 63(inF0) - 1230: 60 Load 64(inF1) - 1231: 60 ExtInst 1(GLSL.std.450) 48(Step) 1229 1230 - Store 1228(r042) 1231 - 1233: 60 Load 63(inF0) - 1234: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1233 - Store 1232(r043) 1234 + 1230: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 1229 + Store 1228(r041) 1230 + 1232: 60 Load 63(inF0) + 1233: 60 Load 64(inF1) + 1234: 60 ExtInst 1(GLSL.std.450) 48(Step) 1232 1233 + Store 1231(r042) 1234 1236: 60 Load 63(inF0) - 1237: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1236 - Store 1235(r044) 1237 - 1238: 60 Load 63(inF0) - 1239: 60 Transpose 1238 + 1237: 60 ExtInst 1(GLSL.std.450) 15(Tan) 1236 + Store 1235(r043) 1237 + 1239: 60 Load 63(inF0) + 1240: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 1239 + Store 1238(r044) 1240 1241: 60 Load 63(inF0) - 1242: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1241 - Store 1240(r046) 1242 - ReturnValue 1244 + 1242: 60 Transpose 1241 + 1244: 60 Load 63(inF0) + 1245: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 1244 + Store 1243(r046) 1245 + ReturnValue 1247 FunctionEnd 74(PixelShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 71(inF0): 69(ptr) FunctionParameter 72(inF1): 69(ptr) FunctionParameter 73(inF2): 69(ptr) FunctionParameter 75: Label - 1247(r000): 132(ptr) Variable Function - 1250(r001): 69(ptr) Variable Function - 1255(r003): 132(ptr) Variable Function - 1258(r004): 69(ptr) Variable Function - 1261(r005): 69(ptr) Variable Function - 1264(r006): 69(ptr) Variable Function - 1268(r007): 69(ptr) Variable Function - 1279(r008): 69(ptr) Variable Function - 1284(r009): 69(ptr) Variable Function - 1287(r010): 69(ptr) Variable Function - 1290(r011): 69(ptr) Variable Function - 1293(r012): 69(ptr) Variable Function - 1296(r013): 69(ptr) Variable Function - 1299(r014): 69(ptr) Variable Function - 1302(r015): 69(ptr) Variable Function - 1305(r016): 69(ptr) Variable Function - 1308(r017): 69(ptr) Variable Function - 1311(r018): 7(ptr) Variable Function - 1314(r019): 69(ptr) Variable Function - 1317(R020): 69(ptr) Variable Function - 1320(r021): 69(ptr) Variable Function - 1323(r022): 69(ptr) Variable Function - 1336(r023): 69(ptr) Variable Function - 1339(r024): 69(ptr) Variable Function - 1345(r025): 69(ptr) Variable Function - 1348(r026): 69(ptr) Variable Function - 1352(r026a): 69(ptr) Variable Function - 1357(r027): 69(ptr) Variable Function - 1360(r028): 69(ptr) Variable Function - 1364(r029): 69(ptr) Variable Function - 1367(r030): 69(ptr) Variable Function - 1371(r031): 69(ptr) Variable Function - 1375(r032): 69(ptr) Variable Function - 1379(r033): 69(ptr) Variable Function - 1382(r034): 69(ptr) Variable Function - 1385(r035): 69(ptr) Variable Function - 1388(r036): 69(ptr) Variable Function - 1393(r037): 69(ptr) Variable Function - 1396(r038): 69(ptr) Variable Function - 1403(r039): 69(ptr) Variable Function - 1406(r049): 69(ptr) Variable Function - 1411(r041): 69(ptr) Variable Function - 1414(r042): 69(ptr) Variable Function - 1418(r043): 69(ptr) Variable Function - 1421(r044): 69(ptr) Variable Function - 1426(r046): 69(ptr) Variable Function - 1248: 68 Load 71(inF0) - 1249: 131(bool) All 1248 - Store 1247(r000) 1249 + 1250(r000): 132(ptr) Variable Function + 1253(r001): 69(ptr) Variable Function + 1258(r003): 132(ptr) Variable Function + 1261(r004): 69(ptr) Variable Function + 1264(r005): 69(ptr) Variable Function + 1267(r006): 69(ptr) Variable Function + 1271(r007): 69(ptr) Variable Function + 1282(r008): 69(ptr) Variable Function + 1287(r009): 69(ptr) Variable Function + 1290(r010): 69(ptr) Variable Function + 1293(r011): 69(ptr) Variable Function + 1296(r012): 69(ptr) Variable Function + 1299(r013): 69(ptr) Variable Function + 1302(r014): 69(ptr) Variable Function + 1305(r015): 69(ptr) Variable Function + 1308(r016): 69(ptr) Variable Function + 1311(r017): 69(ptr) Variable Function + 1314(r018): 7(ptr) Variable Function + 1317(r019): 69(ptr) Variable Function + 1320(R020): 69(ptr) Variable Function + 1323(r021): 69(ptr) Variable Function + 1326(r022): 69(ptr) Variable Function + 1339(r023): 69(ptr) Variable Function + 1342(r024): 69(ptr) Variable Function + 1348(r025): 69(ptr) Variable Function + 1351(r026): 69(ptr) Variable Function + 1355(r026a): 69(ptr) Variable Function + 1360(r027): 69(ptr) Variable Function + 1363(r028): 69(ptr) Variable Function + 1367(r029): 69(ptr) Variable Function + 1370(r030): 69(ptr) Variable Function + 1374(r031): 69(ptr) Variable Function + 1378(r032): 69(ptr) Variable Function + 1382(r033): 69(ptr) Variable Function + 1385(r034): 69(ptr) Variable Function + 1388(r035): 69(ptr) Variable Function + 1391(r036): 69(ptr) Variable Function + 1396(r037): 69(ptr) Variable Function + 1399(r038): 69(ptr) Variable Function + 1406(r039): 69(ptr) Variable Function + 1409(r049): 69(ptr) Variable Function + 1414(r041): 69(ptr) Variable Function + 1417(r042): 69(ptr) Variable Function + 1421(r043): 69(ptr) Variable Function + 1424(r044): 69(ptr) Variable Function + 1429(r046): 69(ptr) Variable Function 1251: 68 Load 71(inF0) - 1252: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1251 - Store 1250(r001) 1252 - 1253: 68 Load 71(inF0) - 1254: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1253 + 1252: 131(bool) All 1251 + Store 1250(r000) 1252 + 1254: 68 Load 71(inF0) + 1255: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 1254 + Store 1253(r001) 1255 1256: 68 Load 71(inF0) - 1257: 131(bool) Any 1256 - Store 1255(r003) 1257 + 1257: 68 ExtInst 1(GLSL.std.450) 17(Acos) 1256 1259: 68 Load 71(inF0) - 1260: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1259 - Store 1258(r004) 1260 + 1260: 131(bool) Any 1259 + Store 1258(r003) 1260 1262: 68 Load 71(inF0) - 1263: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1262 - Store 1261(r005) 1263 + 1263: 68 ExtInst 1(GLSL.std.450) 16(Asin) 1262 + Store 1261(r004) 1263 1265: 68 Load 71(inF0) - 1266: 68 Load 72(inF1) - 1267: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1265 1266 - Store 1264(r006) 1267 - 1269: 68 Load 71(inF0) - 1270: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1269 - Store 1268(r007) 1270 - 1271: 68 Load 71(inF0) - 1274: 1273 FOrdLessThan 1271 1272 - 1275: 131(bool) Any 1274 - SelectionMerge 1277 None - BranchConditional 1275 1276 1277 - 1276: Label + 1266: 68 ExtInst 1(GLSL.std.450) 18(Atan) 1265 + Store 1264(r005) 1266 + 1268: 68 Load 71(inF0) + 1269: 68 Load 72(inF1) + 1270: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 1268 1269 + Store 1267(r006) 1270 + 1272: 68 Load 71(inF0) + 1273: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 1272 + Store 1271(r007) 1273 + 1274: 68 Load 71(inF0) + 1277: 1276 FOrdLessThan 1274 1275 + 1278: 131(bool) Any 1277 + SelectionMerge 1280 None + BranchConditional 1278 1279 1280 + 1279: Label Kill - 1277: Label - 1280: 68 Load 71(inF0) - 1281: 68 Load 72(inF1) - 1282: 68 Load 73(inF2) - 1283: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1280 1281 1282 - Store 1279(r008) 1283 - 1285: 68 Load 71(inF0) - 1286: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1285 - Store 1284(r009) 1286 + 1280: Label + 1283: 68 Load 71(inF0) + 1284: 68 Load 72(inF1) + 1285: 68 Load 73(inF2) + 1286: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1283 1284 1285 + Store 1282(r008) 1286 1288: 68 Load 71(inF0) - 1289: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1288 - Store 1287(r010) 1289 + 1289: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1288 + Store 1287(r009) 1289 1291: 68 Load 71(inF0) - 1292: 68 DPdx 1291 - Store 1290(r011) 1292 + 1292: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 1291 + Store 1290(r010) 1292 1294: 68 Load 71(inF0) - 1295: 68 DPdxCoarse 1294 - Store 1293(r012) 1295 + 1295: 68 DPdx 1294 + Store 1293(r011) 1295 1297: 68 Load 71(inF0) - 1298: 68 DPdxFine 1297 - Store 1296(r013) 1298 + 1298: 68 DPdxCoarse 1297 + Store 1296(r012) 1298 1300: 68 Load 71(inF0) - 1301: 68 DPdy 1300 - Store 1299(r014) 1301 + 1301: 68 DPdxFine 1300 + Store 1299(r013) 1301 1303: 68 Load 71(inF0) - 1304: 68 DPdyCoarse 1303 - Store 1302(r015) 1304 + 1304: 68 DPdy 1303 + Store 1302(r014) 1304 1306: 68 Load 71(inF0) - 1307: 68 DPdyFine 1306 - Store 1305(r016) 1307 + 1307: 68 DPdyCoarse 1306 + Store 1305(r015) 1307 1309: 68 Load 71(inF0) - 1310: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1309 - Store 1308(r017) 1310 + 1310: 68 DPdyFine 1309 + Store 1308(r016) 1310 1312: 68 Load 71(inF0) - 1313: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1312 - Store 1311(r018) 1313 + 1313: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 1312 + Store 1311(r017) 1313 1315: 68 Load 71(inF0) - 1316: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1315 - Store 1314(r019) 1316 + 1316: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1315 + Store 1314(r018) 1316 1318: 68 Load 71(inF0) - 1319: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1318 - Store 1317(R020) 1319 + 1319: 68 ExtInst 1(GLSL.std.450) 27(Exp) 1318 + Store 1317(r019) 1319 1321: 68 Load 71(inF0) - 1322: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1321 - Store 1320(r021) 1322 + 1322: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 1321 + Store 1320(R020) 1322 1324: 68 Load 71(inF0) - 1325: 68 Load 72(inF1) - 1326: 36(fvec3) CompositeExtract 1324 0 - 1327: 36(fvec3) CompositeExtract 1325 0 - 1328: 36(fvec3) FMod 1326 1327 - 1329: 36(fvec3) CompositeExtract 1324 1 - 1330: 36(fvec3) CompositeExtract 1325 1 + 1325: 68 ExtInst 1(GLSL.std.450) 8(Floor) 1324 + Store 1323(r021) 1325 + 1327: 68 Load 71(inF0) + 1328: 68 Load 72(inF1) + 1329: 36(fvec3) CompositeExtract 1327 0 + 1330: 36(fvec3) CompositeExtract 1328 0 1331: 36(fvec3) FMod 1329 1330 - 1332: 36(fvec3) CompositeExtract 1324 2 - 1333: 36(fvec3) CompositeExtract 1325 2 + 1332: 36(fvec3) CompositeExtract 1327 1 + 1333: 36(fvec3) CompositeExtract 1328 1 1334: 36(fvec3) FMod 1332 1333 - 1335: 68 CompositeConstruct 1328 1331 1334 - Store 1323(r022) 1335 - 1337: 68 Load 71(inF0) - 1338: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1337 - Store 1336(r023) 1338 + 1335: 36(fvec3) CompositeExtract 1327 2 + 1336: 36(fvec3) CompositeExtract 1328 2 + 1337: 36(fvec3) FMod 1335 1336 + 1338: 68 CompositeConstruct 1331 1334 1337 + Store 1326(r022) 1338 1340: 68 Load 71(inF0) - 1342:1341(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1340 - 1343: 588(ivec3) CompositeExtract 1342 1 - Store 72(inF1) 1343 - 1344: 68 CompositeExtract 1342 0 - Store 1339(r024) 1344 - 1346: 68 Load 71(inF0) - 1347: 68 Fwidth 1346 - Store 1345(r025) 1347 + 1341: 68 ExtInst 1(GLSL.std.450) 10(Fract) 1340 + Store 1339(r023) 1341 + 1343: 68 Load 71(inF0) + 1345:1344(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1343 + 1346: 590(ivec3) CompositeExtract 1345 1 + Store 72(inF1) 1346 + 1347: 68 CompositeExtract 1345 0 + Store 1342(r024) 1347 1349: 68 Load 71(inF0) - 1350: 68 Load 72(inF1) - 1351: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1349 1350 - Store 1348(r026) 1351 - 1353: 68 Load 71(inF0) - 1354: 68 Load 72(inF1) - 1355: 68 Load 73(inF2) - 1356: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1353 1354 1355 - Store 1352(r026a) 1356 - 1358: 68 Load 71(inF0) - 1359: 68 ExtInst 1(GLSL.std.450) 28(Log) 1358 - Store 1357(r027) 1359 + 1350: 68 Fwidth 1349 + Store 1348(r025) 1350 + 1352: 68 Load 71(inF0) + 1353: 68 Load 72(inF1) + 1354: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 1352 1353 + Store 1351(r026) 1354 + 1356: 68 Load 71(inF0) + 1357: 68 Load 72(inF1) + 1358: 68 Load 73(inF2) + 1359: 68 ExtInst 1(GLSL.std.450) 46(FMix) 1356 1357 1358 + Store 1355(r026a) 1359 1361: 68 Load 71(inF0) - 1362: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1361 - 1363: 68 MatrixTimesScalar 1362 263 - Store 1360(r028) 1363 - 1365: 68 Load 71(inF0) - 1366: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1365 - Store 1364(r029) 1366 + 1362: 68 ExtInst 1(GLSL.std.450) 28(Log) 1361 + Store 1360(r027) 1362 + 1364: 68 Load 71(inF0) + 1365: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1364 + 1366: 68 MatrixTimesScalar 1365 262 + Store 1363(r028) 1366 1368: 68 Load 71(inF0) - 1369: 68 Load 72(inF1) - 1370: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1368 1369 - Store 1367(r030) 1370 - 1372: 68 Load 71(inF0) - 1373: 68 Load 72(inF1) - 1374: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1372 1373 - Store 1371(r031) 1374 - 1376: 68 Load 71(inF0) - 1377: 68 Load 72(inF1) - 1378: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1376 1377 - Store 1375(r032) 1378 - 1380: 68 Load 71(inF0) - 1381: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1380 - Store 1379(r033) 1381 + 1369: 68 ExtInst 1(GLSL.std.450) 30(Log2) 1368 + Store 1367(r029) 1369 + 1371: 68 Load 71(inF0) + 1372: 68 Load 72(inF1) + 1373: 68 ExtInst 1(GLSL.std.450) 40(FMax) 1371 1372 + Store 1370(r030) 1373 + 1375: 68 Load 71(inF0) + 1376: 68 Load 72(inF1) + 1377: 68 ExtInst 1(GLSL.std.450) 37(FMin) 1375 1376 + Store 1374(r031) 1377 + 1379: 68 Load 71(inF0) + 1380: 68 Load 72(inF1) + 1381: 68 ExtInst 1(GLSL.std.450) 26(Pow) 1379 1380 + Store 1378(r032) 1381 1383: 68 Load 71(inF0) - 1384: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1383 - Store 1382(r034) 1384 + 1384: 68 ExtInst 1(GLSL.std.450) 11(Radians) 1383 + Store 1382(r033) 1384 1386: 68 Load 71(inF0) - 1387: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1386 - Store 1385(r035) 1387 + 1387: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 1386 + Store 1385(r034) 1387 1389: 68 Load 71(inF0) - 1390: 36(fvec3) CompositeConstruct 175 175 175 - 1391: 36(fvec3) CompositeConstruct 284 284 284 - 1392: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1389 1390 1391 - Store 1388(r036) 1392 - 1394: 68 Load 71(inF0) - 1395: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1394 - Store 1393(r037) 1395 + 1390: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1389 + Store 1388(r035) 1390 + 1392: 68 Load 71(inF0) + 1393: 36(fvec3) CompositeConstruct 175 175 175 + 1394: 36(fvec3) CompositeConstruct 283 283 283 + 1395: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 1392 1393 1394 + Store 1391(r036) 1395 1397: 68 Load 71(inF0) - 1398: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1397 - Store 1396(r038) 1398 - 1399: 68 Load 71(inF0) - 1400: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1399 - Store 72(inF1) 1400 - 1401: 68 Load 71(inF0) - 1402: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1401 - Store 73(inF2) 1402 + 1398: 68 ExtInst 1(GLSL.std.450) 6(FSign) 1397 + Store 1396(r037) 1398 + 1400: 68 Load 71(inF0) + 1401: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1400 + Store 1399(r038) 1401 + 1402: 68 Load 71(inF0) + 1403: 68 ExtInst 1(GLSL.std.450) 13(Sin) 1402 + Store 72(inF1) 1403 1404: 68 Load 71(inF0) - 1405: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1404 - Store 1403(r039) 1405 + 1405: 68 ExtInst 1(GLSL.std.450) 14(Cos) 1404 + Store 73(inF2) 1405 1407: 68 Load 71(inF0) - 1408: 68 Load 72(inF1) - 1409: 68 Load 73(inF2) - 1410: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1407 1408 1409 - Store 1406(r049) 1410 - 1412: 68 Load 71(inF0) - 1413: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1412 - Store 1411(r041) 1413 + 1408: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 1407 + Store 1406(r039) 1408 + 1410: 68 Load 71(inF0) + 1411: 68 Load 72(inF1) + 1412: 68 Load 73(inF2) + 1413: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1410 1411 1412 + Store 1409(r049) 1413 1415: 68 Load 71(inF0) - 1416: 68 Load 72(inF1) - 1417: 68 ExtInst 1(GLSL.std.450) 48(Step) 1415 1416 - Store 1414(r042) 1417 - 1419: 68 Load 71(inF0) - 1420: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1419 - Store 1418(r043) 1420 + 1416: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 1415 + Store 1414(r041) 1416 + 1418: 68 Load 71(inF0) + 1419: 68 Load 72(inF1) + 1420: 68 ExtInst 1(GLSL.std.450) 48(Step) 1418 1419 + Store 1417(r042) 1420 1422: 68 Load 71(inF0) - 1423: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1422 - Store 1421(r044) 1423 - 1424: 68 Load 71(inF0) - 1425: 68 Transpose 1424 + 1423: 68 ExtInst 1(GLSL.std.450) 15(Tan) 1422 + Store 1421(r043) 1423 + 1425: 68 Load 71(inF0) + 1426: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 1425 + Store 1424(r044) 1426 1427: 68 Load 71(inF0) - 1428: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1427 - Store 1426(r046) 1428 - ReturnValue 1430 + 1428: 68 Transpose 1427 + 1430: 68 Load 71(inF0) + 1431: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 1430 + Store 1429(r046) 1431 + ReturnValue 1433 FunctionEnd 82(PixelShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 79(inF0): 77(ptr) FunctionParameter 80(inF1): 77(ptr) FunctionParameter 81(inF2): 77(ptr) FunctionParameter 83: Label - 1433(r000): 132(ptr) Variable Function - 1436(r001): 77(ptr) Variable Function - 1441(r003): 132(ptr) Variable Function - 1444(r004): 77(ptr) Variable Function - 1447(r005): 77(ptr) Variable Function - 1450(r006): 77(ptr) Variable Function - 1454(r007): 77(ptr) Variable Function - 1465(r008): 77(ptr) Variable Function - 1470(r009): 77(ptr) Variable Function - 1473(r010): 77(ptr) Variable Function - 1476(r011): 77(ptr) Variable Function - 1479(r012): 77(ptr) Variable Function - 1482(r013): 77(ptr) Variable Function - 1485(r014): 77(ptr) Variable Function - 1488(r015): 77(ptr) Variable Function - 1491(r016): 77(ptr) Variable Function - 1494(r017): 77(ptr) Variable Function - 1497(r018): 7(ptr) Variable Function - 1500(r019): 77(ptr) Variable Function - 1503(R020): 77(ptr) Variable Function - 1506(r021): 77(ptr) Variable Function - 1509(r022): 77(ptr) Variable Function - 1525(r023): 77(ptr) Variable Function - 1528(r024): 77(ptr) Variable Function - 1534(r025): 77(ptr) Variable Function - 1537(r026): 77(ptr) Variable Function - 1541(r026a): 77(ptr) Variable Function - 1546(r027): 77(ptr) Variable Function - 1549(r028): 77(ptr) Variable Function - 1553(r029): 77(ptr) Variable Function - 1556(r030): 77(ptr) Variable Function - 1560(r031): 77(ptr) Variable Function - 1564(r032): 77(ptr) Variable Function - 1568(r033): 77(ptr) Variable Function - 1571(r034): 77(ptr) Variable Function - 1574(r035): 77(ptr) Variable Function - 1577(r036): 77(ptr) Variable Function - 1582(r037): 77(ptr) Variable Function - 1585(r038): 77(ptr) Variable Function - 1592(r039): 77(ptr) Variable Function - 1595(r049): 77(ptr) Variable Function - 1600(r041): 77(ptr) Variable Function - 1603(r042): 77(ptr) Variable Function - 1607(r043): 77(ptr) Variable Function - 1610(r044): 77(ptr) Variable Function - 1615(r046): 77(ptr) Variable Function - 1434: 76 Load 79(inF0) - 1435: 131(bool) All 1434 - Store 1433(r000) 1435 + 1436(r000): 132(ptr) Variable Function + 1439(r001): 77(ptr) Variable Function + 1444(r003): 132(ptr) Variable Function + 1447(r004): 77(ptr) Variable Function + 1450(r005): 77(ptr) Variable Function + 1453(r006): 77(ptr) Variable Function + 1457(r007): 77(ptr) Variable Function + 1468(r008): 77(ptr) Variable Function + 1473(r009): 77(ptr) Variable Function + 1476(r010): 77(ptr) Variable Function + 1479(r011): 77(ptr) Variable Function + 1482(r012): 77(ptr) Variable Function + 1485(r013): 77(ptr) Variable Function + 1488(r014): 77(ptr) Variable Function + 1491(r015): 77(ptr) Variable Function + 1494(r016): 77(ptr) Variable Function + 1497(r017): 77(ptr) Variable Function + 1500(r018): 7(ptr) Variable Function + 1503(r019): 77(ptr) Variable Function + 1506(R020): 77(ptr) Variable Function + 1509(r021): 77(ptr) Variable Function + 1512(r022): 77(ptr) Variable Function + 1528(r023): 77(ptr) Variable Function + 1531(r024): 77(ptr) Variable Function + 1537(r025): 77(ptr) Variable Function + 1540(r026): 77(ptr) Variable Function + 1544(r026a): 77(ptr) Variable Function + 1549(r027): 77(ptr) Variable Function + 1552(r028): 77(ptr) Variable Function + 1556(r029): 77(ptr) Variable Function + 1559(r030): 77(ptr) Variable Function + 1563(r031): 77(ptr) Variable Function + 1567(r032): 77(ptr) Variable Function + 1571(r033): 77(ptr) Variable Function + 1574(r034): 77(ptr) Variable Function + 1577(r035): 77(ptr) Variable Function + 1580(r036): 77(ptr) Variable Function + 1585(r037): 77(ptr) Variable Function + 1588(r038): 77(ptr) Variable Function + 1595(r039): 77(ptr) Variable Function + 1598(r049): 77(ptr) Variable Function + 1603(r041): 77(ptr) Variable Function + 1606(r042): 77(ptr) Variable Function + 1610(r043): 77(ptr) Variable Function + 1613(r044): 77(ptr) Variable Function + 1618(r046): 77(ptr) Variable Function 1437: 76 Load 79(inF0) - 1438: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1437 - Store 1436(r001) 1438 - 1439: 76 Load 79(inF0) - 1440: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1439 + 1438: 131(bool) All 1437 + Store 1436(r000) 1438 + 1440: 76 Load 79(inF0) + 1441: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 1440 + Store 1439(r001) 1441 1442: 76 Load 79(inF0) - 1443: 131(bool) Any 1442 - Store 1441(r003) 1443 + 1443: 76 ExtInst 1(GLSL.std.450) 17(Acos) 1442 1445: 76 Load 79(inF0) - 1446: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1445 - Store 1444(r004) 1446 + 1446: 131(bool) Any 1445 + Store 1444(r003) 1446 1448: 76 Load 79(inF0) - 1449: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1448 - Store 1447(r005) 1449 + 1449: 76 ExtInst 1(GLSL.std.450) 16(Asin) 1448 + Store 1447(r004) 1449 1451: 76 Load 79(inF0) - 1452: 76 Load 80(inF1) - 1453: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1451 1452 - Store 1450(r006) 1453 - 1455: 76 Load 79(inF0) - 1456: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1455 - Store 1454(r007) 1456 - 1457: 76 Load 79(inF0) - 1460: 1459 FOrdLessThan 1457 1458 - 1461: 131(bool) Any 1460 - SelectionMerge 1463 None - BranchConditional 1461 1462 1463 - 1462: Label + 1452: 76 ExtInst 1(GLSL.std.450) 18(Atan) 1451 + Store 1450(r005) 1452 + 1454: 76 Load 79(inF0) + 1455: 76 Load 80(inF1) + 1456: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 1454 1455 + Store 1453(r006) 1456 + 1458: 76 Load 79(inF0) + 1459: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 1458 + Store 1457(r007) 1459 + 1460: 76 Load 79(inF0) + 1463: 1462 FOrdLessThan 1460 1461 + 1464: 131(bool) Any 1463 + SelectionMerge 1466 None + BranchConditional 1464 1465 1466 + 1465: Label Kill - 1463: Label - 1466: 76 Load 79(inF0) - 1467: 76 Load 80(inF1) - 1468: 76 Load 81(inF2) - 1469: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1466 1467 1468 - Store 1465(r008) 1469 - 1471: 76 Load 79(inF0) - 1472: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1471 - Store 1470(r009) 1472 + 1466: Label + 1469: 76 Load 79(inF0) + 1470: 76 Load 80(inF1) + 1471: 76 Load 81(inF2) + 1472: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1469 1470 1471 + Store 1468(r008) 1472 1474: 76 Load 79(inF0) - 1475: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1474 - Store 1473(r010) 1475 + 1475: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1474 + Store 1473(r009) 1475 1477: 76 Load 79(inF0) - 1478: 76 DPdx 1477 - Store 1476(r011) 1478 + 1478: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 1477 + Store 1476(r010) 1478 1480: 76 Load 79(inF0) - 1481: 76 DPdxCoarse 1480 - Store 1479(r012) 1481 + 1481: 76 DPdx 1480 + Store 1479(r011) 1481 1483: 76 Load 79(inF0) - 1484: 76 DPdxFine 1483 - Store 1482(r013) 1484 + 1484: 76 DPdxCoarse 1483 + Store 1482(r012) 1484 1486: 76 Load 79(inF0) - 1487: 76 DPdy 1486 - Store 1485(r014) 1487 + 1487: 76 DPdxFine 1486 + Store 1485(r013) 1487 1489: 76 Load 79(inF0) - 1490: 76 DPdyCoarse 1489 - Store 1488(r015) 1490 + 1490: 76 DPdy 1489 + Store 1488(r014) 1490 1492: 76 Load 79(inF0) - 1493: 76 DPdyFine 1492 - Store 1491(r016) 1493 + 1493: 76 DPdyCoarse 1492 + Store 1491(r015) 1493 1495: 76 Load 79(inF0) - 1496: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1495 - Store 1494(r017) 1496 + 1496: 76 DPdyFine 1495 + Store 1494(r016) 1496 1498: 76 Load 79(inF0) - 1499: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1498 - Store 1497(r018) 1499 + 1499: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 1498 + Store 1497(r017) 1499 1501: 76 Load 79(inF0) - 1502: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1501 - Store 1500(r019) 1502 + 1502: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 1501 + Store 1500(r018) 1502 1504: 76 Load 79(inF0) - 1505: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1504 - Store 1503(R020) 1505 + 1505: 76 ExtInst 1(GLSL.std.450) 27(Exp) 1504 + Store 1503(r019) 1505 1507: 76 Load 79(inF0) - 1508: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1507 - Store 1506(r021) 1508 + 1508: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 1507 + Store 1506(R020) 1508 1510: 76 Load 79(inF0) - 1511: 76 Load 80(inF1) - 1512: 48(fvec4) CompositeExtract 1510 0 - 1513: 48(fvec4) CompositeExtract 1511 0 - 1514: 48(fvec4) FMod 1512 1513 - 1515: 48(fvec4) CompositeExtract 1510 1 - 1516: 48(fvec4) CompositeExtract 1511 1 + 1511: 76 ExtInst 1(GLSL.std.450) 8(Floor) 1510 + Store 1509(r021) 1511 + 1513: 76 Load 79(inF0) + 1514: 76 Load 80(inF1) + 1515: 48(fvec4) CompositeExtract 1513 0 + 1516: 48(fvec4) CompositeExtract 1514 0 1517: 48(fvec4) FMod 1515 1516 - 1518: 48(fvec4) CompositeExtract 1510 2 - 1519: 48(fvec4) CompositeExtract 1511 2 + 1518: 48(fvec4) CompositeExtract 1513 1 + 1519: 48(fvec4) CompositeExtract 1514 1 1520: 48(fvec4) FMod 1518 1519 - 1521: 48(fvec4) CompositeExtract 1510 3 - 1522: 48(fvec4) CompositeExtract 1511 3 + 1521: 48(fvec4) CompositeExtract 1513 2 + 1522: 48(fvec4) CompositeExtract 1514 2 1523: 48(fvec4) FMod 1521 1522 - 1524: 76 CompositeConstruct 1514 1517 1520 1523 - Store 1509(r022) 1524 - 1526: 76 Load 79(inF0) - 1527: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1526 - Store 1525(r023) 1527 + 1524: 48(fvec4) CompositeExtract 1513 3 + 1525: 48(fvec4) CompositeExtract 1514 3 + 1526: 48(fvec4) FMod 1524 1525 + 1527: 76 CompositeConstruct 1517 1520 1523 1526 + Store 1512(r022) 1527 1529: 76 Load 79(inF0) - 1531:1530(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1529 - 1532: 833(ivec4) CompositeExtract 1531 1 - Store 80(inF1) 1532 - 1533: 76 CompositeExtract 1531 0 - Store 1528(r024) 1533 - 1535: 76 Load 79(inF0) - 1536: 76 Fwidth 1535 - Store 1534(r025) 1536 + 1530: 76 ExtInst 1(GLSL.std.450) 10(Fract) 1529 + Store 1528(r023) 1530 + 1532: 76 Load 79(inF0) + 1534:1533(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 1532 + 1535: 836(ivec4) CompositeExtract 1534 1 + Store 80(inF1) 1535 + 1536: 76 CompositeExtract 1534 0 + Store 1531(r024) 1536 1538: 76 Load 79(inF0) - 1539: 76 Load 80(inF1) - 1540: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1538 1539 - Store 1537(r026) 1540 - 1542: 76 Load 79(inF0) - 1543: 76 Load 80(inF1) - 1544: 76 Load 81(inF2) - 1545: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1542 1543 1544 - Store 1541(r026a) 1545 - 1547: 76 Load 79(inF0) - 1548: 76 ExtInst 1(GLSL.std.450) 28(Log) 1547 - Store 1546(r027) 1548 + 1539: 76 Fwidth 1538 + Store 1537(r025) 1539 + 1541: 76 Load 79(inF0) + 1542: 76 Load 80(inF1) + 1543: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1541 1542 + Store 1540(r026) 1543 + 1545: 76 Load 79(inF0) + 1546: 76 Load 80(inF1) + 1547: 76 Load 81(inF2) + 1548: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1545 1546 1547 + Store 1544(r026a) 1548 1550: 76 Load 79(inF0) - 1551: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1550 - 1552: 76 MatrixTimesScalar 1551 263 - Store 1549(r028) 1552 - 1554: 76 Load 79(inF0) - 1555: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1554 - Store 1553(r029) 1555 + 1551: 76 ExtInst 1(GLSL.std.450) 28(Log) 1550 + Store 1549(r027) 1551 + 1553: 76 Load 79(inF0) + 1554: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1553 + 1555: 76 MatrixTimesScalar 1554 262 + Store 1552(r028) 1555 1557: 76 Load 79(inF0) - 1558: 76 Load 80(inF1) - 1559: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1557 1558 - Store 1556(r030) 1559 - 1561: 76 Load 79(inF0) - 1562: 76 Load 80(inF1) - 1563: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1561 1562 - Store 1560(r031) 1563 - 1565: 76 Load 79(inF0) - 1566: 76 Load 80(inF1) - 1567: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1565 1566 - Store 1564(r032) 1567 - 1569: 76 Load 79(inF0) - 1570: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1569 - Store 1568(r033) 1570 + 1558: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1557 + Store 1556(r029) 1558 + 1560: 76 Load 79(inF0) + 1561: 76 Load 80(inF1) + 1562: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1560 1561 + Store 1559(r030) 1562 + 1564: 76 Load 79(inF0) + 1565: 76 Load 80(inF1) + 1566: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1564 1565 + Store 1563(r031) 1566 + 1568: 76 Load 79(inF0) + 1569: 76 Load 80(inF1) + 1570: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1568 1569 + Store 1567(r032) 1570 1572: 76 Load 79(inF0) - 1573: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1572 - Store 1571(r034) 1573 + 1573: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1572 + Store 1571(r033) 1573 1575: 76 Load 79(inF0) - 1576: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1575 - Store 1574(r035) 1576 + 1576: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1575 + Store 1574(r034) 1576 1578: 76 Load 79(inF0) - 1579: 48(fvec4) CompositeConstruct 175 175 175 175 - 1580: 48(fvec4) CompositeConstruct 284 284 284 284 - 1581: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1578 1579 1580 - Store 1577(r036) 1581 - 1583: 76 Load 79(inF0) - 1584: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1583 - Store 1582(r037) 1584 + 1579: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1578 + Store 1577(r035) 1579 + 1581: 76 Load 79(inF0) + 1582: 48(fvec4) CompositeConstruct 175 175 175 175 + 1583: 48(fvec4) CompositeConstruct 283 283 283 283 + 1584: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1581 1582 1583 + Store 1580(r036) 1584 1586: 76 Load 79(inF0) - 1587: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1586 - Store 1585(r038) 1587 - 1588: 76 Load 79(inF0) - 1589: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1588 - Store 80(inF1) 1589 - 1590: 76 Load 79(inF0) - 1591: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1590 - Store 81(inF2) 1591 + 1587: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1586 + Store 1585(r037) 1587 + 1589: 76 Load 79(inF0) + 1590: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1589 + Store 1588(r038) 1590 + 1591: 76 Load 79(inF0) + 1592: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1591 + Store 80(inF1) 1592 1593: 76 Load 79(inF0) - 1594: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1593 - Store 1592(r039) 1594 + 1594: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1593 + Store 81(inF2) 1594 1596: 76 Load 79(inF0) - 1597: 76 Load 80(inF1) - 1598: 76 Load 81(inF2) - 1599: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1596 1597 1598 - Store 1595(r049) 1599 - 1601: 76 Load 79(inF0) - 1602: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1601 - Store 1600(r041) 1602 + 1597: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1596 + Store 1595(r039) 1597 + 1599: 76 Load 79(inF0) + 1600: 76 Load 80(inF1) + 1601: 76 Load 81(inF2) + 1602: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1599 1600 1601 + Store 1598(r049) 1602 1604: 76 Load 79(inF0) - 1605: 76 Load 80(inF1) - 1606: 76 ExtInst 1(GLSL.std.450) 48(Step) 1604 1605 - Store 1603(r042) 1606 - 1608: 76 Load 79(inF0) - 1609: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1608 - Store 1607(r043) 1609 + 1605: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1604 + Store 1603(r041) 1605 + 1607: 76 Load 79(inF0) + 1608: 76 Load 80(inF1) + 1609: 76 ExtInst 1(GLSL.std.450) 48(Step) 1607 1608 + Store 1606(r042) 1609 1611: 76 Load 79(inF0) - 1612: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1611 - Store 1610(r044) 1612 - 1613: 76 Load 79(inF0) - 1614: 76 Transpose 1613 + 1612: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1611 + Store 1610(r043) 1612 + 1614: 76 Load 79(inF0) + 1615: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1614 + Store 1613(r044) 1615 1616: 76 Load 79(inF0) - 1617: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1616 - Store 1615(r046) 1617 - ReturnValue 1619 + 1617: 76 Transpose 1616 + 1619: 76 Load 79(inF0) + 1620: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1619 + Store 1618(r046) 1620 + ReturnValue 1622 FunctionEnd 91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 85(inF0): 7(ptr) FunctionParameter @@ -8177,51 +8182,51 @@ gl_FragCoord origin is upper left 89(inFM0): 61(ptr) FunctionParameter 90(inFM1): 61(ptr) FunctionParameter 92: Label - 1622(r0): 7(ptr) Variable Function - 1626(r1): 25(ptr) Variable Function - 1630(r2): 25(ptr) Variable Function - 1634(r3): 7(ptr) Variable Function - 1638(r4): 25(ptr) Variable Function - 1642(r5): 25(ptr) Variable Function - 1646(r6): 61(ptr) Variable Function - 1650(r7): 61(ptr) Variable Function - 1654(r8): 61(ptr) Variable Function - 1623: 6(float) Load 86(inF1) - 1624: 6(float) Load 85(inF0) - 1625: 6(float) FMul 1623 1624 - Store 1622(r0) 1625 + 1625(r0): 7(ptr) Variable Function + 1629(r1): 25(ptr) Variable Function + 1633(r2): 25(ptr) Variable Function + 1637(r3): 7(ptr) Variable Function + 1641(r4): 25(ptr) Variable Function + 1645(r5): 25(ptr) Variable Function + 1649(r6): 61(ptr) Variable Function + 1653(r7): 61(ptr) Variable Function + 1657(r8): 61(ptr) Variable Function + 1626: 6(float) Load 86(inF1) 1627: 6(float) Load 85(inF0) - 1628: 24(fvec2) Load 87(inFV0) - 1629: 24(fvec2) VectorTimesScalar 1628 1627 - Store 1626(r1) 1629 + 1628: 6(float) FMul 1626 1627 + Store 1625(r0) 1628 + 1630: 6(float) Load 85(inF0) 1631: 24(fvec2) Load 87(inFV0) - 1632: 6(float) Load 85(inF0) - 1633: 24(fvec2) VectorTimesScalar 1631 1632 - Store 1630(r2) 1633 - 1635: 24(fvec2) Load 87(inFV0) - 1636: 24(fvec2) Load 88(inFV1) - 1637: 6(float) Dot 1635 1636 - Store 1634(r3) 1637 - 1639: 24(fvec2) Load 87(inFV0) - 1640: 60 Load 89(inFM0) - 1641: 24(fvec2) VectorTimesMatrix 1639 1640 - Store 1638(r4) 1641 + 1632: 24(fvec2) VectorTimesScalar 1631 1630 + Store 1629(r1) 1632 + 1634: 24(fvec2) Load 87(inFV0) + 1635: 6(float) Load 85(inF0) + 1636: 24(fvec2) VectorTimesScalar 1634 1635 + Store 1633(r2) 1636 + 1638: 24(fvec2) Load 87(inFV0) + 1639: 24(fvec2) Load 88(inFV1) + 1640: 6(float) Dot 1638 1639 + Store 1637(r3) 1640 + 1642: 24(fvec2) Load 87(inFV0) 1643: 60 Load 89(inFM0) - 1644: 24(fvec2) Load 87(inFV0) - 1645: 24(fvec2) MatrixTimesVector 1643 1644 - Store 1642(r5) 1645 - 1647: 6(float) Load 85(inF0) - 1648: 60 Load 89(inFM0) - 1649: 60 MatrixTimesScalar 1648 1647 - Store 1646(r6) 1649 + 1644: 24(fvec2) VectorTimesMatrix 1642 1643 + Store 1641(r4) 1644 + 1646: 60 Load 89(inFM0) + 1647: 24(fvec2) Load 87(inFV0) + 1648: 24(fvec2) MatrixTimesVector 1646 1647 + Store 1645(r5) 1648 + 1650: 6(float) Load 85(inF0) 1651: 60 Load 89(inFM0) - 1652: 6(float) Load 85(inF0) - 1653: 60 MatrixTimesScalar 1651 1652 - Store 1650(r7) 1653 - 1655: 60 Load 90(inFM1) - 1656: 60 Load 89(inFM0) - 1657: 60 MatrixTimesMatrix 1655 1656 - Store 1654(r8) 1657 + 1652: 60 MatrixTimesScalar 1651 1650 + Store 1649(r6) 1652 + 1654: 60 Load 89(inFM0) + 1655: 6(float) Load 85(inF0) + 1656: 60 MatrixTimesScalar 1654 1655 + Store 1653(r7) 1656 + 1658: 60 Load 90(inFM1) + 1659: 60 Load 89(inFM0) + 1660: 60 MatrixTimesMatrix 1658 1659 + Store 1657(r8) 1660 Return FunctionEnd 100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 @@ -8232,51 +8237,51 @@ gl_FragCoord origin is upper left 98(inFM0): 69(ptr) FunctionParameter 99(inFM1): 69(ptr) FunctionParameter 101: Label - 1658(r0): 7(ptr) Variable Function - 1662(r1): 37(ptr) Variable Function - 1666(r2): 37(ptr) Variable Function - 1670(r3): 7(ptr) Variable Function - 1674(r4): 37(ptr) Variable Function - 1678(r5): 37(ptr) Variable Function - 1682(r6): 69(ptr) Variable Function - 1686(r7): 69(ptr) Variable Function - 1690(r8): 69(ptr) Variable Function - 1659: 6(float) Load 95(inF1) - 1660: 6(float) Load 94(inF0) - 1661: 6(float) FMul 1659 1660 - Store 1658(r0) 1661 + 1661(r0): 7(ptr) Variable Function + 1665(r1): 37(ptr) Variable Function + 1669(r2): 37(ptr) Variable Function + 1673(r3): 7(ptr) Variable Function + 1677(r4): 37(ptr) Variable Function + 1681(r5): 37(ptr) Variable Function + 1685(r6): 69(ptr) Variable Function + 1689(r7): 69(ptr) Variable Function + 1693(r8): 69(ptr) Variable Function + 1662: 6(float) Load 95(inF1) 1663: 6(float) Load 94(inF0) - 1664: 36(fvec3) Load 96(inFV0) - 1665: 36(fvec3) VectorTimesScalar 1664 1663 - Store 1662(r1) 1665 + 1664: 6(float) FMul 1662 1663 + Store 1661(r0) 1664 + 1666: 6(float) Load 94(inF0) 1667: 36(fvec3) Load 96(inFV0) - 1668: 6(float) Load 94(inF0) - 1669: 36(fvec3) VectorTimesScalar 1667 1668 - Store 1666(r2) 1669 - 1671: 36(fvec3) Load 96(inFV0) - 1672: 36(fvec3) Load 97(inFV1) - 1673: 6(float) Dot 1671 1672 - Store 1670(r3) 1673 - 1675: 36(fvec3) Load 96(inFV0) - 1676: 68 Load 98(inFM0) - 1677: 36(fvec3) VectorTimesMatrix 1675 1676 - Store 1674(r4) 1677 + 1668: 36(fvec3) VectorTimesScalar 1667 1666 + Store 1665(r1) 1668 + 1670: 36(fvec3) Load 96(inFV0) + 1671: 6(float) Load 94(inF0) + 1672: 36(fvec3) VectorTimesScalar 1670 1671 + Store 1669(r2) 1672 + 1674: 36(fvec3) Load 96(inFV0) + 1675: 36(fvec3) Load 97(inFV1) + 1676: 6(float) Dot 1674 1675 + Store 1673(r3) 1676 + 1678: 36(fvec3) Load 96(inFV0) 1679: 68 Load 98(inFM0) - 1680: 36(fvec3) Load 96(inFV0) - 1681: 36(fvec3) MatrixTimesVector 1679 1680 - Store 1678(r5) 1681 - 1683: 6(float) Load 94(inF0) - 1684: 68 Load 98(inFM0) - 1685: 68 MatrixTimesScalar 1684 1683 - Store 1682(r6) 1685 + 1680: 36(fvec3) VectorTimesMatrix 1678 1679 + Store 1677(r4) 1680 + 1682: 68 Load 98(inFM0) + 1683: 36(fvec3) Load 96(inFV0) + 1684: 36(fvec3) MatrixTimesVector 1682 1683 + Store 1681(r5) 1684 + 1686: 6(float) Load 94(inF0) 1687: 68 Load 98(inFM0) - 1688: 6(float) Load 94(inF0) - 1689: 68 MatrixTimesScalar 1687 1688 - Store 1686(r7) 1689 - 1691: 68 Load 99(inFM1) - 1692: 68 Load 98(inFM0) - 1693: 68 MatrixTimesMatrix 1691 1692 - Store 1690(r8) 1693 + 1688: 68 MatrixTimesScalar 1687 1686 + Store 1685(r6) 1688 + 1690: 68 Load 98(inFM0) + 1691: 6(float) Load 94(inF0) + 1692: 68 MatrixTimesScalar 1690 1691 + Store 1689(r7) 1692 + 1694: 68 Load 99(inFM1) + 1695: 68 Load 98(inFM0) + 1696: 68 MatrixTimesMatrix 1694 1695 + Store 1693(r8) 1696 Return FunctionEnd 109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 @@ -8287,51 +8292,51 @@ gl_FragCoord origin is upper left 107(inFM0): 77(ptr) FunctionParameter 108(inFM1): 77(ptr) FunctionParameter 110: Label - 1694(r0): 7(ptr) Variable Function - 1698(r1): 49(ptr) Variable Function - 1702(r2): 49(ptr) Variable Function - 1706(r3): 7(ptr) Variable Function - 1710(r4): 49(ptr) Variable Function - 1714(r5): 49(ptr) Variable Function - 1718(r6): 77(ptr) Variable Function - 1722(r7): 77(ptr) Variable Function - 1726(r8): 77(ptr) Variable Function - 1695: 6(float) Load 104(inF1) - 1696: 6(float) Load 103(inF0) - 1697: 6(float) FMul 1695 1696 - Store 1694(r0) 1697 + 1697(r0): 7(ptr) Variable Function + 1701(r1): 49(ptr) Variable Function + 1705(r2): 49(ptr) Variable Function + 1709(r3): 7(ptr) Variable Function + 1713(r4): 49(ptr) Variable Function + 1717(r5): 49(ptr) Variable Function + 1721(r6): 77(ptr) Variable Function + 1725(r7): 77(ptr) Variable Function + 1729(r8): 77(ptr) Variable Function + 1698: 6(float) Load 104(inF1) 1699: 6(float) Load 103(inF0) - 1700: 48(fvec4) Load 105(inFV0) - 1701: 48(fvec4) VectorTimesScalar 1700 1699 - Store 1698(r1) 1701 + 1700: 6(float) FMul 1698 1699 + Store 1697(r0) 1700 + 1702: 6(float) Load 103(inF0) 1703: 48(fvec4) Load 105(inFV0) - 1704: 6(float) Load 103(inF0) - 1705: 48(fvec4) VectorTimesScalar 1703 1704 - Store 1702(r2) 1705 - 1707: 48(fvec4) Load 105(inFV0) - 1708: 48(fvec4) Load 106(inFV1) - 1709: 6(float) Dot 1707 1708 - Store 1706(r3) 1709 - 1711: 48(fvec4) Load 105(inFV0) - 1712: 76 Load 107(inFM0) - 1713: 48(fvec4) VectorTimesMatrix 1711 1712 - Store 1710(r4) 1713 + 1704: 48(fvec4) VectorTimesScalar 1703 1702 + Store 1701(r1) 1704 + 1706: 48(fvec4) Load 105(inFV0) + 1707: 6(float) Load 103(inF0) + 1708: 48(fvec4) VectorTimesScalar 1706 1707 + Store 1705(r2) 1708 + 1710: 48(fvec4) Load 105(inFV0) + 1711: 48(fvec4) Load 106(inFV1) + 1712: 6(float) Dot 1710 1711 + Store 1709(r3) 1712 + 1714: 48(fvec4) Load 105(inFV0) 1715: 76 Load 107(inFM0) - 1716: 48(fvec4) Load 105(inFV0) - 1717: 48(fvec4) MatrixTimesVector 1715 1716 - Store 1714(r5) 1717 - 1719: 6(float) Load 103(inF0) - 1720: 76 Load 107(inFM0) - 1721: 76 MatrixTimesScalar 1720 1719 - Store 1718(r6) 1721 + 1716: 48(fvec4) VectorTimesMatrix 1714 1715 + Store 1713(r4) 1716 + 1718: 76 Load 107(inFM0) + 1719: 48(fvec4) Load 105(inFV0) + 1720: 48(fvec4) MatrixTimesVector 1718 1719 + Store 1717(r5) 1720 + 1722: 6(float) Load 103(inF0) 1723: 76 Load 107(inFM0) - 1724: 6(float) Load 103(inF0) - 1725: 76 MatrixTimesScalar 1723 1724 - Store 1722(r7) 1725 - 1727: 76 Load 108(inFM1) - 1728: 76 Load 107(inFM0) - 1729: 76 MatrixTimesMatrix 1727 1728 - Store 1726(r8) 1729 + 1724: 76 MatrixTimesScalar 1723 1722 + Store 1721(r6) 1724 + 1726: 76 Load 107(inFM0) + 1727: 6(float) Load 103(inF0) + 1728: 76 MatrixTimesScalar 1726 1727 + Store 1725(r7) 1728 + 1730: 76 Load 108(inFM1) + 1731: 76 Load 107(inFM0) + 1732: 76 MatrixTimesMatrix 1730 1731 + Store 1729(r8) 1732 Return FunctionEnd 129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 @@ -8345,90 +8350,90 @@ gl_FragCoord origin is upper left 127(inFM3x4): 116(ptr) FunctionParameter 128(inFM2x4): 118(ptr) FunctionParameter 130: Label - 1730(r00): 7(ptr) Variable Function - 1734(r01): 25(ptr) Variable Function - 1738(r02): 37(ptr) Variable Function - 1742(r03): 25(ptr) Variable Function - 1746(r04): 37(ptr) Variable Function - 1750(r05): 7(ptr) Variable Function - 1754(r06): 7(ptr) Variable Function - 1758(r07): 37(ptr) Variable Function - 1762(r08): 25(ptr) Variable Function - 1766(r09): 25(ptr) Variable Function - 1770(r10): 37(ptr) Variable Function - 1774(r11): 112(ptr) Variable Function - 1778(r12): 114(ptr) Variable Function - 1782(r13): 61(ptr) Variable Function - 1786(r14): 112(ptr) Variable Function - 1790(r15): 118(ptr) Variable Function - 1794(r16): 116(ptr) Variable Function - 1731: 6(float) Load 121(inF1) - 1732: 6(float) Load 120(inF0) - 1733: 6(float) FMul 1731 1732 - Store 1730(r00) 1733 + 1733(r00): 7(ptr) Variable Function + 1737(r01): 25(ptr) Variable Function + 1741(r02): 37(ptr) Variable Function + 1745(r03): 25(ptr) Variable Function + 1749(r04): 37(ptr) Variable Function + 1753(r05): 7(ptr) Variable Function + 1757(r06): 7(ptr) Variable Function + 1761(r07): 37(ptr) Variable Function + 1765(r08): 25(ptr) Variable Function + 1769(r09): 25(ptr) Variable Function + 1773(r10): 37(ptr) Variable Function + 1777(r11): 112(ptr) Variable Function + 1781(r12): 114(ptr) Variable Function + 1785(r13): 61(ptr) Variable Function + 1789(r14): 112(ptr) Variable Function + 1793(r15): 118(ptr) Variable Function + 1797(r16): 116(ptr) Variable Function + 1734: 6(float) Load 121(inF1) 1735: 6(float) Load 120(inF0) - 1736: 24(fvec2) Load 122(inFV2) - 1737: 24(fvec2) VectorTimesScalar 1736 1735 - Store 1734(r01) 1737 - 1739: 6(float) Load 120(inF0) - 1740: 36(fvec3) Load 123(inFV3) - 1741: 36(fvec3) VectorTimesScalar 1740 1739 - Store 1738(r02) 1741 - 1743: 24(fvec2) Load 122(inFV2) - 1744: 6(float) Load 120(inF0) - 1745: 24(fvec2) VectorTimesScalar 1743 1744 - Store 1742(r03) 1745 - 1747: 36(fvec3) Load 123(inFV3) - 1748: 6(float) Load 120(inF0) - 1749: 36(fvec3) VectorTimesScalar 1747 1748 - Store 1746(r04) 1749 - 1751: 24(fvec2) Load 122(inFV2) - 1752: 24(fvec2) Load 122(inFV2) - 1753: 6(float) Dot 1751 1752 - Store 1750(r05) 1753 - 1755: 36(fvec3) Load 123(inFV3) - 1756: 36(fvec3) Load 123(inFV3) - 1757: 6(float) Dot 1755 1756 - Store 1754(r06) 1757 - 1759: 111 Load 124(inFM2x3) - 1760: 24(fvec2) Load 122(inFV2) - 1761: 36(fvec3) MatrixTimesVector 1759 1760 - Store 1758(r07) 1761 - 1763: 113 Load 125(inFM3x2) - 1764: 36(fvec3) Load 123(inFV3) - 1765: 24(fvec2) MatrixTimesVector 1763 1764 - Store 1762(r08) 1765 + 1736: 6(float) FMul 1734 1735 + Store 1733(r00) 1736 + 1738: 6(float) Load 120(inF0) + 1739: 24(fvec2) Load 122(inFV2) + 1740: 24(fvec2) VectorTimesScalar 1739 1738 + Store 1737(r01) 1740 + 1742: 6(float) Load 120(inF0) + 1743: 36(fvec3) Load 123(inFV3) + 1744: 36(fvec3) VectorTimesScalar 1743 1742 + Store 1741(r02) 1744 + 1746: 24(fvec2) Load 122(inFV2) + 1747: 6(float) Load 120(inF0) + 1748: 24(fvec2) VectorTimesScalar 1746 1747 + Store 1745(r03) 1748 + 1750: 36(fvec3) Load 123(inFV3) + 1751: 6(float) Load 120(inF0) + 1752: 36(fvec3) VectorTimesScalar 1750 1751 + Store 1749(r04) 1752 + 1754: 24(fvec2) Load 122(inFV2) + 1755: 24(fvec2) Load 122(inFV2) + 1756: 6(float) Dot 1754 1755 + Store 1753(r05) 1756 + 1758: 36(fvec3) Load 123(inFV3) + 1759: 36(fvec3) Load 123(inFV3) + 1760: 6(float) Dot 1758 1759 + Store 1757(r06) 1760 + 1762: 111 Load 124(inFM2x3) + 1763: 24(fvec2) Load 122(inFV2) + 1764: 36(fvec3) MatrixTimesVector 1762 1763 + Store 1761(r07) 1764 + 1766: 113 Load 125(inFM3x2) 1767: 36(fvec3) Load 123(inFV3) - 1768: 111 Load 124(inFM2x3) - 1769: 24(fvec2) VectorTimesMatrix 1767 1768 - Store 1766(r09) 1769 - 1771: 24(fvec2) Load 122(inFV2) - 1772: 113 Load 125(inFM3x2) - 1773: 36(fvec3) VectorTimesMatrix 1771 1772 - Store 1770(r10) 1773 - 1775: 6(float) Load 120(inF0) - 1776: 111 Load 124(inFM2x3) - 1777: 111 MatrixTimesScalar 1776 1775 - Store 1774(r11) 1777 - 1779: 6(float) Load 120(inF0) - 1780: 113 Load 125(inFM3x2) - 1781: 113 MatrixTimesScalar 1780 1779 - Store 1778(r12) 1781 + 1768: 24(fvec2) MatrixTimesVector 1766 1767 + Store 1765(r08) 1768 + 1770: 36(fvec3) Load 123(inFV3) + 1771: 111 Load 124(inFM2x3) + 1772: 24(fvec2) VectorTimesMatrix 1770 1771 + Store 1769(r09) 1772 + 1774: 24(fvec2) Load 122(inFV2) + 1775: 113 Load 125(inFM3x2) + 1776: 36(fvec3) VectorTimesMatrix 1774 1775 + Store 1773(r10) 1776 + 1778: 6(float) Load 120(inF0) + 1779: 111 Load 124(inFM2x3) + 1780: 111 MatrixTimesScalar 1779 1778 + Store 1777(r11) 1780 + 1782: 6(float) Load 120(inF0) 1783: 113 Load 125(inFM3x2) - 1784: 111 Load 124(inFM2x3) - 1785: 60 MatrixTimesMatrix 1783 1784 - Store 1782(r13) 1785 - 1787: 68 Load 126(inFM3x3) - 1788: 111 Load 124(inFM2x3) - 1789: 111 MatrixTimesMatrix 1787 1788 - Store 1786(r14) 1789 - 1791: 115 Load 127(inFM3x4) - 1792: 111 Load 124(inFM2x3) - 1793: 117 MatrixTimesMatrix 1791 1792 - Store 1790(r15) 1793 - 1795: 117 Load 128(inFM2x4) - 1796: 113 Load 125(inFM3x2) - 1797: 115 MatrixTimesMatrix 1795 1796 - Store 1794(r16) 1797 + 1784: 113 MatrixTimesScalar 1783 1782 + Store 1781(r12) 1784 + 1786: 113 Load 125(inFM3x2) + 1787: 111 Load 124(inFM2x3) + 1788: 60 MatrixTimesMatrix 1786 1787 + Store 1785(r13) 1788 + 1790: 68 Load 126(inFM3x3) + 1791: 111 Load 124(inFM2x3) + 1792: 111 MatrixTimesMatrix 1790 1791 + Store 1789(r14) 1792 + 1794: 115 Load 127(inFM3x4) + 1795: 111 Load 124(inFM2x3) + 1796: 117 MatrixTimesMatrix 1794 1795 + Store 1793(r15) 1796 + 1798: 117 Load 128(inFM2x4) + 1799: 113 Load 125(inFM3x2) + 1800: 115 MatrixTimesMatrix 1798 1799 + Store 1797(r16) 1800 Return FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out index eb3cee7d770245cd6c76dcea9c9df438c48bd23e..6b393048e7f087023f7622cad543158dbb5a75ea 100644 --- a/Test/baseResults/hlsl.intrinsics.lit.frag.out +++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out @@ -2,7 +2,7 @@ hlsl.intrinsics.lit.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) 0:2 Function Parameters: 0:2 'n_dot_l' (layout(location=0 ) in float) 0:2 'n_dot_h' (layout(location=1 ) in float) @@ -47,7 +47,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (global void) +0:2 Function Definition: PixelShaderFunction(f1;f1;f1; (temp void) 0:2 Function Parameters: 0:2 'n_dot_l' (layout(location=0 ) in float) 0:2 'n_dot_h' (layout(location=1 ) in float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.comp.out b/Test/baseResults/hlsl.intrinsics.negative.comp.out index 01008644462bc896e78d5582a1b37f57af474f5f..44dedf77061807c5bf186311b04ec0e3b88cae03 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.comp.out +++ b/Test/baseResults/hlsl.intrinsics.negative.comp.out @@ -2,7 +2,7 @@ hlsl.intrinsics.negative.comp Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -12,7 +12,7 @@ local_size = (1, 1, 1) 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 -0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:57 Function Parameters: 0:57 'inF0' (in 1-component vector of float) 0:57 'inF1' (in 1-component vector of float) @@ -22,7 +22,7 @@ local_size = (1, 1, 1) 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 -0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:66 Function Parameters: 0:66 'inF0' (in 2-component vector of float) 0:66 'inF1' (in 2-component vector of float) @@ -33,7 +33,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:113 Function Parameters: 0:113 'inF0' (in 3-component vector of float) 0:113 'inF1' (in 3-component vector of float) @@ -45,7 +45,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' (layout(location=0 ) in 4-component vector of float) 0:158 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -75,7 +75,7 @@ Linked compute stage: Shader version: 450 local_size = (1, 1, 1) 0:? Sequence -0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: ComputeShaderFunctionS(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -85,7 +85,7 @@ local_size = (1, 1, 1) 0:53 Branch: Return with expression 0:53 Constant: 0:53 0.000000 -0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:57 Function Definition: ComputeShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:57 Function Parameters: 0:57 'inF0' (in 1-component vector of float) 0:57 'inF1' (in 1-component vector of float) @@ -95,7 +95,7 @@ local_size = (1, 1, 1) 0:62 Branch: Return with expression 0:62 Constant: 0:62 0.000000 -0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:66 Function Definition: ComputeShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:66 Function Parameters: 0:66 'inF0' (in 2-component vector of float) 0:66 'inF1' (in 2-component vector of float) @@ -106,7 +106,7 @@ local_size = (1, 1, 1) 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:113 Function Definition: ComputeShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:113 Function Parameters: 0:113 'inF0' (in 3-component vector of float) 0:113 'inF1' (in 3-component vector of float) @@ -118,7 +118,7 @@ local_size = (1, 1, 1) 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:158 Function Definition: ComputeShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:158 Function Parameters: 0:158 'inF0' (layout(location=0 ) in 4-component vector of float) 0:158 'inF1' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.frag.out b/Test/baseResults/hlsl.intrinsics.negative.frag.out index 2244e8bce25f5189b4887bddcf2c0549977f3636..e275054325c126c96eaa1a2ffede465ff40d7f98 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.frag.out +++ b/Test/baseResults/hlsl.intrinsics.negative.frag.out @@ -65,7 +65,7 @@ ERROR: 60 compilation errors. No code generated. Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -78,36 +78,36 @@ ERROR: node is still EOpNull! 0:5 'inF0' (in float) 0:5 Convert float to uint (temp uint) 0:5 'inF1' (in float) -0:6 Function Call: CheckAccessFullyMapped(u1; (global bool) +0:6 Function Call: CheckAccessFullyMapped(u1; (temp bool) 0:6 Constant: 0:6 3 (const uint) -0:7 bitCount (global uint) +0:7 bitCount (temp uint) 0:7 Convert float to uint (temp uint) 0:7 'inF0' (in float) -0:8 cross-product (global 3-component vector of float) +0:8 cross-product (temp 3-component vector of float) 0:8 Construct vec3 (in 3-component vector of float) 0:8 'inF0' (in float) 0:8 Construct vec3 (in 3-component vector of float) 0:8 'inF1' (in float) -0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (global 4-component vector of int) +0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int) 0:9 Construct vec4 (in 4-component vector of float) 0:9 'inF0' (in float) 0:10 Constant: 0:10 0.000000 0:12 ERROR: Bad unary op - (global float) + (temp float) 0:12 Convert float to uint (temp uint) 0:12 'inF0' (in float) -0:13 findMSB (global uint) +0:13 findMSB (temp uint) 0:13 Convert float to uint (temp uint) 0:13 'inF0' (in float) -0:14 findLSB (global uint) +0:14 findLSB (temp uint) 0:14 Convert float to uint (temp uint) 0:14 'inF0' (in float) -0:23 length (global float) +0:23 length (temp float) 0:23 Construct vec2 (in 2-component vector of float) 0:23 'inF0' (in float) -0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint) +0:24 Function Call: msad4(u1;vu2;vu4; (temp 4-component vector of uint) 0:24 Convert float to uint (temp uint) 0:24 'inF0' (in float) 0:24 Constant: @@ -118,15 +118,15 @@ ERROR: node is still EOpNull! 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) -0:25 normalize (global 2-component vector of float) +0:25 normalize (temp 2-component vector of float) 0:25 Construct vec2 (in 2-component vector of float) 0:25 'inF0' (in float) -0:26 reflect (global 2-component vector of float) +0:26 reflect (temp 2-component vector of float) 0:26 Construct vec2 (in 2-component vector of float) 0:26 'inF0' (in float) 0:26 Construct vec2 (in 2-component vector of float) 0:26 'inF1' (in float) -0:27 refract (global 2-component vector of float) +0:27 refract (temp 2-component vector of float) 0:27 Construct vec2 (in 2-component vector of float) 0:27 'inF0' (in float) 0:27 Construct vec2 (in 2-component vector of float) @@ -134,7 +134,7 @@ ERROR: node is still EOpNull! 0:27 'inF2' (in float) 0:28 Constant: 0:28 0.000000 -0:29 bitFieldReverse (global uint) +0:29 bitFieldReverse (temp uint) 0:29 Convert float to uint (temp uint) 0:29 'inF0' (in float) 0:30 Constant: @@ -142,7 +142,7 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' (in 1-component vector of float) 0:36 'inF1' (in 1-component vector of float) @@ -154,7 +154,7 @@ ERROR: node is still EOpNull! 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 2-component vector of float) 0:45 'inF1' (in 2-component vector of float) @@ -162,14 +162,14 @@ ERROR: node is still EOpNull! 0:45 'inI0' (in 2-component vector of int) 0:? Sequence 0:46 ERROR: Bad aggregation op - (global 2-component vector of double) + (temp 2-component vector of double) 0:46 Convert float to uint (temp 2-component vector of uint) 0:46 'inF0' (in 2-component vector of float) 0:46 Convert float to uint (temp 2-component vector of uint) 0:46 'inF1' (in 2-component vector of float) 0:47 Constant: 0:47 0.000000 -0:48 bitCount (global 2-component vector of uint) +0:48 bitCount (temp 2-component vector of uint) 0:48 Convert float to uint (temp 2-component vector of uint) 0:48 'inF0' (in 2-component vector of float) 0:49 Constant: @@ -179,16 +179,16 @@ ERROR: node is still EOpNull! 0:51 Constant: 0:51 0.000000 0:52 ERROR: Bad unary op - (global 2-component vector of float) + (temp 2-component vector of float) 0:52 Convert float to uint (temp 2-component vector of uint) 0:52 'inF0' (in 2-component vector of float) -0:53 findMSB (global 2-component vector of uint) +0:53 findMSB (temp 2-component vector of uint) 0:53 Convert float to uint (temp 2-component vector of uint) 0:53 'inF0' (in 2-component vector of float) -0:54 findLSB (global 2-component vector of uint) +0:54 findLSB (temp 2-component vector of uint) 0:54 Convert float to uint (temp 2-component vector of uint) 0:54 'inF0' (in 2-component vector of float) -0:56 bitFieldReverse (global 2-component vector of uint) +0:56 bitFieldReverse (temp 2-component vector of uint) 0:56 Convert float to uint (temp 2-component vector of uint) 0:56 'inF0' (in 2-component vector of float) 0:57 Constant: @@ -197,7 +197,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:63 Function Parameters: 0:63 'inF0' (in 3-component vector of float) 0:63 'inF1' (in 3-component vector of float) @@ -206,7 +206,7 @@ ERROR: node is still EOpNull! 0:? Sequence 0:64 Constant: 0:64 0.000000 -0:65 bitCount (global 3-component vector of uint) +0:65 bitCount (temp 3-component vector of uint) 0:65 Convert float to uint (temp 3-component vector of uint) 0:65 'inF0' (in 3-component vector of float) 0:66 Constant: @@ -214,16 +214,16 @@ ERROR: node is still EOpNull! 0:67 Constant: 0:67 0.000000 0:68 ERROR: Bad unary op - (global 3-component vector of float) + (temp 3-component vector of float) 0:68 Convert float to uint (temp 3-component vector of uint) 0:68 'inF0' (in 3-component vector of float) -0:69 findMSB (global 3-component vector of uint) +0:69 findMSB (temp 3-component vector of uint) 0:69 Convert float to uint (temp 3-component vector of uint) 0:69 'inF0' (in 3-component vector of float) -0:70 findLSB (global 3-component vector of uint) +0:70 findLSB (temp 3-component vector of uint) 0:70 Convert float to uint (temp 3-component vector of uint) 0:70 'inF0' (in 3-component vector of float) -0:72 bitFieldReverse (global 3-component vector of uint) +0:72 bitFieldReverse (temp 3-component vector of uint) 0:72 Convert float to uint (temp 3-component vector of uint) 0:72 'inF0' (in 3-component vector of float) 0:73 Constant: @@ -233,7 +233,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' (layout(location=0 ) in 4-component vector of float) 0:80 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -242,10 +242,10 @@ ERROR: node is still EOpNull! 0:? Sequence 0:81 Constant: 0:81 0.000000 -0:82 bitCount (global 4-component vector of uint) +0:82 bitCount (temp 4-component vector of uint) 0:82 Convert float to uint (temp 4-component vector of uint) 0:82 'inF0' (layout(location=0 ) in 4-component vector of float) -0:83 cross-product (global 3-component vector of float) +0:83 cross-product (temp 3-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) 0:83 'inF0' (layout(location=0 ) in 4-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) @@ -253,16 +253,16 @@ ERROR: node is still EOpNull! 0:84 Constant: 0:84 0.000000 0:85 ERROR: Bad unary op - (global 4-component vector of float) + (temp 4-component vector of float) 0:85 Convert float to uint (temp 4-component vector of uint) 0:85 'inF0' (layout(location=0 ) in 4-component vector of float) -0:86 findMSB (global 4-component vector of uint) +0:86 findMSB (temp 4-component vector of uint) 0:86 Convert float to uint (temp 4-component vector of uint) 0:86 'inF0' (layout(location=0 ) in 4-component vector of float) -0:87 findLSB (global 4-component vector of uint) +0:87 findLSB (temp 4-component vector of uint) 0:87 Convert float to uint (temp 4-component vector of uint) 0:87 'inF0' (layout(location=0 ) in 4-component vector of float) -0:89 bitFieldReverse (global 4-component vector of uint) +0:89 bitFieldReverse (temp 4-component vector of uint) 0:89 Convert float to uint (temp 4-component vector of uint) 0:89 'inF0' (layout(location=0 ) in 4-component vector of float) 0:90 Constant: @@ -276,7 +276,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 4.000000 0:92 Branch: Return -0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) 0:115 'inF1' (in 2X2 matrix of float) @@ -314,7 +314,7 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:123 Function Parameters: 0:123 'inF0' (in 3X3 matrix of float) 0:123 'inF1' (in 3X3 matrix of float) @@ -357,7 +357,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:131 Function Parameters: 0:131 'inF0' (in 4X4 matrix of float) 0:131 'inF1' (in 4X4 matrix of float) @@ -421,7 +421,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left ERROR: node is still EOpNull! -0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (global float) +0:2 Function Definition: PixelShaderFunctionS(f1;f1;f1;i1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -434,36 +434,36 @@ ERROR: node is still EOpNull! 0:5 'inF0' (in float) 0:5 Convert float to uint (temp uint) 0:5 'inF1' (in float) -0:6 Function Call: CheckAccessFullyMapped(u1; (global bool) +0:6 Function Call: CheckAccessFullyMapped(u1; (temp bool) 0:6 Constant: 0:6 3 (const uint) -0:7 bitCount (global uint) +0:7 bitCount (temp uint) 0:7 Convert float to uint (temp uint) 0:7 'inF0' (in float) -0:8 cross-product (global 3-component vector of float) +0:8 cross-product (temp 3-component vector of float) 0:8 Construct vec3 (in 3-component vector of float) 0:8 'inF0' (in float) 0:8 Construct vec3 (in 3-component vector of float) 0:8 'inF1' (in float) -0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (global 4-component vector of int) +0:9 Function Call: D3DCOLORtoUBYTE4(vf4; (temp 4-component vector of int) 0:9 Construct vec4 (in 4-component vector of float) 0:9 'inF0' (in float) 0:10 Constant: 0:10 0.000000 0:12 ERROR: Bad unary op - (global float) + (temp float) 0:12 Convert float to uint (temp uint) 0:12 'inF0' (in float) -0:13 findMSB (global uint) +0:13 findMSB (temp uint) 0:13 Convert float to uint (temp uint) 0:13 'inF0' (in float) -0:14 findLSB (global uint) +0:14 findLSB (temp uint) 0:14 Convert float to uint (temp uint) 0:14 'inF0' (in float) -0:23 length (global float) +0:23 length (temp float) 0:23 Construct vec2 (in 2-component vector of float) 0:23 'inF0' (in float) -0:24 Function Call: msad4(u1;vu2;vu4; (global 4-component vector of uint) +0:24 Function Call: msad4(u1;vu2;vu4; (temp 4-component vector of uint) 0:24 Convert float to uint (temp uint) 0:24 'inF0' (in float) 0:24 Constant: @@ -474,15 +474,15 @@ ERROR: node is still EOpNull! 0:24 0 (const uint) 0:24 0 (const uint) 0:24 0 (const uint) -0:25 normalize (global 2-component vector of float) +0:25 normalize (temp 2-component vector of float) 0:25 Construct vec2 (in 2-component vector of float) 0:25 'inF0' (in float) -0:26 reflect (global 2-component vector of float) +0:26 reflect (temp 2-component vector of float) 0:26 Construct vec2 (in 2-component vector of float) 0:26 'inF0' (in float) 0:26 Construct vec2 (in 2-component vector of float) 0:26 'inF1' (in float) -0:27 refract (global 2-component vector of float) +0:27 refract (temp 2-component vector of float) 0:27 Construct vec2 (in 2-component vector of float) 0:27 'inF0' (in float) 0:27 Construct vec2 (in 2-component vector of float) @@ -490,7 +490,7 @@ ERROR: node is still EOpNull! 0:27 'inF2' (in float) 0:28 Constant: 0:28 0.000000 -0:29 bitFieldReverse (global uint) +0:29 bitFieldReverse (temp uint) 0:29 Convert float to uint (temp uint) 0:29 'inF0' (in float) 0:30 Constant: @@ -498,7 +498,7 @@ ERROR: node is still EOpNull! 0:32 Branch: Return with expression 0:32 Constant: 0:32 0.000000 -0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:36 Function Definition: PixelShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:36 Function Parameters: 0:36 'inF0' (in 1-component vector of float) 0:36 'inF1' (in 1-component vector of float) @@ -510,7 +510,7 @@ ERROR: node is still EOpNull! 0:41 Branch: Return with expression 0:41 Constant: 0:41 0.000000 -0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:45 Function Definition: PixelShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:45 Function Parameters: 0:45 'inF0' (in 2-component vector of float) 0:45 'inF1' (in 2-component vector of float) @@ -518,14 +518,14 @@ ERROR: node is still EOpNull! 0:45 'inI0' (in 2-component vector of int) 0:? Sequence 0:46 ERROR: Bad aggregation op - (global 2-component vector of double) + (temp 2-component vector of double) 0:46 Convert float to uint (temp 2-component vector of uint) 0:46 'inF0' (in 2-component vector of float) 0:46 Convert float to uint (temp 2-component vector of uint) 0:46 'inF1' (in 2-component vector of float) 0:47 Constant: 0:47 0.000000 -0:48 bitCount (global 2-component vector of uint) +0:48 bitCount (temp 2-component vector of uint) 0:48 Convert float to uint (temp 2-component vector of uint) 0:48 'inF0' (in 2-component vector of float) 0:49 Constant: @@ -535,16 +535,16 @@ ERROR: node is still EOpNull! 0:51 Constant: 0:51 0.000000 0:52 ERROR: Bad unary op - (global 2-component vector of float) + (temp 2-component vector of float) 0:52 Convert float to uint (temp 2-component vector of uint) 0:52 'inF0' (in 2-component vector of float) -0:53 findMSB (global 2-component vector of uint) +0:53 findMSB (temp 2-component vector of uint) 0:53 Convert float to uint (temp 2-component vector of uint) 0:53 'inF0' (in 2-component vector of float) -0:54 findLSB (global 2-component vector of uint) +0:54 findLSB (temp 2-component vector of uint) 0:54 Convert float to uint (temp 2-component vector of uint) 0:54 'inF0' (in 2-component vector of float) -0:56 bitFieldReverse (global 2-component vector of uint) +0:56 bitFieldReverse (temp 2-component vector of uint) 0:56 Convert float to uint (temp 2-component vector of uint) 0:56 'inF0' (in 2-component vector of float) 0:57 Constant: @@ -553,7 +553,7 @@ ERROR: node is still EOpNull! 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:63 Function Definition: PixelShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:63 Function Parameters: 0:63 'inF0' (in 3-component vector of float) 0:63 'inF1' (in 3-component vector of float) @@ -562,7 +562,7 @@ ERROR: node is still EOpNull! 0:? Sequence 0:64 Constant: 0:64 0.000000 -0:65 bitCount (global 3-component vector of uint) +0:65 bitCount (temp 3-component vector of uint) 0:65 Convert float to uint (temp 3-component vector of uint) 0:65 'inF0' (in 3-component vector of float) 0:66 Constant: @@ -570,16 +570,16 @@ ERROR: node is still EOpNull! 0:67 Constant: 0:67 0.000000 0:68 ERROR: Bad unary op - (global 3-component vector of float) + (temp 3-component vector of float) 0:68 Convert float to uint (temp 3-component vector of uint) 0:68 'inF0' (in 3-component vector of float) -0:69 findMSB (global 3-component vector of uint) +0:69 findMSB (temp 3-component vector of uint) 0:69 Convert float to uint (temp 3-component vector of uint) 0:69 'inF0' (in 3-component vector of float) -0:70 findLSB (global 3-component vector of uint) +0:70 findLSB (temp 3-component vector of uint) 0:70 Convert float to uint (temp 3-component vector of uint) 0:70 'inF0' (in 3-component vector of float) -0:72 bitFieldReverse (global 3-component vector of uint) +0:72 bitFieldReverse (temp 3-component vector of uint) 0:72 Convert float to uint (temp 3-component vector of uint) 0:72 'inF0' (in 3-component vector of float) 0:73 Constant: @@ -589,7 +589,7 @@ ERROR: node is still EOpNull! 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:80 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:80 Function Parameters: 0:80 'inF0' (layout(location=0 ) in 4-component vector of float) 0:80 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -598,10 +598,10 @@ ERROR: node is still EOpNull! 0:? Sequence 0:81 Constant: 0:81 0.000000 -0:82 bitCount (global 4-component vector of uint) +0:82 bitCount (temp 4-component vector of uint) 0:82 Convert float to uint (temp 4-component vector of uint) 0:82 'inF0' (layout(location=0 ) in 4-component vector of float) -0:83 cross-product (global 3-component vector of float) +0:83 cross-product (temp 3-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) 0:83 'inF0' (layout(location=0 ) in 4-component vector of float) 0:83 Construct vec3 (in 3-component vector of float) @@ -609,16 +609,16 @@ ERROR: node is still EOpNull! 0:84 Constant: 0:84 0.000000 0:85 ERROR: Bad unary op - (global 4-component vector of float) + (temp 4-component vector of float) 0:85 Convert float to uint (temp 4-component vector of uint) 0:85 'inF0' (layout(location=0 ) in 4-component vector of float) -0:86 findMSB (global 4-component vector of uint) +0:86 findMSB (temp 4-component vector of uint) 0:86 Convert float to uint (temp 4-component vector of uint) 0:86 'inF0' (layout(location=0 ) in 4-component vector of float) -0:87 findLSB (global 4-component vector of uint) +0:87 findLSB (temp 4-component vector of uint) 0:87 Convert float to uint (temp 4-component vector of uint) 0:87 'inF0' (layout(location=0 ) in 4-component vector of float) -0:89 bitFieldReverse (global 4-component vector of uint) +0:89 bitFieldReverse (temp 4-component vector of uint) 0:89 Convert float to uint (temp 4-component vector of uint) 0:89 'inF0' (layout(location=0 ) in 4-component vector of float) 0:90 Constant: @@ -632,7 +632,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 4.000000 0:92 Branch: Return -0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:115 Function Definition: PixelShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:115 Function Parameters: 0:115 'inF0' (in 2X2 matrix of float) 0:115 'inF1' (in 2X2 matrix of float) @@ -670,7 +670,7 @@ ERROR: node is still EOpNull! 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:123 Function Definition: PixelShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:123 Function Parameters: 0:123 'inF0' (in 3X3 matrix of float) 0:123 'inF1' (in 3X3 matrix of float) @@ -713,7 +713,7 @@ ERROR: node is still EOpNull! 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:131 Function Definition: PixelShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:131 Function Parameters: 0:131 'inF0' (in 4X4 matrix of float) 0:131 'inF1' (in 4X4 matrix of float) diff --git a/Test/baseResults/hlsl.intrinsics.negative.vert.out b/Test/baseResults/hlsl.intrinsics.negative.vert.out index e702d332cc3a526c61bbb2b03501ba0c950428eb..b57a5a9a278d625b28f92866f9f9d3500e342846 100644 --- a/Test/baseResults/hlsl.intrinsics.negative.vert.out +++ b/Test/baseResults/hlsl.intrinsics.negative.vert.out @@ -1,7 +1,7 @@ hlsl.intrinsics.negative.vert Shader version: 450 0:? Sequence -0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (temp float) 0:15 Function Parameters: 0:15 'inF0' (in float) 0:15 'inF1' (in float) @@ -11,7 +11,7 @@ Shader version: 450 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 -0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:75 Function Parameters: 0:75 'inF0' (in 1-component vector of float) 0:75 'inF1' (in 1-component vector of float) @@ -21,7 +21,7 @@ Shader version: 450 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 -0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:84 Function Parameters: 0:84 'inF0' (in 2-component vector of float) 0:84 'inF1' (in 2-component vector of float) @@ -32,7 +32,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:131 Function Parameters: 0:131 'inF0' (in 3-component vector of float) 0:131 'inF1' (in 3-component vector of float) @@ -44,7 +44,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (layout(location=0 ) in 4-component vector of float) 0:176 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -60,7 +60,7 @@ Shader version: 450 0:? 3.000000 0:? 4.000000 0:217 Branch: Return -0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) 0:226 'inF1' (in 2X2 matrix of float) @@ -72,7 +72,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:234 Function Parameters: 0:234 'inF0' (in 3X3 matrix of float) 0:234 'inF1' (in 3X3 matrix of float) @@ -89,7 +89,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:242 Function Parameters: 0:242 'inF0' (in 4X4 matrix of float) 0:242 'inF1' (in 4X4 matrix of float) @@ -114,6 +114,11 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) 0:? 'gs_uc' (global uint) @@ -126,11 +131,6 @@ Shader version: 450 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inI0' (layout(location=3 ) in 4-component vector of int) Linked vertex stage: @@ -138,7 +138,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (global float) +0:15 Function Definition: VertexShaderFunctionS(f1;f1;f1;i1; (temp float) 0:15 Function Parameters: 0:15 'inF0' (in float) 0:15 'inF1' (in float) @@ -148,7 +148,7 @@ Shader version: 450 0:71 Branch: Return with expression 0:71 Constant: 0:71 0.000000 -0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (global 1-component vector of float) +0:75 Function Definition: VertexShaderFunction1(vf1;vf1;vf1;vi1; (temp 1-component vector of float) 0:75 Function Parameters: 0:75 'inF0' (in 1-component vector of float) 0:75 'inF1' (in 1-component vector of float) @@ -158,7 +158,7 @@ Shader version: 450 0:80 Branch: Return with expression 0:80 Constant: 0:80 0.000000 -0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (global 2-component vector of float) +0:84 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vi2; (temp 2-component vector of float) 0:84 Function Parameters: 0:84 'inF0' (in 2-component vector of float) 0:84 'inF1' (in 2-component vector of float) @@ -169,7 +169,7 @@ Shader version: 450 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (global 3-component vector of float) +0:131 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vi3; (temp 3-component vector of float) 0:131 Function Parameters: 0:131 'inF0' (in 3-component vector of float) 0:131 'inF1' (in 3-component vector of float) @@ -181,7 +181,7 @@ Shader version: 450 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (global 4-component vector of float) +0:176 Function Definition: VertexShaderFunction(vf4;vf4;vf4;vi4; (temp 4-component vector of float) 0:176 Function Parameters: 0:176 'inF0' (layout(location=0 ) in 4-component vector of float) 0:176 'inF1' (layout(location=1 ) in 4-component vector of float) @@ -197,7 +197,7 @@ Shader version: 450 0:? 3.000000 0:? 4.000000 0:217 Branch: Return -0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:226 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:226 Function Parameters: 0:226 'inF0' (in 2X2 matrix of float) 0:226 'inF1' (in 2X2 matrix of float) @@ -209,7 +209,7 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:234 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:234 Function Parameters: 0:234 'inF0' (in 3X3 matrix of float) 0:234 'inF1' (in 3X3 matrix of float) @@ -226,7 +226,7 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:242 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:242 Function Parameters: 0:242 'inF0' (in 4X4 matrix of float) 0:242 'inF1' (in 4X4 matrix of float) @@ -251,6 +251,11 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'inF0' (layout(location=0 ) in 4-component vector of float) +0:? 'inF1' (layout(location=1 ) in 4-component vector of float) +0:? 'inF2' (layout(location=2 ) in 4-component vector of float) +0:? 'inI0' (layout(location=3 ) in 4-component vector of int) 0:? 'gs_ua' (global uint) 0:? 'gs_ub' (global uint) 0:? 'gs_uc' (global uint) @@ -263,11 +268,6 @@ Shader version: 450 0:? 'gs_ua4' (global 4-component vector of uint) 0:? 'gs_ub4' (global 4-component vector of uint) 0:? 'gs_uc4' (global 4-component vector of uint) -0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:? 'inF0' (layout(location=0 ) in 4-component vector of float) -0:? 'inF1' (layout(location=1 ) in 4-component vector of float) -0:? 'inF2' (layout(location=2 ) in 4-component vector of float) -0:? 'inI0' (layout(location=3 ) in 4-component vector of int) // Module Version 10000 // Generated by (magic number): 80001 @@ -276,7 +276,7 @@ Shader version: 450 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "VertexShaderFunction" 85 122 123 124 127 + EntryPoint Vertex 4 "VertexShaderFunction" 85 102 103 104 107 Name 4 "VertexShaderFunction" Name 15 "VertexShaderFunctionS(f1;f1;f1;i1;" Name 11 "inF0" @@ -311,27 +311,27 @@ Shader version: 450 Name 66 "inF1" Name 67 "inF2" Name 85 "@entryPointOutput" - Name 103 "gs_ua" - Name 104 "gs_ub" - Name 105 "gs_uc" - Name 108 "gs_ua2" - Name 109 "gs_ub2" - Name 110 "gs_uc2" - Name 113 "gs_ua3" - Name 114 "gs_ub3" - Name 115 "gs_uc3" - Name 118 "gs_ua4" - Name 119 "gs_ub4" - Name 120 "gs_uc4" - Name 122 "inF0" - Name 123 "inF1" - Name 124 "inF2" - Name 127 "inI0" + Name 102 "inF0" + Name 103 "inF1" + Name 104 "inF2" + Name 107 "inI0" + Name 110 "gs_ua" + Name 111 "gs_ub" + Name 112 "gs_uc" + Name 115 "gs_ua2" + Name 116 "gs_ub2" + Name 117 "gs_uc2" + Name 120 "gs_ua3" + Name 121 "gs_ub3" + Name 122 "gs_uc3" + Name 125 "gs_ua4" + Name 126 "gs_ub4" + Name 127 "gs_uc4" Decorate 85(@entryPointOutput) Location 0 - Decorate 122(inF0) Location 0 - Decorate 123(inF1) Location 1 - Decorate 124(inF2) Location 2 - Decorate 127(inI0) Location 3 + Decorate 102(inF0) Location 0 + Decorate 103(inF1) Location 1 + Decorate 104(inF2) Location 2 + Decorate 107(inI0) Location 3 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -375,33 +375,33 @@ Shader version: 450 94: 53 ConstantComposite 93 93 93 97: 61(fvec4) ConstantComposite 86 86 86 86 98: 62 ConstantComposite 97 97 97 97 - 101: TypeInt 32 0 - 102: TypePointer Private 101(int) - 103(gs_ua): 102(ptr) Variable Private - 104(gs_ub): 102(ptr) Variable Private - 105(gs_uc): 102(ptr) Variable Private - 106: TypeVector 101(int) 2 - 107: TypePointer Private 106(ivec2) - 108(gs_ua2): 107(ptr) Variable Private - 109(gs_ub2): 107(ptr) Variable Private - 110(gs_uc2): 107(ptr) Variable Private - 111: TypeVector 101(int) 3 - 112: TypePointer Private 111(ivec3) - 113(gs_ua3): 112(ptr) Variable Private - 114(gs_ub3): 112(ptr) Variable Private - 115(gs_uc3): 112(ptr) Variable Private - 116: TypeVector 101(int) 4 - 117: TypePointer Private 116(ivec4) - 118(gs_ua4): 117(ptr) Variable Private - 119(gs_ub4): 117(ptr) Variable Private - 120(gs_uc4): 117(ptr) Variable Private - 121: TypePointer Input 61(fvec4) - 122(inF0): 121(ptr) Variable Input - 123(inF1): 121(ptr) Variable Input - 124(inF2): 121(ptr) Variable Input - 125: TypeVector 8(int) 4 - 126: TypePointer Input 125(ivec4) - 127(inI0): 126(ptr) Variable Input + 101: TypePointer Input 61(fvec4) + 102(inF0): 101(ptr) Variable Input + 103(inF1): 101(ptr) Variable Input + 104(inF2): 101(ptr) Variable Input + 105: TypeVector 8(int) 4 + 106: TypePointer Input 105(ivec4) + 107(inI0): 106(ptr) Variable Input + 108: TypeInt 32 0 + 109: TypePointer Private 108(int) + 110(gs_ua): 109(ptr) Variable Private + 111(gs_ub): 109(ptr) Variable Private + 112(gs_uc): 109(ptr) Variable Private + 113: TypeVector 108(int) 2 + 114: TypePointer Private 113(ivec2) + 115(gs_ua2): 114(ptr) Variable Private + 116(gs_ub2): 114(ptr) Variable Private + 117(gs_uc2): 114(ptr) Variable Private + 118: TypeVector 108(int) 3 + 119: TypePointer Private 118(ivec3) + 120(gs_ua3): 119(ptr) Variable Private + 121(gs_ub3): 119(ptr) Variable Private + 122(gs_uc3): 119(ptr) Variable Private + 123: TypeVector 108(int) 4 + 124: TypePointer Private 123(ivec4) + 125(gs_ua4): 124(ptr) Variable Private + 126(gs_ub4): 124(ptr) Variable Private + 127(gs_uc4): 124(ptr) Variable Private 4(VertexShaderFunction): 2 Function None 3 5: Label Store 85(@entryPointOutput) 87 diff --git a/Test/baseResults/hlsl.intrinsics.promote.down.frag.out b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..f5ba86b023d17cca689255b3c93b536e144515db --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.promote.down.frag.out @@ -0,0 +1,184 @@ +hlsl.intrinsics.promote.down.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:15 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp uint) +0:16 'r00' (temp uint) +0:16 bitCount (temp uint) +0:16 Convert float to uint (temp uint) +0:16 f: direct index for structure (layout(offset=8 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:16 Constant: +0:16 2 (const uint) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of uint) +0:17 'r01' (temp 2-component vector of uint) +0:17 bitFieldReverse (temp 2-component vector of uint) +0:17 Convert float to uint (temp 2-component vector of uint) +0:17 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:17 Constant: +0:17 6 (const uint) +0:20 move second child to first child (temp 4-component vector of float) +0:20 color: direct index for structure (temp 4-component vector of float) +0:20 'ps_output' (temp structure{temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:21 Sequence +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:21 color: direct index for structure (temp 4-component vector of float) +0:21 'ps_output' (temp structure{temp 4-component vector of float color}) +0:21 Constant: +0:21 0 (const int) +0:21 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:15 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:15 Function Parameters: +0:? Sequence +0:16 Sequence +0:16 move second child to first child (temp uint) +0:16 'r00' (temp uint) +0:16 bitCount (temp uint) +0:16 Convert float to uint (temp uint) +0:16 f: direct index for structure (layout(offset=8 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:16 Constant: +0:16 2 (const uint) +0:17 Sequence +0:17 move second child to first child (temp 2-component vector of uint) +0:17 'r01' (temp 2-component vector of uint) +0:17 bitFieldReverse (temp 2-component vector of uint) +0:17 Convert float to uint (temp 2-component vector of uint) +0:17 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) +0:17 Constant: +0:17 6 (const uint) +0:20 move second child to first child (temp 4-component vector of float) +0:20 color: direct index for structure (temp 4-component vector of float) +0:20 'ps_output' (temp structure{temp 4-component vector of float color}) +0:20 Constant: +0:20 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:21 Sequence +0:21 Sequence +0:21 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:21 color: direct index for structure (temp 4-component vector of float) +0:21 'ps_output' (temp structure{temp 4-component vector of float color}) +0:21 Constant: +0:21 0 (const int) +0:21 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 14 "$Global" + MemberName 14($Global) 0 "i" + MemberName 14($Global) 1 "u" + MemberName 14($Global) 2 "f" + MemberName 14($Global) 3 "b" + MemberName 14($Global) 4 "i2" + MemberName 14($Global) 5 "u2" + MemberName 14($Global) 6 "f2" + MemberName 14($Global) 7 "b2" + Name 16 "" + Name 24 "r01" + Name 32 "PS_OUTPUT" + MemberName 32(PS_OUTPUT) 0 "color" + Name 34 "ps_output" + Name 41 "color" + MemberDecorate 14($Global) 0 Offset 0 + MemberDecorate 14($Global) 1 Offset 4 + MemberDecorate 14($Global) 2 Offset 8 + MemberDecorate 14($Global) 3 Offset 12 + MemberDecorate 14($Global) 4 Offset 16 + MemberDecorate 14($Global) 5 Offset 24 + MemberDecorate 14($Global) 6 Offset 32 + MemberDecorate 14($Global) 7 Offset 40 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 41(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypePointer Function 6(int) + 9: TypeInt 32 1 + 10: TypeFloat 32 + 11: TypeVector 9(int) 2 + 12: TypeVector 6(int) 2 + 13: TypeVector 10(float) 2 + 14($Global): TypeStruct 9(int) 6(int) 10(float) 6(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 9(int) Constant 2 + 18: TypePointer Uniform 10(float) + 23: TypePointer Function 12(ivec2) + 25: 9(int) Constant 6 + 26: TypePointer Uniform 13(fvec2) + 31: TypeVector 10(float) 4 + 32(PS_OUTPUT): TypeStruct 31(fvec4) + 33: TypePointer Function 32(PS_OUTPUT) + 35: 9(int) Constant 0 + 36: 10(float) Constant 0 + 37: 31(fvec4) ConstantComposite 36 36 36 36 + 38: TypePointer Function 31(fvec4) + 40: TypePointer Output 31(fvec4) + 41(color): 40(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 24(r01): 23(ptr) Variable Function + 34(ps_output): 33(ptr) Variable Function + 19: 18(ptr) AccessChain 16 17 + 20: 10(float) Load 19 + 21: 6(int) ConvertFToU 20 + 22: 6(int) BitCount 21 + Store 8(r00) 22 + 27: 26(ptr) AccessChain 16 25 + 28: 13(fvec2) Load 27 + 29: 12(ivec2) ConvertFToU 28 + 30: 12(ivec2) BitReverse 29 + Store 24(r01) 30 + 39: 38(ptr) AccessChain 34(ps_output) 35 + Store 39 37 + 42: 38(ptr) AccessChain 34(ps_output) 35 + 43: 31(fvec4) Load 42 + Store 41(color) 43 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.promote.frag.out b/Test/baseResults/hlsl.intrinsics.promote.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..82b9e6861bfacf5eef5c8cfc7ac59948c7167fb0 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.promote.frag.out @@ -0,0 +1,1313 @@ +hlsl.intrinsics.promote.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp float) +0:23 'r00' (temp float) +0:23 max (temp float) +0:23 Convert bool to float (temp float) +0:23 b: direct index for structure (layout(offset=12 ) uniform bool) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 3 (const uint) +0:23 f: direct index for structure (layout(offset=8 ) uniform float) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 2 (const uint) +0:24 Sequence +0:24 move second child to first child (temp uint) +0:24 'r01' (temp uint) +0:24 max (temp uint) +0:24 Convert bool to uint (temp uint) +0:24 b: direct index for structure (layout(offset=12 ) uniform bool) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 3 (const uint) +0:24 u: direct index for structure (layout(offset=4 ) uniform uint) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 1 (const uint) +0:25 Sequence +0:25 move second child to first child (temp int) +0:25 'r02' (temp int) +0:25 max (temp int) +0:25 Convert bool to int (temp int) +0:25 b: direct index for structure (layout(offset=12 ) uniform bool) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 3 (const uint) +0:25 i: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 0 (const uint) +0:26 Sequence +0:26 move second child to first child (temp float) +0:26 'r03' (temp float) +0:26 max (temp float) +0:26 Convert int to float (temp float) +0:26 i: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 0 (const uint) +0:26 f: direct index for structure (layout(offset=8 ) uniform float) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 2 (const uint) +0:27 Sequence +0:27 move second child to first child (temp float) +0:27 'r04' (temp float) +0:27 max (temp float) +0:27 Convert uint to float (temp float) +0:27 u: direct index for structure (layout(offset=4 ) uniform uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 1 (const uint) +0:27 f: direct index for structure (layout(offset=8 ) uniform float) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 2 (const uint) +0:29 Sequence +0:29 move second child to first child (temp 2-component vector of float) +0:29 'r10' (temp 2-component vector of float) +0:29 max (temp 2-component vector of float) +0:29 Convert bool to float (temp 2-component vector of float) +0:29 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 7 (const uint) +0:29 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 6 (const uint) +0:30 Sequence +0:30 move second child to first child (temp 2-component vector of uint) +0:30 'r11' (temp 2-component vector of uint) +0:30 max (temp 2-component vector of uint) +0:30 Convert bool to uint (temp 2-component vector of uint) +0:30 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 7 (const uint) +0:30 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 5 (const uint) +0:31 Sequence +0:31 move second child to first child (temp 2-component vector of int) +0:31 'r12' (temp 2-component vector of int) +0:31 max (temp 2-component vector of int) +0:31 Convert bool to int (temp 2-component vector of int) +0:31 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 7 (const uint) +0:31 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 4 (const uint) +0:32 Sequence +0:32 move second child to first child (temp 2-component vector of float) +0:32 'r13' (temp 2-component vector of float) +0:32 max (temp 2-component vector of float) +0:32 Convert int to float (temp 2-component vector of float) +0:32 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 4 (const uint) +0:32 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child (temp 2-component vector of float) +0:33 'r14' (temp 2-component vector of float) +0:33 max (temp 2-component vector of float) +0:33 Convert uint to float (temp 2-component vector of float) +0:33 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 5 (const uint) +0:33 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 6 (const uint) +0:35 Sequence +0:35 move second child to first child (temp 2-component vector of float) +0:35 'r20' (temp 2-component vector of float) +0:35 clamp (temp 2-component vector of float) +0:35 Convert int to float (temp 2-component vector of float) +0:35 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 4 (const uint) +0:35 Convert uint to float (temp 2-component vector of float) +0:35 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 5 (const uint) +0:35 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 6 (const uint) +0:36 Sequence +0:36 move second child to first child (temp 2-component vector of uint) +0:36 'r21' (temp 2-component vector of uint) +0:36 clamp (temp 2-component vector of uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:36 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 5 (const uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:37 Sequence +0:37 move second child to first child (temp 2-component vector of float) +0:37 'r22' (temp 2-component vector of float) +0:37 clamp (temp 2-component vector of float) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:37 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 6 (const uint) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:40 Sequence +0:40 move second child to first child (temp 2-component vector of float) +0:40 'r30' (temp 2-component vector of float) +0:40 max (temp 2-component vector of float) +0:40 Construct vec2 (in 2-component vector of float) +0:40 Convert bool to float (temp float) +0:40 b: direct index for structure (layout(offset=12 ) uniform bool) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 3 (const uint) +0:40 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 6 (const uint) +0:41 Sequence +0:41 move second child to first child (temp 2-component vector of uint) +0:41 'r31' (temp 2-component vector of uint) +0:41 max (temp 2-component vector of uint) +0:41 Construct uvec2 (in 2-component vector of uint) +0:41 Convert bool to uint (temp uint) +0:41 b: direct index for structure (layout(offset=12 ) uniform bool) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 3 (const uint) +0:41 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 5 (const uint) +0:42 Sequence +0:42 move second child to first child (temp 2-component vector of int) +0:42 'r32' (temp 2-component vector of int) +0:42 max (temp 2-component vector of int) +0:42 Construct ivec2 (in 2-component vector of int) +0:42 Convert bool to int (temp int) +0:42 b: direct index for structure (layout(offset=12 ) uniform bool) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 3 (const uint) +0:42 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 4 (const uint) +0:43 Sequence +0:43 move second child to first child (temp 2-component vector of float) +0:43 'r33' (temp 2-component vector of float) +0:43 max (temp 2-component vector of float) +0:43 Construct vec2 (in 2-component vector of float) +0:43 Convert int to float (temp float) +0:43 i: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 0 (const uint) +0:43 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 6 (const uint) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r34' (temp 2-component vector of float) +0:44 max (temp 2-component vector of float) +0:44 Construct vec2 (in 2-component vector of float) +0:44 Convert uint to float (temp float) +0:44 u: direct index for structure (layout(offset=4 ) uniform uint) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 1 (const uint) +0:44 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 6 (const uint) +0:46 Sequence +0:46 move second child to first child (temp 2-component vector of float) +0:46 'r40' (temp 2-component vector of float) +0:46 clamp (temp 2-component vector of float) +0:46 Construct vec2 (in 2-component vector of float) +0:46 Convert int to float (temp float) +0:46 i: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 0 (const uint) +0:46 Convert uint to float (temp 2-component vector of float) +0:46 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 5 (const uint) +0:46 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 6 (const uint) +0:47 Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'r41' (temp 2-component vector of uint) +0:47 clamp (temp 2-component vector of uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:47 Construct uvec2 (in 2-component vector of uint) +0:47 u: direct index for structure (layout(offset=4 ) uniform uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 1 (const uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:48 Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'r42' (temp 2-component vector of float) +0:48 clamp (temp 2-component vector of float) +0:48 Convert bool to float (temp 2-component vector of float) +0:48 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 7 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 f: direct index for structure (layout(offset=8 ) uniform float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 2 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 Convert bool to float (temp float) +0:48 b: direct index for structure (layout(offset=12 ) uniform bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 3 (const uint) +0:49 Sequence +0:49 move second child to first child (temp 2-component vector of int) +0:49 'r43' (temp 2-component vector of int) +0:49 Convert uint to int (temp 2-component vector of int) +0:49 clamp (temp 2-component vector of uint) +0:49 Construct uvec2 (in 2-component vector of uint) +0:49 Convert int to uint (temp uint) +0:49 i: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 0 (const uint) +0:49 Convert int to uint (temp 2-component vector of uint) +0:49 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 4 (const uint) +0:49 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 5 (const uint) +0:51 Sequence +0:51 move second child to first child (temp float) +0:51 'r50' (temp float) +0:51 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:51 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:51 Convert uint to int (temp int) +0:51 upos: direct index for structure (layout(offset=48 ) uniform uint) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:51 Constant: +0:51 8 (const uint) +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r51' (temp float) +0:52 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:52 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:52 Convert float to int (temp int) +0:52 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:52 Constant: +0:52 9 (const uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 textureSize (temp uint) +0:70 'g_tTex1df4' (uniform texture1D) +0:70 move second child to first child (temp int) +0:70 'WidthI' (temp int) +0:70 Convert uint to int (temp int) +0:70 'sizeQueryTemp' (temp uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'sizeQueryTemp' (temp uint) +0:71 textureSize (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:71 Constant: +0:71 6 (const uint) +0:71 move second child to first child (temp int) +0:71 'WidthI' (temp int) +0:71 Convert uint to int (temp int) +0:71 'sizeQueryTemp' (temp uint) +0:71 move second child to first child (temp uint) +0:71 'NumberOfLevelsU' (temp uint) +0:71 textureQueryLevels (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:72 Sequence +0:72 move second child to first child (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 textureSize (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:72 Constant: +0:72 6 (const uint) +0:72 move second child to first child (temp uint) +0:72 'WidthU' (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 move second child to first child (temp int) +0:72 'NumberOfLevelsI' (temp int) +0:72 Convert uint to int (temp int) +0:72 textureQueryLevels (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:73 Sequence +0:73 move second child to first child (temp uint) +0:73 'sizeQueryTemp' (temp uint) +0:73 textureSize (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:73 Constant: +0:73 6 (const uint) +0:73 move second child to first child (temp int) +0:73 'WidthI' (temp int) +0:73 Convert uint to int (temp int) +0:73 'sizeQueryTemp' (temp uint) +0:73 move second child to first child (temp int) +0:73 'NumberOfLevelsI' (temp int) +0:73 Convert uint to int (temp int) +0:73 textureQueryLevels (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:77 move second child to first child (temp 4-component vector of float) +0:77 color: direct index for structure (temp 4-component vector of float) +0:77 'ps_output' (temp structure{temp 4-component vector of float color}) +0:77 Constant: +0:77 0 (const int) +0:77 Construct vec4 (temp 4-component vector of float) +0:77 'r00' (temp float) +0:78 Sequence +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:78 color: direct index for structure (temp 4-component vector of float) +0:78 'ps_output' (temp structure{temp 4-component vector of float color}) +0:78 Constant: +0:78 0 (const int) +0:78 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:23 Sequence +0:23 move second child to first child (temp float) +0:23 'r00' (temp float) +0:23 max (temp float) +0:23 Convert bool to float (temp float) +0:23 b: direct index for structure (layout(offset=12 ) uniform bool) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 3 (const uint) +0:23 f: direct index for structure (layout(offset=8 ) uniform float) +0:23 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:23 Constant: +0:23 2 (const uint) +0:24 Sequence +0:24 move second child to first child (temp uint) +0:24 'r01' (temp uint) +0:24 max (temp uint) +0:24 Convert bool to uint (temp uint) +0:24 b: direct index for structure (layout(offset=12 ) uniform bool) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 3 (const uint) +0:24 u: direct index for structure (layout(offset=4 ) uniform uint) +0:24 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:24 Constant: +0:24 1 (const uint) +0:25 Sequence +0:25 move second child to first child (temp int) +0:25 'r02' (temp int) +0:25 max (temp int) +0:25 Convert bool to int (temp int) +0:25 b: direct index for structure (layout(offset=12 ) uniform bool) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 3 (const uint) +0:25 i: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:25 Constant: +0:25 0 (const uint) +0:26 Sequence +0:26 move second child to first child (temp float) +0:26 'r03' (temp float) +0:26 max (temp float) +0:26 Convert int to float (temp float) +0:26 i: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 0 (const uint) +0:26 f: direct index for structure (layout(offset=8 ) uniform float) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:26 Constant: +0:26 2 (const uint) +0:27 Sequence +0:27 move second child to first child (temp float) +0:27 'r04' (temp float) +0:27 max (temp float) +0:27 Convert uint to float (temp float) +0:27 u: direct index for structure (layout(offset=4 ) uniform uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 1 (const uint) +0:27 f: direct index for structure (layout(offset=8 ) uniform float) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:27 Constant: +0:27 2 (const uint) +0:29 Sequence +0:29 move second child to first child (temp 2-component vector of float) +0:29 'r10' (temp 2-component vector of float) +0:29 max (temp 2-component vector of float) +0:29 Convert bool to float (temp 2-component vector of float) +0:29 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 7 (const uint) +0:29 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:29 Constant: +0:29 6 (const uint) +0:30 Sequence +0:30 move second child to first child (temp 2-component vector of uint) +0:30 'r11' (temp 2-component vector of uint) +0:30 max (temp 2-component vector of uint) +0:30 Convert bool to uint (temp 2-component vector of uint) +0:30 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 7 (const uint) +0:30 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:30 Constant: +0:30 5 (const uint) +0:31 Sequence +0:31 move second child to first child (temp 2-component vector of int) +0:31 'r12' (temp 2-component vector of int) +0:31 max (temp 2-component vector of int) +0:31 Convert bool to int (temp 2-component vector of int) +0:31 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 7 (const uint) +0:31 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:31 Constant: +0:31 4 (const uint) +0:32 Sequence +0:32 move second child to first child (temp 2-component vector of float) +0:32 'r13' (temp 2-component vector of float) +0:32 max (temp 2-component vector of float) +0:32 Convert int to float (temp 2-component vector of float) +0:32 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 4 (const uint) +0:32 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:32 Constant: +0:32 6 (const uint) +0:33 Sequence +0:33 move second child to first child (temp 2-component vector of float) +0:33 'r14' (temp 2-component vector of float) +0:33 max (temp 2-component vector of float) +0:33 Convert uint to float (temp 2-component vector of float) +0:33 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 5 (const uint) +0:33 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:33 Constant: +0:33 6 (const uint) +0:35 Sequence +0:35 move second child to first child (temp 2-component vector of float) +0:35 'r20' (temp 2-component vector of float) +0:35 clamp (temp 2-component vector of float) +0:35 Convert int to float (temp 2-component vector of float) +0:35 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 4 (const uint) +0:35 Convert uint to float (temp 2-component vector of float) +0:35 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 5 (const uint) +0:35 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:35 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:35 Constant: +0:35 6 (const uint) +0:36 Sequence +0:36 move second child to first child (temp 2-component vector of uint) +0:36 'r21' (temp 2-component vector of uint) +0:36 clamp (temp 2-component vector of uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:36 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 5 (const uint) +0:36 Convert bool to uint (temp 2-component vector of uint) +0:36 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:36 Constant: +0:36 7 (const uint) +0:37 Sequence +0:37 move second child to first child (temp 2-component vector of float) +0:37 'r22' (temp 2-component vector of float) +0:37 clamp (temp 2-component vector of float) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:37 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 6 (const uint) +0:37 Convert bool to float (temp 2-component vector of float) +0:37 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 7 (const uint) +0:40 Sequence +0:40 move second child to first child (temp 2-component vector of float) +0:40 'r30' (temp 2-component vector of float) +0:40 max (temp 2-component vector of float) +0:40 Construct vec2 (in 2-component vector of float) +0:40 Convert bool to float (temp float) +0:40 b: direct index for structure (layout(offset=12 ) uniform bool) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 3 (const uint) +0:40 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:40 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:40 Constant: +0:40 6 (const uint) +0:41 Sequence +0:41 move second child to first child (temp 2-component vector of uint) +0:41 'r31' (temp 2-component vector of uint) +0:41 max (temp 2-component vector of uint) +0:41 Construct uvec2 (in 2-component vector of uint) +0:41 Convert bool to uint (temp uint) +0:41 b: direct index for structure (layout(offset=12 ) uniform bool) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 3 (const uint) +0:41 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:41 Constant: +0:41 5 (const uint) +0:42 Sequence +0:42 move second child to first child (temp 2-component vector of int) +0:42 'r32' (temp 2-component vector of int) +0:42 max (temp 2-component vector of int) +0:42 Construct ivec2 (in 2-component vector of int) +0:42 Convert bool to int (temp int) +0:42 b: direct index for structure (layout(offset=12 ) uniform bool) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 3 (const uint) +0:42 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:42 Constant: +0:42 4 (const uint) +0:43 Sequence +0:43 move second child to first child (temp 2-component vector of float) +0:43 'r33' (temp 2-component vector of float) +0:43 max (temp 2-component vector of float) +0:43 Construct vec2 (in 2-component vector of float) +0:43 Convert int to float (temp float) +0:43 i: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 0 (const uint) +0:43 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:43 Constant: +0:43 6 (const uint) +0:44 Sequence +0:44 move second child to first child (temp 2-component vector of float) +0:44 'r34' (temp 2-component vector of float) +0:44 max (temp 2-component vector of float) +0:44 Construct vec2 (in 2-component vector of float) +0:44 Convert uint to float (temp float) +0:44 u: direct index for structure (layout(offset=4 ) uniform uint) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 1 (const uint) +0:44 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:44 Constant: +0:44 6 (const uint) +0:46 Sequence +0:46 move second child to first child (temp 2-component vector of float) +0:46 'r40' (temp 2-component vector of float) +0:46 clamp (temp 2-component vector of float) +0:46 Construct vec2 (in 2-component vector of float) +0:46 Convert int to float (temp float) +0:46 i: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 0 (const uint) +0:46 Convert uint to float (temp 2-component vector of float) +0:46 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 5 (const uint) +0:46 f2: direct index for structure (layout(offset=32 ) uniform 2-component vector of float) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:46 Constant: +0:46 6 (const uint) +0:47 Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'r41' (temp 2-component vector of uint) +0:47 clamp (temp 2-component vector of uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:47 Construct uvec2 (in 2-component vector of uint) +0:47 u: direct index for structure (layout(offset=4 ) uniform uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 1 (const uint) +0:47 Convert bool to uint (temp 2-component vector of uint) +0:47 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:47 Constant: +0:47 7 (const uint) +0:48 Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'r42' (temp 2-component vector of float) +0:48 clamp (temp 2-component vector of float) +0:48 Convert bool to float (temp 2-component vector of float) +0:48 b2: direct index for structure (layout(offset=40 ) uniform 2-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 7 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 f: direct index for structure (layout(offset=8 ) uniform float) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 2 (const uint) +0:48 Construct vec2 (in 2-component vector of float) +0:48 Convert bool to float (temp float) +0:48 b: direct index for structure (layout(offset=12 ) uniform bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:48 Constant: +0:48 3 (const uint) +0:49 Sequence +0:49 move second child to first child (temp 2-component vector of int) +0:49 'r43' (temp 2-component vector of int) +0:49 Convert uint to int (temp 2-component vector of int) +0:49 clamp (temp 2-component vector of uint) +0:49 Construct uvec2 (in 2-component vector of uint) +0:49 Convert int to uint (temp uint) +0:49 i: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 0 (const uint) +0:49 Convert int to uint (temp 2-component vector of uint) +0:49 i2: direct index for structure (layout(offset=16 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 4 (const uint) +0:49 u2: direct index for structure (layout(offset=24 ) uniform 2-component vector of uint) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:49 Constant: +0:49 5 (const uint) +0:51 Sequence +0:51 move second child to first child (temp float) +0:51 'r50' (temp float) +0:51 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:51 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:51 Convert uint to int (temp int) +0:51 upos: direct index for structure (layout(offset=48 ) uniform uint) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:51 Constant: +0:51 8 (const uint) +0:52 Sequence +0:52 move second child to first child (temp float) +0:52 'r51' (temp float) +0:52 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:52 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:52 Convert float to int (temp int) +0:52 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:52 Constant: +0:52 9 (const uint) +0:70 Sequence +0:70 move second child to first child (temp uint) +0:70 'sizeQueryTemp' (temp uint) +0:70 textureSize (temp uint) +0:70 'g_tTex1df4' (uniform texture1D) +0:70 move second child to first child (temp int) +0:70 'WidthI' (temp int) +0:70 Convert uint to int (temp int) +0:70 'sizeQueryTemp' (temp uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'sizeQueryTemp' (temp uint) +0:71 textureSize (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:71 Constant: +0:71 6 (const uint) +0:71 move second child to first child (temp int) +0:71 'WidthI' (temp int) +0:71 Convert uint to int (temp int) +0:71 'sizeQueryTemp' (temp uint) +0:71 move second child to first child (temp uint) +0:71 'NumberOfLevelsU' (temp uint) +0:71 textureQueryLevels (temp uint) +0:71 'g_tTex1df4' (uniform texture1D) +0:72 Sequence +0:72 move second child to first child (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 textureSize (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:72 Constant: +0:72 6 (const uint) +0:72 move second child to first child (temp uint) +0:72 'WidthU' (temp uint) +0:72 'sizeQueryTemp' (temp uint) +0:72 move second child to first child (temp int) +0:72 'NumberOfLevelsI' (temp int) +0:72 Convert uint to int (temp int) +0:72 textureQueryLevels (temp uint) +0:72 'g_tTex1df4' (uniform texture1D) +0:73 Sequence +0:73 move second child to first child (temp uint) +0:73 'sizeQueryTemp' (temp uint) +0:73 textureSize (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:73 Constant: +0:73 6 (const uint) +0:73 move second child to first child (temp int) +0:73 'WidthI' (temp int) +0:73 Convert uint to int (temp int) +0:73 'sizeQueryTemp' (temp uint) +0:73 move second child to first child (temp int) +0:73 'NumberOfLevelsI' (temp int) +0:73 Convert uint to int (temp int) +0:73 textureQueryLevels (temp uint) +0:73 'g_tTex1df4' (uniform texture1D) +0:77 move second child to first child (temp 4-component vector of float) +0:77 color: direct index for structure (temp 4-component vector of float) +0:77 'ps_output' (temp structure{temp 4-component vector of float color}) +0:77 Constant: +0:77 0 (const int) +0:77 Construct vec4 (temp 4-component vector of float) +0:77 'r00' (temp float) +0:78 Sequence +0:78 Sequence +0:78 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:78 color: direct index for structure (temp 4-component vector of float) +0:78 'ps_output' (temp structure{temp 4-component vector of float color}) +0:78 Constant: +0:78 0 (const int) +0:78 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 320 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 316 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 14 "$Global" + MemberName 14($Global) 0 "i" + MemberName 14($Global) 1 "u" + MemberName 14($Global) 2 "f" + MemberName 14($Global) 3 "b" + MemberName 14($Global) 4 "i2" + MemberName 14($Global) 5 "u2" + MemberName 14($Global) 6 "f2" + MemberName 14($Global) 7 "b2" + MemberName 14($Global) 8 "upos" + MemberName 14($Global) 9 "fpos" + Name 16 "" + Name 33 "r01" + Name 44 "r02" + Name 54 "r03" + Name 61 "r04" + Name 69 "r10" + Name 86 "r11" + Name 97 "r12" + Name 109 "r13" + Name 116 "r14" + Name 123 "r20" + Name 133 "r21" + Name 145 "r22" + Name 157 "r30" + Name 166 "r31" + Name 175 "r32" + Name 184 "r33" + Name 192 "r34" + Name 200 "r40" + Name 211 "r41" + Name 224 "r42" + Name 238 "r43" + Name 250 "r50" + Name 254 "g_tTexbfs" + Name 264 "r51" + Name 273 "sizeQueryTemp" + Name 276 "g_tTex1df4" + Name 279 "WidthI" + Name 282 "sizeQueryTemp" + Name 288 "NumberOfLevelsU" + Name 291 "sizeQueryTemp" + Name 294 "WidthU" + Name 296 "NumberOfLevelsI" + Name 300 "sizeQueryTemp" + Name 308 "PS_OUTPUT" + MemberName 308(PS_OUTPUT) 0 "color" + Name 310 "ps_output" + Name 316 "color" + MemberDecorate 14($Global) 0 Offset 0 + MemberDecorate 14($Global) 1 Offset 4 + MemberDecorate 14($Global) 2 Offset 8 + MemberDecorate 14($Global) 3 Offset 12 + MemberDecorate 14($Global) 4 Offset 16 + MemberDecorate 14($Global) 5 Offset 24 + MemberDecorate 14($Global) 6 Offset 32 + MemberDecorate 14($Global) 7 Offset 40 + MemberDecorate 14($Global) 8 Offset 48 + MemberDecorate 14($Global) 9 Offset 52 + Decorate 14($Global) Block + Decorate 16 DescriptorSet 0 + Decorate 254(g_tTexbfs) DescriptorSet 0 + Decorate 276(g_tTex1df4) DescriptorSet 0 + Decorate 316(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeInt 32 1 + 10: TypeInt 32 0 + 11: TypeVector 9(int) 2 + 12: TypeVector 10(int) 2 + 13: TypeVector 6(float) 2 + 14($Global): TypeStruct 9(int) 10(int) 6(float) 10(int) 11(ivec2) 12(ivec2) 13(fvec2) 12(ivec2) 10(int) 6(float) + 15: TypePointer Uniform 14($Global) + 16: 15(ptr) Variable Uniform + 17: 9(int) Constant 3 + 18: TypePointer Uniform 10(int) + 21: TypeBool + 22: 10(int) Constant 0 + 24: 6(float) Constant 0 + 25: 6(float) Constant 1065353216 + 27: 9(int) Constant 2 + 28: TypePointer Uniform 6(float) + 32: TypePointer Function 10(int) + 37: 10(int) Constant 1 + 39: 9(int) Constant 1 + 43: TypePointer Function 9(int) + 48: 9(int) Constant 0 + 50: TypePointer Uniform 9(int) + 68: TypePointer Function 13(fvec2) + 70: 9(int) Constant 7 + 71: TypePointer Uniform 12(ivec2) + 74: TypeVector 21(bool) 2 + 75: 12(ivec2) ConstantComposite 22 22 + 77: 13(fvec2) ConstantComposite 24 24 + 78: 13(fvec2) ConstantComposite 25 25 + 80: 9(int) Constant 6 + 81: TypePointer Uniform 13(fvec2) + 85: TypePointer Function 12(ivec2) + 90: 12(ivec2) ConstantComposite 37 37 + 92: 9(int) Constant 5 + 96: TypePointer Function 11(ivec2) + 101: 11(ivec2) ConstantComposite 48 48 + 102: 11(ivec2) ConstantComposite 39 39 + 104: 9(int) Constant 4 + 105: TypePointer Uniform 11(ivec2) + 251: TypeImage 6(float) Buffer sampled format:R32f + 252: TypeSampledImage 251 + 253: TypePointer UniformConstant 252 + 254(g_tTexbfs): 253(ptr) Variable UniformConstant + 256: 9(int) Constant 8 + 261: TypeVector 6(float) 4 + 266: 9(int) Constant 9 + 274: TypeImage 6(float) 1D sampled format:Unknown + 275: TypePointer UniformConstant 274 + 276(g_tTex1df4): 275(ptr) Variable UniformConstant + 284: 10(int) Constant 6 + 308(PS_OUTPUT): TypeStruct 261(fvec4) + 309: TypePointer Function 308(PS_OUTPUT) + 313: TypePointer Function 261(fvec4) + 315: TypePointer Output 261(fvec4) + 316(color): 315(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 33(r01): 32(ptr) Variable Function + 44(r02): 43(ptr) Variable Function + 54(r03): 7(ptr) Variable Function + 61(r04): 7(ptr) Variable Function + 69(r10): 68(ptr) Variable Function + 86(r11): 85(ptr) Variable Function + 97(r12): 96(ptr) Variable Function + 109(r13): 68(ptr) Variable Function + 116(r14): 68(ptr) Variable Function + 123(r20): 68(ptr) Variable Function + 133(r21): 85(ptr) Variable Function + 145(r22): 68(ptr) Variable Function + 157(r30): 68(ptr) Variable Function + 166(r31): 85(ptr) Variable Function + 175(r32): 96(ptr) Variable Function + 184(r33): 68(ptr) Variable Function + 192(r34): 68(ptr) Variable Function + 200(r40): 68(ptr) Variable Function + 211(r41): 85(ptr) Variable Function + 224(r42): 68(ptr) Variable Function + 238(r43): 96(ptr) Variable Function + 250(r50): 7(ptr) Variable Function + 264(r51): 7(ptr) Variable Function +273(sizeQueryTemp): 32(ptr) Variable Function + 279(WidthI): 43(ptr) Variable Function +282(sizeQueryTemp): 32(ptr) Variable Function +288(NumberOfLevelsU): 32(ptr) Variable Function +291(sizeQueryTemp): 32(ptr) Variable Function + 294(WidthU): 32(ptr) Variable Function +296(NumberOfLevelsI): 43(ptr) Variable Function +300(sizeQueryTemp): 32(ptr) Variable Function + 310(ps_output): 309(ptr) Variable Function + 19: 18(ptr) AccessChain 16 17 + 20: 10(int) Load 19 + 23: 21(bool) INotEqual 20 22 + 26: 6(float) Select 23 25 24 + 29: 28(ptr) AccessChain 16 27 + 30: 6(float) Load 29 + 31: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 26 30 + Store 8(r00) 31 + 34: 18(ptr) AccessChain 16 17 + 35: 10(int) Load 34 + 36: 21(bool) INotEqual 35 22 + 38: 10(int) Select 36 37 22 + 40: 18(ptr) AccessChain 16 39 + 41: 10(int) Load 40 + 42: 10(int) ExtInst 1(GLSL.std.450) 41(UMax) 38 41 + Store 33(r01) 42 + 45: 18(ptr) AccessChain 16 17 + 46: 10(int) Load 45 + 47: 21(bool) INotEqual 46 22 + 49: 9(int) Select 47 39 48 + 51: 50(ptr) AccessChain 16 48 + 52: 9(int) Load 51 + 53: 9(int) ExtInst 1(GLSL.std.450) 42(SMax) 49 52 + Store 44(r02) 53 + 55: 50(ptr) AccessChain 16 48 + 56: 9(int) Load 55 + 57: 6(float) ConvertSToF 56 + 58: 28(ptr) AccessChain 16 27 + 59: 6(float) Load 58 + 60: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 57 59 + Store 54(r03) 60 + 62: 18(ptr) AccessChain 16 39 + 63: 10(int) Load 62 + 64: 6(float) ConvertUToF 63 + 65: 28(ptr) AccessChain 16 27 + 66: 6(float) Load 65 + 67: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 64 66 + Store 61(r04) 67 + 72: 71(ptr) AccessChain 16 70 + 73: 12(ivec2) Load 72 + 76: 74(bvec2) INotEqual 73 75 + 79: 13(fvec2) Select 76 78 77 + 82: 81(ptr) AccessChain 16 80 + 83: 13(fvec2) Load 82 + 84: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 79 83 + Store 69(r10) 84 + 87: 71(ptr) AccessChain 16 70 + 88: 12(ivec2) Load 87 + 89: 74(bvec2) INotEqual 88 75 + 91: 12(ivec2) Select 89 90 75 + 93: 71(ptr) AccessChain 16 92 + 94: 12(ivec2) Load 93 + 95: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 91 94 + Store 86(r11) 95 + 98: 71(ptr) AccessChain 16 70 + 99: 12(ivec2) Load 98 + 100: 74(bvec2) INotEqual 99 75 + 103: 11(ivec2) Select 100 102 101 + 106: 105(ptr) AccessChain 16 104 + 107: 11(ivec2) Load 106 + 108: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 103 107 + Store 97(r12) 108 + 110: 105(ptr) AccessChain 16 104 + 111: 11(ivec2) Load 110 + 112: 13(fvec2) ConvertSToF 111 + 113: 81(ptr) AccessChain 16 80 + 114: 13(fvec2) Load 113 + 115: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 112 114 + Store 109(r13) 115 + 117: 71(ptr) AccessChain 16 92 + 118: 12(ivec2) Load 117 + 119: 13(fvec2) ConvertUToF 118 + 120: 81(ptr) AccessChain 16 80 + 121: 13(fvec2) Load 120 + 122: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 119 121 + Store 116(r14) 122 + 124: 105(ptr) AccessChain 16 104 + 125: 11(ivec2) Load 124 + 126: 13(fvec2) ConvertSToF 125 + 127: 71(ptr) AccessChain 16 92 + 128: 12(ivec2) Load 127 + 129: 13(fvec2) ConvertUToF 128 + 130: 81(ptr) AccessChain 16 80 + 131: 13(fvec2) Load 130 + 132: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 126 129 131 + Store 123(r20) 132 + 134: 71(ptr) AccessChain 16 70 + 135: 12(ivec2) Load 134 + 136: 74(bvec2) INotEqual 135 75 + 137: 12(ivec2) Select 136 90 75 + 138: 71(ptr) AccessChain 16 92 + 139: 12(ivec2) Load 138 + 140: 71(ptr) AccessChain 16 70 + 141: 12(ivec2) Load 140 + 142: 74(bvec2) INotEqual 141 75 + 143: 12(ivec2) Select 142 90 75 + 144: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 137 139 143 + Store 133(r21) 144 + 146: 71(ptr) AccessChain 16 70 + 147: 12(ivec2) Load 146 + 148: 74(bvec2) INotEqual 147 75 + 149: 13(fvec2) Select 148 78 77 + 150: 81(ptr) AccessChain 16 80 + 151: 13(fvec2) Load 150 + 152: 71(ptr) AccessChain 16 70 + 153: 12(ivec2) Load 152 + 154: 74(bvec2) INotEqual 153 75 + 155: 13(fvec2) Select 154 78 77 + 156: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 149 151 155 + Store 145(r22) 156 + 158: 18(ptr) AccessChain 16 17 + 159: 10(int) Load 158 + 160: 21(bool) INotEqual 159 22 + 161: 6(float) Select 160 25 24 + 162: 13(fvec2) CompositeConstruct 161 161 + 163: 81(ptr) AccessChain 16 80 + 164: 13(fvec2) Load 163 + 165: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 162 164 + Store 157(r30) 165 + 167: 18(ptr) AccessChain 16 17 + 168: 10(int) Load 167 + 169: 21(bool) INotEqual 168 22 + 170: 10(int) Select 169 37 22 + 171: 12(ivec2) CompositeConstruct 170 170 + 172: 71(ptr) AccessChain 16 92 + 173: 12(ivec2) Load 172 + 174: 12(ivec2) ExtInst 1(GLSL.std.450) 41(UMax) 171 173 + Store 166(r31) 174 + 176: 18(ptr) AccessChain 16 17 + 177: 10(int) Load 176 + 178: 21(bool) INotEqual 177 22 + 179: 9(int) Select 178 39 48 + 180: 11(ivec2) CompositeConstruct 179 179 + 181: 105(ptr) AccessChain 16 104 + 182: 11(ivec2) Load 181 + 183: 11(ivec2) ExtInst 1(GLSL.std.450) 42(SMax) 180 182 + Store 175(r32) 183 + 185: 50(ptr) AccessChain 16 48 + 186: 9(int) Load 185 + 187: 6(float) ConvertSToF 186 + 188: 13(fvec2) CompositeConstruct 187 187 + 189: 81(ptr) AccessChain 16 80 + 190: 13(fvec2) Load 189 + 191: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 188 190 + Store 184(r33) 191 + 193: 18(ptr) AccessChain 16 39 + 194: 10(int) Load 193 + 195: 6(float) ConvertUToF 194 + 196: 13(fvec2) CompositeConstruct 195 195 + 197: 81(ptr) AccessChain 16 80 + 198: 13(fvec2) Load 197 + 199: 13(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 196 198 + Store 192(r34) 199 + 201: 50(ptr) AccessChain 16 48 + 202: 9(int) Load 201 + 203: 6(float) ConvertSToF 202 + 204: 13(fvec2) CompositeConstruct 203 203 + 205: 71(ptr) AccessChain 16 92 + 206: 12(ivec2) Load 205 + 207: 13(fvec2) ConvertUToF 206 + 208: 81(ptr) AccessChain 16 80 + 209: 13(fvec2) Load 208 + 210: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 204 207 209 + Store 200(r40) 210 + 212: 71(ptr) AccessChain 16 70 + 213: 12(ivec2) Load 212 + 214: 74(bvec2) INotEqual 213 75 + 215: 12(ivec2) Select 214 90 75 + 216: 18(ptr) AccessChain 16 39 + 217: 10(int) Load 216 + 218: 12(ivec2) CompositeConstruct 217 217 + 219: 71(ptr) AccessChain 16 70 + 220: 12(ivec2) Load 219 + 221: 74(bvec2) INotEqual 220 75 + 222: 12(ivec2) Select 221 90 75 + 223: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 215 218 222 + Store 211(r41) 223 + 225: 71(ptr) AccessChain 16 70 + 226: 12(ivec2) Load 225 + 227: 74(bvec2) INotEqual 226 75 + 228: 13(fvec2) Select 227 78 77 + 229: 28(ptr) AccessChain 16 27 + 230: 6(float) Load 229 + 231: 13(fvec2) CompositeConstruct 230 230 + 232: 18(ptr) AccessChain 16 17 + 233: 10(int) Load 232 + 234: 21(bool) INotEqual 233 22 + 235: 6(float) Select 234 25 24 + 236: 13(fvec2) CompositeConstruct 235 235 + 237: 13(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 228 231 236 + Store 224(r42) 237 + 239: 50(ptr) AccessChain 16 48 + 240: 9(int) Load 239 + 241: 10(int) Bitcast 240 + 242: 12(ivec2) CompositeConstruct 241 241 + 243: 105(ptr) AccessChain 16 104 + 244: 11(ivec2) Load 243 + 245: 12(ivec2) Bitcast 244 + 246: 71(ptr) AccessChain 16 92 + 247: 12(ivec2) Load 246 + 248: 12(ivec2) ExtInst 1(GLSL.std.450) 44(UClamp) 242 245 247 + 249: 11(ivec2) Bitcast 248 + Store 238(r43) 249 + 255: 252 Load 254(g_tTexbfs) + 257: 18(ptr) AccessChain 16 256 + 258: 10(int) Load 257 + 259: 9(int) Bitcast 258 + 260: 251 Image 255 + 262: 261(fvec4) ImageFetch 260 259 + 263: 6(float) CompositeExtract 262 0 + Store 250(r50) 263 + 265: 252 Load 254(g_tTexbfs) + 267: 28(ptr) AccessChain 16 266 + 268: 6(float) Load 267 + 269: 9(int) ConvertFToS 268 + 270: 251 Image 265 + 271: 261(fvec4) ImageFetch 270 269 + 272: 6(float) CompositeExtract 271 0 + Store 264(r51) 272 + 277: 274 Load 276(g_tTex1df4) + 278: 9(int) ImageQuerySize 277 + Store 273(sizeQueryTemp) 278 + 280: 10(int) Load 273(sizeQueryTemp) + 281: 9(int) Bitcast 280 + Store 279(WidthI) 281 + 283: 274 Load 276(g_tTex1df4) + 285: 9(int) ImageQuerySizeLod 283 284 + Store 282(sizeQueryTemp) 285 + 286: 10(int) Load 282(sizeQueryTemp) + 287: 9(int) Bitcast 286 + Store 279(WidthI) 287 + 289: 274 Load 276(g_tTex1df4) + 290: 9(int) ImageQueryLevels 289 + Store 288(NumberOfLevelsU) 290 + 292: 274 Load 276(g_tTex1df4) + 293: 9(int) ImageQuerySizeLod 292 284 + Store 291(sizeQueryTemp) 293 + 295: 10(int) Load 291(sizeQueryTemp) + Store 294(WidthU) 295 + 297: 274 Load 276(g_tTex1df4) + 298: 9(int) ImageQueryLevels 297 + 299: 9(int) Bitcast 298 + Store 296(NumberOfLevelsI) 299 + 301: 274 Load 276(g_tTex1df4) + 302: 9(int) ImageQuerySizeLod 301 284 + Store 300(sizeQueryTemp) 302 + 303: 10(int) Load 300(sizeQueryTemp) + 304: 9(int) Bitcast 303 + Store 279(WidthI) 304 + 305: 274 Load 276(g_tTex1df4) + 306: 9(int) ImageQueryLevels 305 + 307: 9(int) Bitcast 306 + Store 296(NumberOfLevelsI) 307 + 311: 6(float) Load 8(r00) + 312: 261(fvec4) CompositeConstruct 311 311 311 311 + 314: 313(ptr) AccessChain 310(ps_output) 48 + Store 314 312 + 317: 313(ptr) AccessChain 310(ps_output) 48 + 318: 261(fvec4) Load 317 + Store 316(color) 318 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..ebe6a24c8399ad8f6184091137c472e82745f9a4 --- /dev/null +++ b/Test/baseResults/hlsl.intrinsics.promote.outputs.frag.out @@ -0,0 +1,337 @@ +hlsl.intrinsics.promote.outputs.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:37 clamp (temp float) +0:37 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 9 (const uint) +0:37 Constant: +0:37 0.000000 +0:37 Constant: +0:37 1.000000 +0:40 Sequence +0:40 move second child to first child (temp uint) +0:40 'sizeQueryTemp' (temp uint) +0:40 textureSize (temp uint) +0:40 'g_tTex1df4' (uniform texture1D) +0:40 move second child to first child (temp int) +0:40 'WidthI' (temp int) +0:40 Convert uint to int (temp int) +0:40 'sizeQueryTemp' (temp uint) +0:41 Sequence +0:41 move second child to first child (temp uint) +0:41 'sizeQueryTemp' (temp uint) +0:41 textureSize (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:41 Constant: +0:41 6 (const uint) +0:41 move second child to first child (temp int) +0:41 'WidthI' (temp int) +0:41 Convert uint to int (temp int) +0:41 'sizeQueryTemp' (temp uint) +0:41 move second child to first child (temp uint) +0:41 'NumberOfLevelsU' (temp uint) +0:41 textureQueryLevels (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:42 Sequence +0:42 move second child to first child (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 textureSize (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 Constant: +0:42 6 (const uint) +0:42 move second child to first child (temp uint) +0:42 'WidthU' (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 move second child to first child (temp int) +0:42 'NumberOfLevelsI' (temp int) +0:42 Convert uint to int (temp int) +0:42 textureQueryLevels (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:43 Sequence +0:43 move second child to first child (temp uint) +0:43 'sizeQueryTemp' (temp uint) +0:43 textureSize (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:43 Constant: +0:43 6 (const uint) +0:43 move second child to first child (temp int) +0:43 'WidthI' (temp int) +0:43 Convert uint to int (temp int) +0:43 'sizeQueryTemp' (temp uint) +0:43 move second child to first child (temp int) +0:43 'NumberOfLevelsI' (temp int) +0:43 Convert uint to int (temp int) +0:43 textureQueryLevels (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:47 move second child to first child (temp 4-component vector of float) +0:47 color: direct index for structure (temp 4-component vector of float) +0:47 'ps_output' (temp structure{temp 4-component vector of float color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:48 color: direct index for structure (temp 4-component vector of float) +0:48 'ps_output' (temp structure{temp 4-component vector of float color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:20 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:20 Function Parameters: +0:? Sequence +0:37 clamp (temp float) +0:37 fpos: direct index for structure (layout(offset=52 ) uniform float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) +0:37 Constant: +0:37 9 (const uint) +0:37 Constant: +0:37 0.000000 +0:37 Constant: +0:37 1.000000 +0:40 Sequence +0:40 move second child to first child (temp uint) +0:40 'sizeQueryTemp' (temp uint) +0:40 textureSize (temp uint) +0:40 'g_tTex1df4' (uniform texture1D) +0:40 move second child to first child (temp int) +0:40 'WidthI' (temp int) +0:40 Convert uint to int (temp int) +0:40 'sizeQueryTemp' (temp uint) +0:41 Sequence +0:41 move second child to first child (temp uint) +0:41 'sizeQueryTemp' (temp uint) +0:41 textureSize (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:41 Constant: +0:41 6 (const uint) +0:41 move second child to first child (temp int) +0:41 'WidthI' (temp int) +0:41 Convert uint to int (temp int) +0:41 'sizeQueryTemp' (temp uint) +0:41 move second child to first child (temp uint) +0:41 'NumberOfLevelsU' (temp uint) +0:41 textureQueryLevels (temp uint) +0:41 'g_tTex1df4' (uniform texture1D) +0:42 Sequence +0:42 move second child to first child (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 textureSize (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:42 Constant: +0:42 6 (const uint) +0:42 move second child to first child (temp uint) +0:42 'WidthU' (temp uint) +0:42 'sizeQueryTemp' (temp uint) +0:42 move second child to first child (temp int) +0:42 'NumberOfLevelsI' (temp int) +0:42 Convert uint to int (temp int) +0:42 textureQueryLevels (temp uint) +0:42 'g_tTex1df4' (uniform texture1D) +0:43 Sequence +0:43 move second child to first child (temp uint) +0:43 'sizeQueryTemp' (temp uint) +0:43 textureSize (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:43 Constant: +0:43 6 (const uint) +0:43 move second child to first child (temp int) +0:43 'WidthI' (temp int) +0:43 Convert uint to int (temp int) +0:43 'sizeQueryTemp' (temp uint) +0:43 move second child to first child (temp int) +0:43 'NumberOfLevelsI' (temp int) +0:43 Convert uint to int (temp int) +0:43 textureQueryLevels (temp uint) +0:43 'g_tTex1df4' (uniform texture1D) +0:47 move second child to first child (temp 4-component vector of float) +0:47 color: direct index for structure (temp 4-component vector of float) +0:47 'ps_output' (temp structure{temp 4-component vector of float color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:48 color: direct index for structure (temp 4-component vector of float) +0:48 'ps_output' (temp structure{temp 4-component vector of float color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTex1df4' (uniform texture1D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int i, layout(offset=4 ) uniform uint u, layout(offset=8 ) uniform float f, layout(offset=12 ) uniform bool b, layout(offset=16 ) uniform 2-component vector of int i2, layout(offset=24 ) uniform 2-component vector of uint u2, layout(offset=32 ) uniform 2-component vector of float f2, layout(offset=40 ) uniform 2-component vector of bool b2, layout(offset=48 ) uniform uint upos, layout(offset=52 ) uniform float fpos}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 76 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + Capability ImageQuery + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 68 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 12 "$Global" + MemberName 12($Global) 0 "i" + MemberName 12($Global) 1 "u" + MemberName 12($Global) 2 "f" + MemberName 12($Global) 3 "b" + MemberName 12($Global) 4 "i2" + MemberName 12($Global) 5 "u2" + MemberName 12($Global) 6 "f2" + MemberName 12($Global) 7 "b2" + MemberName 12($Global) 8 "upos" + MemberName 12($Global) 9 "fpos" + Name 14 "" + Name 23 "sizeQueryTemp" + Name 26 "g_tTex1df4" + Name 30 "WidthI" + Name 33 "sizeQueryTemp" + Name 39 "NumberOfLevelsU" + Name 42 "sizeQueryTemp" + Name 45 "WidthU" + Name 47 "NumberOfLevelsI" + Name 51 "sizeQueryTemp" + Name 60 "PS_OUTPUT" + MemberName 60(PS_OUTPUT) 0 "color" + Name 62 "ps_output" + Name 68 "color" + Name 75 "g_tTexbfs" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 4 + MemberDecorate 12($Global) 2 Offset 8 + MemberDecorate 12($Global) 3 Offset 12 + MemberDecorate 12($Global) 4 Offset 16 + MemberDecorate 12($Global) 5 Offset 24 + MemberDecorate 12($Global) 6 Offset 32 + MemberDecorate 12($Global) 7 Offset 40 + MemberDecorate 12($Global) 8 Offset 48 + MemberDecorate 12($Global) 9 Offset 52 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 26(g_tTex1df4) DescriptorSet 0 + Decorate 68(color) Location 0 + Decorate 75(g_tTexbfs) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeInt 32 0 + 8: TypeFloat 32 + 9: TypeVector 6(int) 2 + 10: TypeVector 7(int) 2 + 11: TypeVector 8(float) 2 + 12($Global): TypeStruct 6(int) 7(int) 8(float) 7(int) 9(ivec2) 10(ivec2) 11(fvec2) 10(ivec2) 7(int) 8(float) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: 6(int) Constant 9 + 16: TypePointer Uniform 8(float) + 19: 8(float) Constant 0 + 20: 8(float) Constant 1065353216 + 22: TypePointer Function 7(int) + 24: TypeImage 8(float) 1D sampled format:Unknown + 25: TypePointer UniformConstant 24 + 26(g_tTex1df4): 25(ptr) Variable UniformConstant + 29: TypePointer Function 6(int) + 35: 7(int) Constant 6 + 59: TypeVector 8(float) 4 + 60(PS_OUTPUT): TypeStruct 59(fvec4) + 61: TypePointer Function 60(PS_OUTPUT) + 63: 6(int) Constant 0 + 64: 59(fvec4) ConstantComposite 19 19 19 19 + 65: TypePointer Function 59(fvec4) + 67: TypePointer Output 59(fvec4) + 68(color): 67(ptr) Variable Output + 72: TypeImage 8(float) Buffer sampled format:R32f + 73: TypeSampledImage 72 + 74: TypePointer UniformConstant 73 + 75(g_tTexbfs): 74(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label +23(sizeQueryTemp): 22(ptr) Variable Function + 30(WidthI): 29(ptr) Variable Function +33(sizeQueryTemp): 22(ptr) Variable Function +39(NumberOfLevelsU): 22(ptr) Variable Function +42(sizeQueryTemp): 22(ptr) Variable Function + 45(WidthU): 22(ptr) Variable Function +47(NumberOfLevelsI): 29(ptr) Variable Function +51(sizeQueryTemp): 22(ptr) Variable Function + 62(ps_output): 61(ptr) Variable Function + 17: 16(ptr) AccessChain 14 15 + 18: 8(float) Load 17 + 21: 8(float) ExtInst 1(GLSL.std.450) 43(FClamp) 18 19 20 + 27: 24 Load 26(g_tTex1df4) + 28: 6(int) ImageQuerySize 27 + Store 23(sizeQueryTemp) 28 + 31: 7(int) Load 23(sizeQueryTemp) + 32: 6(int) Bitcast 31 + Store 30(WidthI) 32 + 34: 24 Load 26(g_tTex1df4) + 36: 6(int) ImageQuerySizeLod 34 35 + Store 33(sizeQueryTemp) 36 + 37: 7(int) Load 33(sizeQueryTemp) + 38: 6(int) Bitcast 37 + Store 30(WidthI) 38 + 40: 24 Load 26(g_tTex1df4) + 41: 6(int) ImageQueryLevels 40 + Store 39(NumberOfLevelsU) 41 + 43: 24 Load 26(g_tTex1df4) + 44: 6(int) ImageQuerySizeLod 43 35 + Store 42(sizeQueryTemp) 44 + 46: 7(int) Load 42(sizeQueryTemp) + Store 45(WidthU) 46 + 48: 24 Load 26(g_tTex1df4) + 49: 6(int) ImageQueryLevels 48 + 50: 6(int) Bitcast 49 + Store 47(NumberOfLevelsI) 50 + 52: 24 Load 26(g_tTex1df4) + 53: 6(int) ImageQuerySizeLod 52 35 + Store 51(sizeQueryTemp) 53 + 54: 7(int) Load 51(sizeQueryTemp) + 55: 6(int) Bitcast 54 + Store 30(WidthI) 55 + 56: 24 Load 26(g_tTex1df4) + 57: 6(int) ImageQueryLevels 56 + 58: 6(int) Bitcast 57 + Store 47(NumberOfLevelsI) 58 + 66: 65(ptr) AccessChain 62(ps_output) 63 + Store 66 64 + 69: 65(ptr) AccessChain 62(ps_output) 63 + 70: 59(fvec4) Load 69 + Store 68(color) 70 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out index 121c809328f65f5984094cf686311a71fcd303b5..84146e660e09ce90cea1a581800844a099bdac84 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:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -9,99 +9,99 @@ Shader version: 450 0:2 'inU0' (in uint) 0:2 'inU1' (in uint) 0:? Sequence -0:3 all (global bool) +0:3 all (temp bool) 0:3 'inF0' (in float) -0:4 Absolute value (global float) +0:4 Absolute value (temp float) 0:4 'inF0' (in float) -0:5 arc cosine (global float) +0:5 arc cosine (temp float) 0:5 'inF0' (in float) -0:6 any (global bool) +0:6 any (temp bool) 0:6 'inF0' (in float) -0:7 arc sine (global float) +0:7 arc sine (temp float) 0:7 'inF0' (in float) -0:8 floatBitsToInt (global int) +0:8 floatBitsToInt (temp int) 0:8 'inF0' (in float) -0:9 floatBitsToUint (global uint) +0:9 floatBitsToUint (temp uint) 0:9 'inF0' (in float) -0:10 intBitsToFloat (global float) +0:10 intBitsToFloat (temp float) 0:10 'inU0' (in uint) -0:12 arc tangent (global float) +0:12 arc tangent (temp float) 0:12 'inF0' (in float) -0:13 arc tangent (global float) +0:13 arc tangent (temp float) 0:13 'inF0' (in float) 0:13 'inF1' (in float) -0:14 Ceiling (global float) +0:14 Ceiling (temp float) 0:14 'inF0' (in float) -0:15 clamp (global float) +0:15 clamp (temp float) 0:15 'inF0' (in float) 0:15 'inF1' (in float) 0:15 'inF2' (in float) -0:16 cosine (global float) +0:16 cosine (temp float) 0:16 'inF0' (in float) -0:17 hyp. cosine (global float) +0:17 hyp. cosine (temp float) 0:17 'inF0' (in float) -0:18 bitCount (global uint) +0:18 bitCount (temp int) 0:18 Constant: -0:18 7 (const uint) -0:19 degrees (global float) +0:18 7 (const int) +0:19 degrees (temp float) 0:19 'inF0' (in float) -0:23 exp (global float) +0:23 exp (temp float) 0:23 'inF0' (in float) -0:24 exp2 (global float) +0:24 exp2 (temp float) 0:24 'inF0' (in float) -0:25 findMSB (global int) +0:25 findMSB (temp int) 0:25 Constant: 0:25 7 (const int) -0:26 findLSB (global int) +0:26 findLSB (temp int) 0:26 Constant: 0:26 7 (const int) -0:27 Floor (global float) +0:27 Floor (temp float) 0:27 'inF0' (in float) -0:29 mod (global float) +0:29 mod (temp float) 0:29 'inF0' (in float) 0:29 'inF1' (in float) -0:30 Fraction (global float) +0:30 Fraction (temp float) 0:30 'inF0' (in float) -0:31 frexp (global float) +0:31 frexp (temp float) 0:31 'inF0' (in float) 0:31 'inF1' (in float) -0:32 isinf (global bool) +0:32 isinf (temp bool) 0:32 'inF0' (in float) -0:33 isnan (global bool) +0:33 isnan (temp bool) 0:33 'inF0' (in float) -0:34 ldexp (global float) +0:34 ldexp (temp float) 0:34 'inF0' (in float) 0:34 'inF1' (in float) -0:35 mix (global float) +0:35 mix (temp float) 0:35 'inF0' (in float) 0:35 'inF1' (in float) 0:35 'inF2' (in float) -0:36 log (global float) +0:36 log (temp float) 0:36 'inF0' (in float) 0:37 component-wise multiply (temp float) 0:37 log2 (temp float) 0:37 'inF0' (in float) 0:37 Constant: 0:37 0.301030 -0:38 log2 (global float) +0:38 log2 (temp float) 0:38 'inF0' (in float) -0:39 max (global float) +0:39 max (temp float) 0:39 'inF0' (in float) 0:39 'inF1' (in float) -0:40 min (global float) +0:40 min (temp float) 0:40 'inF0' (in float) 0:40 'inF1' (in float) -0:42 pow (global float) +0:42 pow (temp float) 0:42 'inF0' (in float) 0:42 'inF1' (in float) -0:43 radians (global float) +0:43 radians (temp float) 0:43 'inF0' (in float) -0:44 bitFieldReverse (global uint) +0:44 bitFieldReverse (temp int) 0:44 Constant: -0:44 2 (const uint) -0:45 roundEven (global float) +0:44 2 (const int) +0:45 roundEven (temp float) 0:45 'inF0' (in float) -0:46 inverse sqrt (global float) +0:46 inverse sqrt (temp float) 0:46 'inF0' (in float) 0:47 clamp (temp float) 0:47 'inF0' (in float) @@ -109,9 +109,9 @@ Shader version: 450 0:47 0.000000 0:47 Constant: 0:47 1.000000 -0:48 Sign (global float) +0:48 Sign (temp float) 0:48 'inF0' (in float) -0:49 sine (global float) +0:49 sine (temp float) 0:49 'inF0' (in float) 0:50 Sequence 0:50 move second child to first child (temp float) @@ -122,27 +122,27 @@ Shader version: 450 0:50 'inF2' (in float) 0:50 cosine (temp float) 0:50 'inF0' (in float) -0:51 hyp. sine (global float) +0:51 hyp. sine (temp float) 0:51 'inF0' (in float) -0:52 smoothstep (global float) +0:52 smoothstep (temp float) 0:52 'inF0' (in float) 0:52 'inF1' (in float) 0:52 'inF2' (in float) -0:53 sqrt (global float) +0:53 sqrt (temp float) 0:53 'inF0' (in float) -0:54 step (global float) +0:54 step (temp float) 0:54 'inF0' (in float) 0:54 'inF1' (in float) -0:55 tangent (global float) +0:55 tangent (temp float) 0:55 'inF0' (in float) -0:56 hyp. tangent (global float) +0:56 hyp. tangent (temp float) 0:56 'inF0' (in float) -0:58 trunc (global float) +0:58 trunc (temp float) 0:58 'inF0' (in float) 0:60 Branch: Return with expression 0:60 Constant: 0:60 0.000000 -0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:64 Function Parameters: 0:64 'inF0' (in 1-component vector of float) 0:64 'inF1' (in 1-component vector of float) @@ -151,7 +151,7 @@ Shader version: 450 0:66 Branch: Return with expression 0:66 Constant: 0:66 0.000000 -0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:70 Function Parameters: 0:70 'inF0' (in 2-component vector of float) 0:70 'inF1' (in 2-component vector of float) @@ -159,123 +159,123 @@ Shader version: 450 0:70 'inU0' (in 2-component vector of uint) 0:70 'inU1' (in 2-component vector of uint) 0:? Sequence -0:71 all (global bool) +0:71 all (temp bool) 0:71 'inF0' (in 2-component vector of float) -0:72 Absolute value (global 2-component vector of float) +0:72 Absolute value (temp 2-component vector of float) 0:72 'inF0' (in 2-component vector of float) -0:73 arc cosine (global 2-component vector of float) +0:73 arc cosine (temp 2-component vector of float) 0:73 'inF0' (in 2-component vector of float) -0:74 any (global bool) +0:74 any (temp bool) 0:74 'inF0' (in 2-component vector of float) -0:75 arc sine (global 2-component vector of float) +0:75 arc sine (temp 2-component vector of float) 0:75 'inF0' (in 2-component vector of float) -0:76 floatBitsToInt (global 2-component vector of int) +0:76 floatBitsToInt (temp 2-component vector of int) 0:76 'inF0' (in 2-component vector of float) -0:77 floatBitsToUint (global 2-component vector of uint) +0:77 floatBitsToUint (temp 2-component vector of uint) 0:77 'inF0' (in 2-component vector of float) -0:78 intBitsToFloat (global 2-component vector of float) +0:78 intBitsToFloat (temp 2-component vector of float) 0:78 'inU0' (in 2-component vector of uint) -0:80 arc tangent (global 2-component vector of float) +0:80 arc tangent (temp 2-component vector of float) 0:80 'inF0' (in 2-component vector of float) -0:81 arc tangent (global 2-component vector of float) +0:81 arc tangent (temp 2-component vector of float) 0:81 'inF0' (in 2-component vector of float) 0:81 'inF1' (in 2-component vector of float) -0:82 Ceiling (global 2-component vector of float) +0:82 Ceiling (temp 2-component vector of float) 0:82 'inF0' (in 2-component vector of float) -0:83 clamp (global 2-component vector of float) +0:83 clamp (temp 2-component vector of float) 0:83 'inF0' (in 2-component vector of float) 0:83 'inF1' (in 2-component vector of float) 0:83 'inF2' (in 2-component vector of float) -0:84 cosine (global 2-component vector of float) +0:84 cosine (temp 2-component vector of float) 0:84 'inF0' (in 2-component vector of float) -0:85 hyp. cosine (global 2-component vector of float) +0:85 hyp. cosine (temp 2-component vector of float) 0:85 'inF0' (in 2-component vector of float) -0:? bitCount (global 2-component vector of uint) +0:? bitCount (temp 2-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:87 degrees (global 2-component vector of float) +0:? 7 (const int) +0:? 3 (const int) +0:87 degrees (temp 2-component vector of float) 0:87 'inF0' (in 2-component vector of float) -0:88 distance (global float) +0:88 distance (temp float) 0:88 'inF0' (in 2-component vector of float) 0:88 'inF1' (in 2-component vector of float) -0:89 dot-product (global float) +0:89 dot-product (temp float) 0:89 'inF0' (in 2-component vector of float) 0:89 'inF1' (in 2-component vector of float) -0:93 exp (global 2-component vector of float) +0:93 exp (temp 2-component vector of float) 0:93 'inF0' (in 2-component vector of float) -0:94 exp2 (global 2-component vector of float) +0:94 exp2 (temp 2-component vector of float) 0:94 'inF0' (in 2-component vector of float) -0:95 face-forward (global 2-component vector of float) +0:95 face-forward (temp 2-component vector of float) 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) 0:95 'inF2' (in 2-component vector of float) -0:96 findMSB (global int) +0:96 findMSB (temp int) 0:96 Constant: 0:96 7 (const int) -0:97 findLSB (global int) +0:97 findLSB (temp int) 0:97 Constant: 0:97 7 (const int) -0:98 Floor (global 2-component vector of float) +0:98 Floor (temp 2-component vector of float) 0:98 'inF0' (in 2-component vector of float) -0:100 mod (global 2-component vector of float) +0:100 mod (temp 2-component vector of float) 0:100 'inF0' (in 2-component vector of float) 0:100 'inF1' (in 2-component vector of float) -0:101 Fraction (global 2-component vector of float) +0:101 Fraction (temp 2-component vector of float) 0:101 'inF0' (in 2-component vector of float) -0:102 frexp (global 2-component vector of float) +0:102 frexp (temp 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) 0:102 'inF1' (in 2-component vector of float) -0:103 isinf (global 2-component vector of bool) +0:103 isinf (temp 2-component vector of bool) 0:103 'inF0' (in 2-component vector of float) -0:104 isnan (global 2-component vector of bool) +0:104 isnan (temp 2-component vector of bool) 0:104 'inF0' (in 2-component vector of float) -0:105 ldexp (global 2-component vector of float) +0:105 ldexp (temp 2-component vector of float) 0:105 'inF0' (in 2-component vector of float) 0:105 'inF1' (in 2-component vector of float) -0:106 mix (global 2-component vector of float) +0:106 mix (temp 2-component vector of float) 0:106 'inF0' (in 2-component vector of float) 0:106 'inF1' (in 2-component vector of float) 0:106 'inF2' (in 2-component vector of float) -0:107 length (global float) +0:107 length (temp float) 0:107 'inF0' (in 2-component vector of float) -0:108 log (global 2-component vector of float) +0:108 log (temp 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) 0:109 vector-scale (temp 2-component vector of float) 0:109 log2 (temp 2-component vector of float) 0:109 'inF0' (in 2-component vector of float) 0:109 Constant: 0:109 0.301030 -0:110 log2 (global 2-component vector of float) +0:110 log2 (temp 2-component vector of float) 0:110 'inF0' (in 2-component vector of float) -0:111 max (global 2-component vector of float) +0:111 max (temp 2-component vector of float) 0:111 'inF0' (in 2-component vector of float) 0:111 'inF1' (in 2-component vector of float) -0:112 min (global 2-component vector of float) +0:112 min (temp 2-component vector of float) 0:112 'inF0' (in 2-component vector of float) 0:112 'inF1' (in 2-component vector of float) -0:114 normalize (global 2-component vector of float) +0:114 normalize (temp 2-component vector of float) 0:114 'inF0' (in 2-component vector of float) -0:115 pow (global 2-component vector of float) +0:115 pow (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 radians (global 2-component vector of float) +0:116 radians (temp 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) -0:117 reflect (global 2-component vector of float) +0:117 reflect (temp 2-component vector of float) 0:117 'inF0' (in 2-component vector of float) 0:117 'inF1' (in 2-component vector of float) -0:118 refract (global 2-component vector of float) +0:118 refract (temp 2-component vector of float) 0:118 'inF0' (in 2-component vector of float) 0:118 'inF1' (in 2-component vector of float) 0:118 Constant: 0:118 2.000000 -0:? bitFieldReverse (global 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:120 roundEven (global 2-component vector of float) +0:? 1 (const int) +0:? 2 (const int) +0:120 roundEven (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) -0:121 inverse sqrt (global 2-component vector of float) +0:121 inverse sqrt (temp 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) 0:122 clamp (temp 2-component vector of float) 0:122 'inF0' (in 2-component vector of float) @@ -283,9 +283,9 @@ Shader version: 450 0:122 0.000000 0:122 Constant: 0:122 1.000000 -0:123 Sign (global 2-component vector of float) +0:123 Sign (temp 2-component vector of float) 0:123 'inF0' (in 2-component vector of float) -0:124 sine (global 2-component vector of float) +0:124 sine (temp 2-component vector of float) 0:124 'inF0' (in 2-component vector of float) 0:125 Sequence 0:125 move second child to first child (temp 2-component vector of float) @@ -296,28 +296,28 @@ Shader version: 450 0:125 'inF2' (in 2-component vector of float) 0:125 cosine (temp 2-component vector of float) 0:125 'inF0' (in 2-component vector of float) -0:126 hyp. sine (global 2-component vector of float) +0:126 hyp. sine (temp 2-component vector of float) 0:126 'inF0' (in 2-component vector of float) -0:127 smoothstep (global 2-component vector of float) +0:127 smoothstep (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:127 'inF2' (in 2-component vector of float) -0:128 sqrt (global 2-component vector of float) +0:128 sqrt (temp 2-component vector of float) 0:128 'inF0' (in 2-component vector of float) -0:129 step (global 2-component vector of float) +0:129 step (temp 2-component vector of float) 0:129 'inF0' (in 2-component vector of float) 0:129 'inF1' (in 2-component vector of float) -0:130 tangent (global 2-component vector of float) +0:130 tangent (temp 2-component vector of float) 0:130 'inF0' (in 2-component vector of float) -0:131 hyp. tangent (global 2-component vector of float) +0:131 hyp. tangent (temp 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) -0:133 trunc (global 2-component vector of float) +0:133 trunc (temp 2-component vector of float) 0:133 'inF0' (in 2-component vector of float) 0:136 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:140 Function Parameters: 0:140 'inF0' (in 3-component vector of float) 0:140 'inF1' (in 3-component vector of float) @@ -325,128 +325,128 @@ Shader version: 450 0:140 'inU0' (in 3-component vector of uint) 0:140 'inU1' (in 3-component vector of uint) 0:? Sequence -0:141 all (global bool) +0:141 all (temp bool) 0:141 'inF0' (in 3-component vector of float) -0:142 Absolute value (global 3-component vector of float) +0:142 Absolute value (temp 3-component vector of float) 0:142 'inF0' (in 3-component vector of float) -0:143 arc cosine (global 3-component vector of float) +0:143 arc cosine (temp 3-component vector of float) 0:143 'inF0' (in 3-component vector of float) -0:144 any (global bool) +0:144 any (temp bool) 0:144 'inF0' (in 3-component vector of float) -0:145 arc sine (global 3-component vector of float) +0:145 arc sine (temp 3-component vector of float) 0:145 'inF0' (in 3-component vector of float) -0:146 floatBitsToInt (global 3-component vector of int) +0:146 floatBitsToInt (temp 3-component vector of int) 0:146 'inF0' (in 3-component vector of float) -0:147 floatBitsToUint (global 3-component vector of uint) +0:147 floatBitsToUint (temp 3-component vector of uint) 0:147 'inF0' (in 3-component vector of float) -0:148 intBitsToFloat (global 3-component vector of float) +0:148 intBitsToFloat (temp 3-component vector of float) 0:148 'inU0' (in 3-component vector of uint) -0:150 arc tangent (global 3-component vector of float) +0:150 arc tangent (temp 3-component vector of float) 0:150 'inF0' (in 3-component vector of float) -0:151 arc tangent (global 3-component vector of float) +0:151 arc tangent (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:152 Ceiling (global 3-component vector of float) +0:152 Ceiling (temp 3-component vector of float) 0:152 'inF0' (in 3-component vector of float) -0:153 clamp (global 3-component vector of float) +0:153 clamp (temp 3-component vector of float) 0:153 'inF0' (in 3-component vector of float) 0:153 'inF1' (in 3-component vector of float) 0:153 'inF2' (in 3-component vector of float) -0:154 cosine (global 3-component vector of float) +0:154 cosine (temp 3-component vector of float) 0:154 'inF0' (in 3-component vector of float) -0:155 hyp. cosine (global 3-component vector of float) +0:155 hyp. cosine (temp 3-component vector of float) 0:155 'inF0' (in 3-component vector of float) -0:? bitCount (global 3-component vector of uint) +0:? bitCount (temp 3-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:157 cross-product (global 3-component vector of float) +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:157 cross-product (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 degrees (global 3-component vector of float) +0:158 degrees (temp 3-component vector of float) 0:158 'inF0' (in 3-component vector of float) -0:159 distance (global float) +0:159 distance (temp float) 0:159 'inF0' (in 3-component vector of float) 0:159 'inF1' (in 3-component vector of float) -0:160 dot-product (global float) +0:160 dot-product (temp float) 0:160 'inF0' (in 3-component vector of float) 0:160 'inF1' (in 3-component vector of float) -0:164 exp (global 3-component vector of float) +0:164 exp (temp 3-component vector of float) 0:164 'inF0' (in 3-component vector of float) -0:165 exp2 (global 3-component vector of float) +0:165 exp2 (temp 3-component vector of float) 0:165 'inF0' (in 3-component vector of float) -0:166 face-forward (global 3-component vector of float) +0:166 face-forward (temp 3-component vector of float) 0:166 'inF0' (in 3-component vector of float) 0:166 'inF1' (in 3-component vector of float) 0:166 'inF2' (in 3-component vector of float) -0:167 findMSB (global int) +0:167 findMSB (temp int) 0:167 Constant: 0:167 7 (const int) -0:168 findLSB (global int) +0:168 findLSB (temp int) 0:168 Constant: 0:168 7 (const int) -0:169 Floor (global 3-component vector of float) +0:169 Floor (temp 3-component vector of float) 0:169 'inF0' (in 3-component vector of float) -0:171 mod (global 3-component vector of float) +0:171 mod (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 Fraction (global 3-component vector of float) +0:172 Fraction (temp 3-component vector of float) 0:172 'inF0' (in 3-component vector of float) -0:173 frexp (global 3-component vector of float) +0:173 frexp (temp 3-component vector of float) 0:173 'inF0' (in 3-component vector of float) 0:173 'inF1' (in 3-component vector of float) -0:174 isinf (global 3-component vector of bool) +0:174 isinf (temp 3-component vector of bool) 0:174 'inF0' (in 3-component vector of float) -0:175 isnan (global 3-component vector of bool) +0:175 isnan (temp 3-component vector of bool) 0:175 'inF0' (in 3-component vector of float) -0:176 ldexp (global 3-component vector of float) +0:176 ldexp (temp 3-component vector of float) 0:176 'inF0' (in 3-component vector of float) 0:176 'inF1' (in 3-component vector of float) -0:177 mix (global 3-component vector of float) +0:177 mix (temp 3-component vector of float) 0:177 'inF0' (in 3-component vector of float) 0:177 'inF1' (in 3-component vector of float) 0:177 'inF2' (in 3-component vector of float) -0:178 length (global float) +0:178 length (temp float) 0:178 'inF0' (in 3-component vector of float) -0:179 log (global 3-component vector of float) +0:179 log (temp 3-component vector of float) 0:179 'inF0' (in 3-component vector of float) 0:180 vector-scale (temp 3-component vector of float) 0:180 log2 (temp 3-component vector of float) 0:180 'inF0' (in 3-component vector of float) 0:180 Constant: 0:180 0.301030 -0:181 log2 (global 3-component vector of float) +0:181 log2 (temp 3-component vector of float) 0:181 'inF0' (in 3-component vector of float) -0:182 max (global 3-component vector of float) +0:182 max (temp 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) 0:182 'inF1' (in 3-component vector of float) -0:183 min (global 3-component vector of float) +0:183 min (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:185 normalize (global 3-component vector of float) +0:185 normalize (temp 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) -0:186 pow (global 3-component vector of float) +0:186 pow (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 radians (global 3-component vector of float) +0:187 radians (temp 3-component vector of float) 0:187 'inF0' (in 3-component vector of float) -0:188 reflect (global 3-component vector of float) +0:188 reflect (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:189 refract (global 3-component vector of float) +0:189 refract (temp 3-component vector of float) 0:189 'inF0' (in 3-component vector of float) 0:189 'inF1' (in 3-component vector of float) 0:189 Constant: 0:189 2.000000 -0:? bitFieldReverse (global 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:191 roundEven (global 3-component vector of float) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:191 roundEven (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) -0:192 inverse sqrt (global 3-component vector of float) +0:192 inverse sqrt (temp 3-component vector of float) 0:192 'inF0' (in 3-component vector of float) 0:193 clamp (temp 3-component vector of float) 0:193 'inF0' (in 3-component vector of float) @@ -454,9 +454,9 @@ Shader version: 450 0:193 0.000000 0:193 Constant: 0:193 1.000000 -0:194 Sign (global 3-component vector of float) +0:194 Sign (temp 3-component vector of float) 0:194 'inF0' (in 3-component vector of float) -0:195 sine (global 3-component vector of float) +0:195 sine (temp 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) 0:196 Sequence 0:196 move second child to first child (temp 3-component vector of float) @@ -467,29 +467,29 @@ Shader version: 450 0:196 'inF2' (in 3-component vector of float) 0:196 cosine (temp 3-component vector of float) 0:196 'inF0' (in 3-component vector of float) -0:197 hyp. sine (global 3-component vector of float) +0:197 hyp. sine (temp 3-component vector of float) 0:197 'inF0' (in 3-component vector of float) -0:198 smoothstep (global 3-component vector of float) +0:198 smoothstep (temp 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) 0:198 'inF1' (in 3-component vector of float) 0:198 'inF2' (in 3-component vector of float) -0:199 sqrt (global 3-component vector of float) +0:199 sqrt (temp 3-component vector of float) 0:199 'inF0' (in 3-component vector of float) -0:200 step (global 3-component vector of float) +0:200 step (temp 3-component vector of float) 0:200 'inF0' (in 3-component vector of float) 0:200 'inF1' (in 3-component vector of float) -0:201 tangent (global 3-component vector of float) +0:201 tangent (temp 3-component vector of float) 0:201 'inF0' (in 3-component vector of float) -0:202 hyp. tangent (global 3-component vector of float) +0:202 hyp. tangent (temp 3-component vector of float) 0:202 'inF0' (in 3-component vector of float) -0:204 trunc (global 3-component vector of float) +0:204 trunc (temp 3-component vector of float) 0:204 'inF0' (in 3-component vector of float) 0:207 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:211 Function Parameters: 0:211 'inF0' (in 4-component vector of float) 0:211 'inF1' (in 4-component vector of float) @@ -497,49 +497,49 @@ Shader version: 450 0:211 'inU0' (in 4-component vector of uint) 0:211 'inU1' (in 4-component vector of uint) 0:? Sequence -0:212 all (global bool) +0:212 all (temp bool) 0:212 'inF0' (in 4-component vector of float) -0:213 Absolute value (global 4-component vector of float) +0:213 Absolute value (temp 4-component vector of float) 0:213 'inF0' (in 4-component vector of float) -0:214 arc cosine (global 4-component vector of float) +0:214 arc cosine (temp 4-component vector of float) 0:214 'inF0' (in 4-component vector of float) -0:215 any (global bool) +0:215 any (temp bool) 0:215 'inF0' (in 4-component vector of float) -0:216 arc sine (global 4-component vector of float) +0:216 arc sine (temp 4-component vector of float) 0:216 'inF0' (in 4-component vector of float) -0:217 floatBitsToInt (global 4-component vector of int) +0:217 floatBitsToInt (temp 4-component vector of int) 0:217 'inF0' (in 4-component vector of float) -0:218 floatBitsToUint (global 4-component vector of uint) +0:218 floatBitsToUint (temp 4-component vector of uint) 0:218 'inF0' (in 4-component vector of float) -0:219 intBitsToFloat (global 4-component vector of float) +0:219 intBitsToFloat (temp 4-component vector of float) 0:219 'inU0' (in 4-component vector of uint) -0:221 arc tangent (global 4-component vector of float) +0:221 arc tangent (temp 4-component vector of float) 0:221 'inF0' (in 4-component vector of float) -0:222 arc tangent (global 4-component vector of float) +0:222 arc tangent (temp 4-component vector of float) 0:222 'inF0' (in 4-component vector of float) 0:222 'inF1' (in 4-component vector of float) -0:223 Ceiling (global 4-component vector of float) +0:223 Ceiling (temp 4-component vector of float) 0:223 'inF0' (in 4-component vector of float) -0:224 clamp (global 4-component vector of float) +0:224 clamp (temp 4-component vector of float) 0:224 'inF0' (in 4-component vector of float) 0:224 'inF1' (in 4-component vector of float) 0:224 'inF2' (in 4-component vector of float) -0:225 cosine (global 4-component vector of float) +0:225 cosine (temp 4-component vector of float) 0:225 'inF0' (in 4-component vector of float) -0:226 hyp. cosine (global 4-component vector of float) +0:226 hyp. cosine (temp 4-component vector of float) 0:226 'inF0' (in 4-component vector of float) -0:? bitCount (global 4-component vector of uint) +0:? bitCount (temp 4-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:? 2 (const uint) -0:228 degrees (global 4-component vector of float) +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:? 2 (const int) +0:228 degrees (temp 4-component vector of float) 0:228 'inF0' (in 4-component vector of float) -0:229 distance (global float) +0:229 distance (temp float) 0:229 'inF0' (in 4-component vector of float) 0:229 'inF1' (in 4-component vector of float) -0:230 dot-product (global float) +0:230 dot-product (temp float) 0:230 'inF0' (in 4-component vector of float) 0:230 'inF1' (in 4-component vector of float) 0:231 Construct vec4 (temp 4-component vector of float) @@ -562,82 +562,82 @@ Shader version: 450 0:231 'inF1' (in 4-component vector of float) 0:231 Constant: 0:231 3 (const int) -0:235 exp (global 4-component vector of float) +0:235 exp (temp 4-component vector of float) 0:235 'inF0' (in 4-component vector of float) -0:236 exp2 (global 4-component vector of float) +0:236 exp2 (temp 4-component vector of float) 0:236 'inF0' (in 4-component vector of float) -0:237 face-forward (global 4-component vector of float) +0:237 face-forward (temp 4-component vector of float) 0:237 'inF0' (in 4-component vector of float) 0:237 'inF1' (in 4-component vector of float) 0:237 'inF2' (in 4-component vector of float) -0:238 findMSB (global int) +0:238 findMSB (temp int) 0:238 Constant: 0:238 7 (const int) -0:239 findLSB (global int) +0:239 findLSB (temp int) 0:239 Constant: 0:239 7 (const int) -0:240 Floor (global 4-component vector of float) +0:240 Floor (temp 4-component vector of float) 0:240 'inF0' (in 4-component vector of float) -0:242 mod (global 4-component vector of float) +0:242 mod (temp 4-component vector of float) 0:242 'inF0' (in 4-component vector of float) 0:242 'inF1' (in 4-component vector of float) -0:243 Fraction (global 4-component vector of float) +0:243 Fraction (temp 4-component vector of float) 0:243 'inF0' (in 4-component vector of float) -0:244 frexp (global 4-component vector of float) +0:244 frexp (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 isinf (global 4-component vector of bool) +0:245 isinf (temp 4-component vector of bool) 0:245 'inF0' (in 4-component vector of float) -0:246 isnan (global 4-component vector of bool) +0:246 isnan (temp 4-component vector of bool) 0:246 'inF0' (in 4-component vector of float) -0:247 ldexp (global 4-component vector of float) +0:247 ldexp (temp 4-component vector of float) 0:247 'inF0' (in 4-component vector of float) 0:247 'inF1' (in 4-component vector of float) -0:248 mix (global 4-component vector of float) +0:248 mix (temp 4-component vector of float) 0:248 'inF0' (in 4-component vector of float) 0:248 'inF1' (in 4-component vector of float) 0:248 'inF2' (in 4-component vector of float) -0:249 length (global float) +0:249 length (temp float) 0:249 'inF0' (in 4-component vector of float) -0:250 log (global 4-component vector of float) +0:250 log (temp 4-component vector of float) 0:250 'inF0' (in 4-component vector of float) 0:251 vector-scale (temp 4-component vector of float) 0:251 log2 (temp 4-component vector of float) 0:251 'inF0' (in 4-component vector of float) 0:251 Constant: 0:251 0.301030 -0:252 log2 (global 4-component vector of float) +0:252 log2 (temp 4-component vector of float) 0:252 'inF0' (in 4-component vector of float) -0:253 max (global 4-component vector of float) +0:253 max (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 min (global 4-component vector of float) +0:254 min (temp 4-component vector of float) 0:254 'inF0' (in 4-component vector of float) 0:254 'inF1' (in 4-component vector of float) -0:256 normalize (global 4-component vector of float) +0:256 normalize (temp 4-component vector of float) 0:256 'inF0' (in 4-component vector of float) -0:257 pow (global 4-component vector of float) +0:257 pow (temp 4-component vector of float) 0:257 'inF0' (in 4-component vector of float) 0:257 'inF1' (in 4-component vector of float) -0:258 radians (global 4-component vector of float) +0:258 radians (temp 4-component vector of float) 0:258 'inF0' (in 4-component vector of float) -0:259 reflect (global 4-component vector of float) +0:259 reflect (temp 4-component vector of float) 0:259 'inF0' (in 4-component vector of float) 0:259 'inF1' (in 4-component vector of float) -0:260 refract (global 4-component vector of float) +0:260 refract (temp 4-component vector of float) 0:260 'inF0' (in 4-component vector of float) 0:260 'inF1' (in 4-component vector of float) 0:260 Constant: 0:260 2.000000 -0:? bitFieldReverse (global 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:? 4 (const uint) -0:262 roundEven (global 4-component vector of float) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:262 roundEven (temp 4-component vector of float) 0:262 'inF0' (in 4-component vector of float) -0:263 inverse sqrt (global 4-component vector of float) +0:263 inverse sqrt (temp 4-component vector of float) 0:263 'inF0' (in 4-component vector of float) 0:264 clamp (temp 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) @@ -645,9 +645,9 @@ Shader version: 450 0:264 0.000000 0:264 Constant: 0:264 1.000000 -0:265 Sign (global 4-component vector of float) +0:265 Sign (temp 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) -0:266 sine (global 4-component vector of float) +0:266 sine (temp 4-component vector of float) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) @@ -658,22 +658,22 @@ Shader version: 450 0:267 'inF2' (in 4-component vector of float) 0:267 cosine (temp 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) -0:268 hyp. sine (global 4-component vector of float) +0:268 hyp. sine (temp 4-component vector of float) 0:268 'inF0' (in 4-component vector of float) -0:269 smoothstep (global 4-component vector of float) +0:269 smoothstep (temp 4-component vector of float) 0:269 'inF0' (in 4-component vector of float) 0:269 'inF1' (in 4-component vector of float) 0:269 'inF2' (in 4-component vector of float) -0:270 sqrt (global 4-component vector of float) +0:270 sqrt (temp 4-component vector of float) 0:270 'inF0' (in 4-component vector of float) -0:271 step (global 4-component vector of float) +0:271 step (temp 4-component vector of float) 0:271 'inF0' (in 4-component vector of float) 0:271 'inF1' (in 4-component vector of float) -0:272 tangent (global 4-component vector of float) +0:272 tangent (temp 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) -0:273 hyp. tangent (global 4-component vector of float) +0:273 hyp. tangent (temp 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) -0:275 trunc (global 4-component vector of float) +0:275 trunc (temp 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) 0:278 Branch: Return with expression 0:? Constant: @@ -681,91 +681,91 @@ Shader version: 450 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:336 Function Parameters: 0:336 'inF0' (in 2X2 matrix of float) 0:336 'inF1' (in 2X2 matrix of float) 0:336 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:338 all (global bool) +0:338 all (temp bool) 0:338 'inF0' (in 2X2 matrix of float) -0:338 Absolute value (global 2X2 matrix of float) +0:338 Absolute value (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc cosine (global 2X2 matrix of float) +0:338 arc cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 any (global bool) +0:338 any (temp bool) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc sine (global 2X2 matrix of float) +0:338 arc sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (global 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (global 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 Ceiling (global 2X2 matrix of float) +0:338 Ceiling (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 clamp (global 2X2 matrix of float) +0:338 clamp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 cosine (global 2X2 matrix of float) +0:338 cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. cosine (global 2X2 matrix of float) +0:338 hyp. cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 degrees (global 2X2 matrix of float) +0:338 degrees (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 determinant (global float) +0:338 determinant (temp float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 exp (global 2X2 matrix of float) +0:338 exp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 exp2 (global 2X2 matrix of float) +0:338 exp2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 findMSB (global int) +0:338 findMSB (temp int) 0:338 Constant: 0:338 7 (const int) -0:338 findLSB (global int) +0:338 findLSB (temp int) 0:338 Constant: 0:338 7 (const int) -0:338 Floor (global 2X2 matrix of float) +0:338 Floor (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 mod (global 2X2 matrix of float) +0:338 mod (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 Fraction (global 2X2 matrix of float) +0:338 Fraction (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 frexp (global 2X2 matrix of float) +0:338 frexp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 ldexp (global 2X2 matrix of float) +0:338 ldexp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 mix (global 2X2 matrix of float) +0:338 mix (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 log (global 2X2 matrix of float) +0:338 log (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 matrix-scale (temp 2X2 matrix of float) 0:338 log2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 Constant: 0:338 0.301030 -0:338 log2 (global 2X2 matrix of float) +0:338 log2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 max (global 2X2 matrix of float) +0:338 max (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 min (global 2X2 matrix of float) +0:338 min (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 pow (global 2X2 matrix of float) +0:338 pow (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 radians (global 2X2 matrix of float) +0:338 radians (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 roundEven (global 2X2 matrix of float) +0:338 roundEven (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 inverse sqrt (global 2X2 matrix of float) +0:338 inverse sqrt (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 clamp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) @@ -773,9 +773,9 @@ Shader version: 450 0:338 0.000000 0:338 Constant: 0:338 1.000000 -0:338 Sign (global 2X2 matrix of float) +0:338 Sign (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 sine (global 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 Sequence 0:338 move second child to first child (temp 2X2 matrix of float) @@ -786,24 +786,24 @@ Shader version: 450 0:338 'inF2' (in 2X2 matrix of float) 0:338 cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. sine (global 2X2 matrix of float) +0:338 hyp. sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 smoothstep (global 2X2 matrix of float) +0:338 smoothstep (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 sqrt (global 2X2 matrix of float) +0:338 sqrt (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 step (global 2X2 matrix of float) +0:338 step (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 tangent (global 2X2 matrix of float) +0:338 tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. tangent (global 2X2 matrix of float) +0:338 hyp. tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 transpose (global 2X2 matrix of float) +0:338 transpose (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 trunc (global 2X2 matrix of float) +0:338 trunc (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:341 Branch: Return with expression 0:? Constant: @@ -811,91 +811,91 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:345 Function Parameters: 0:345 'inF0' (in 3X3 matrix of float) 0:345 'inF1' (in 3X3 matrix of float) 0:345 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:347 all (global bool) +0:347 all (temp bool) 0:347 'inF0' (in 3X3 matrix of float) -0:347 Absolute value (global 3X3 matrix of float) +0:347 Absolute value (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc cosine (global 3X3 matrix of float) +0:347 arc cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 any (global bool) +0:347 any (temp bool) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc sine (global 3X3 matrix of float) +0:347 arc sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (global 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (global 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 Ceiling (global 3X3 matrix of float) +0:347 Ceiling (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 clamp (global 3X3 matrix of float) +0:347 clamp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 cosine (global 3X3 matrix of float) +0:347 cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. cosine (global 3X3 matrix of float) +0:347 hyp. cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 degrees (global 3X3 matrix of float) +0:347 degrees (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 determinant (global float) +0:347 determinant (temp float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 exp (global 3X3 matrix of float) +0:347 exp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 exp2 (global 3X3 matrix of float) +0:347 exp2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 findMSB (global int) +0:347 findMSB (temp int) 0:347 Constant: 0:347 7 (const int) -0:347 findLSB (global int) +0:347 findLSB (temp int) 0:347 Constant: 0:347 7 (const int) -0:347 Floor (global 3X3 matrix of float) +0:347 Floor (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 mod (global 3X3 matrix of float) +0:347 mod (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 Fraction (global 3X3 matrix of float) +0:347 Fraction (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 frexp (global 3X3 matrix of float) +0:347 frexp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 ldexp (global 3X3 matrix of float) +0:347 ldexp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 mix (global 3X3 matrix of float) +0:347 mix (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 log (global 3X3 matrix of float) +0:347 log (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 matrix-scale (temp 3X3 matrix of float) 0:347 log2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 Constant: 0:347 0.301030 -0:347 log2 (global 3X3 matrix of float) +0:347 log2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 max (global 3X3 matrix of float) +0:347 max (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 min (global 3X3 matrix of float) +0:347 min (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 pow (global 3X3 matrix of float) +0:347 pow (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 radians (global 3X3 matrix of float) +0:347 radians (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 roundEven (global 3X3 matrix of float) +0:347 roundEven (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 inverse sqrt (global 3X3 matrix of float) +0:347 inverse sqrt (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 clamp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) @@ -903,9 +903,9 @@ Shader version: 450 0:347 0.000000 0:347 Constant: 0:347 1.000000 -0:347 Sign (global 3X3 matrix of float) +0:347 Sign (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 sine (global 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 Sequence 0:347 move second child to first child (temp 3X3 matrix of float) @@ -916,24 +916,24 @@ Shader version: 450 0:347 'inF2' (in 3X3 matrix of float) 0:347 cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. sine (global 3X3 matrix of float) +0:347 hyp. sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 smoothstep (global 3X3 matrix of float) +0:347 smoothstep (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 sqrt (global 3X3 matrix of float) +0:347 sqrt (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 step (global 3X3 matrix of float) +0:347 step (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 tangent (global 3X3 matrix of float) +0:347 tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. tangent (global 3X3 matrix of float) +0:347 hyp. tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 transpose (global 3X3 matrix of float) +0:347 transpose (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 trunc (global 3X3 matrix of float) +0:347 trunc (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:350 Branch: Return with expression 0:? Constant: @@ -946,91 +946,91 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:354 Function Parameters: 0:354 'inF0' (in 4X4 matrix of float) 0:354 'inF1' (in 4X4 matrix of float) 0:354 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:356 all (global bool) +0:356 all (temp bool) 0:356 'inF0' (in 4X4 matrix of float) -0:356 Absolute value (global 4X4 matrix of float) +0:356 Absolute value (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc cosine (global 4X4 matrix of float) +0:356 arc cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 any (global bool) +0:356 any (temp bool) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc sine (global 4X4 matrix of float) +0:356 arc sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (global 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (global 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 Ceiling (global 4X4 matrix of float) +0:356 Ceiling (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 clamp (global 4X4 matrix of float) +0:356 clamp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 cosine (global 4X4 matrix of float) +0:356 cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. cosine (global 4X4 matrix of float) +0:356 hyp. cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 degrees (global 4X4 matrix of float) +0:356 degrees (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 determinant (global float) +0:356 determinant (temp float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 exp (global 4X4 matrix of float) +0:356 exp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 exp2 (global 4X4 matrix of float) +0:356 exp2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 findMSB (global int) +0:356 findMSB (temp int) 0:356 Constant: 0:356 7 (const int) -0:356 findLSB (global int) +0:356 findLSB (temp int) 0:356 Constant: 0:356 7 (const int) -0:356 Floor (global 4X4 matrix of float) +0:356 Floor (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 mod (global 4X4 matrix of float) +0:356 mod (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 Fraction (global 4X4 matrix of float) +0:356 Fraction (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 frexp (global 4X4 matrix of float) +0:356 frexp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 ldexp (global 4X4 matrix of float) +0:356 ldexp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 mix (global 4X4 matrix of float) +0:356 mix (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 log (global 4X4 matrix of float) +0:356 log (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 matrix-scale (temp 4X4 matrix of float) 0:356 log2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 Constant: 0:356 0.301030 -0:356 log2 (global 4X4 matrix of float) +0:356 log2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 max (global 4X4 matrix of float) +0:356 max (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 min (global 4X4 matrix of float) +0:356 min (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 pow (global 4X4 matrix of float) +0:356 pow (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 radians (global 4X4 matrix of float) +0:356 radians (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 roundEven (global 4X4 matrix of float) +0:356 roundEven (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 inverse sqrt (global 4X4 matrix of float) +0:356 inverse sqrt (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 clamp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) @@ -1038,9 +1038,9 @@ Shader version: 450 0:356 0.000000 0:356 Constant: 0:356 1.000000 -0:356 Sign (global 4X4 matrix of float) +0:356 Sign (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 sine (global 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 Sequence 0:356 move second child to first child (temp 4X4 matrix of float) @@ -1051,24 +1051,24 @@ Shader version: 450 0:356 'inF2' (in 4X4 matrix of float) 0:356 cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. sine (global 4X4 matrix of float) +0:356 hyp. sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 smoothstep (global 4X4 matrix of float) +0:356 smoothstep (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 sqrt (global 4X4 matrix of float) +0:356 sqrt (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 step (global 4X4 matrix of float) +0:356 step (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 tangent (global 4X4 matrix of float) +0:356 tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. tangent (global 4X4 matrix of float) +0:356 hyp. tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 transpose (global 4X4 matrix of float) +0:356 transpose (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 trunc (global 4X4 matrix of float) +0:356 trunc (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:359 Branch: Return with expression 0:? Constant: @@ -1088,7 +1088,7 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:377 Function Parameters: 0:377 'inF0' (in float) 0:377 'inF1' (in float) @@ -1118,7 +1118,7 @@ Shader version: 450 0:378 Sequence 0:378 move second child to first child (temp float) 0:378 'r3' (temp float) -0:378 dot-product (global float) +0:378 dot-product (temp float) 0:378 'inFV0' (in 2-component vector of float) 0:378 'inFV1' (in 2-component vector of float) 0:378 Sequence @@ -1151,7 +1151,7 @@ Shader version: 450 0:378 matrix-multiply (temp 2X2 matrix of float) 0:378 'inFM1' (in 2X2 matrix of float) 0:378 'inFM0' (in 2X2 matrix of float) -0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:384 Function Parameters: 0:384 'inF0' (in float) 0:384 'inF1' (in float) @@ -1181,7 +1181,7 @@ Shader version: 450 0:385 Sequence 0:385 move second child to first child (temp float) 0:385 'r3' (temp float) -0:385 dot-product (global float) +0:385 dot-product (temp float) 0:385 'inFV0' (in 3-component vector of float) 0:385 'inFV1' (in 3-component vector of float) 0:385 Sequence @@ -1214,7 +1214,7 @@ Shader version: 450 0:385 matrix-multiply (temp 3X3 matrix of float) 0:385 'inFM1' (in 3X3 matrix of float) 0:385 'inFM0' (in 3X3 matrix of float) -0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:391 Function Parameters: 0:391 'inF0' (in float) 0:391 'inF1' (in float) @@ -1244,7 +1244,7 @@ Shader version: 450 0:392 Sequence 0:392 move second child to first child (temp float) 0:392 'r3' (temp float) -0:392 dot-product (global float) +0:392 dot-product (temp float) 0:392 'inFV0' (in 4-component vector of float) 0:392 'inFV1' (in 4-component vector of float) 0:392 Sequence @@ -1277,7 +1277,7 @@ Shader version: 450 0:392 matrix-multiply (temp 4X4 matrix of float) 0:392 'inFM1' (in 4X4 matrix of float) 0:392 'inFM0' (in 4X4 matrix of float) -0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) 0:401 Function Parameters: 0:401 'inF0' (in float) 0:401 'inF1' (in float) @@ -1322,13 +1322,13 @@ Shader version: 450 0:407 Sequence 0:407 move second child to first child (temp float) 0:407 'r05' (temp float) -0:407 dot-product (global float) +0:407 dot-product (temp float) 0:407 'inFV2' (in 2-component vector of float) 0:407 'inFV2' (in 2-component vector of float) 0:408 Sequence 0:408 move second child to first child (temp float) 0:408 'r06' (temp float) -0:408 dot-product (global float) +0:408 dot-product (temp float) 0:408 'inFV3' (in 3-component vector of float) 0:408 'inFV3' (in 3-component vector of float) 0:409 Sequence @@ -1396,10 +1396,11 @@ Shader version: 450 Linked vertex stage: +WARNING: Linking vertex stage: Entry point not found Shader version: 450 0:? Sequence -0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (global float) +0:2 Function Definition: VertexShaderFunctionS(f1;f1;f1;u1;u1; (temp float) 0:2 Function Parameters: 0:2 'inF0' (in float) 0:2 'inF1' (in float) @@ -1407,99 +1408,99 @@ Shader version: 450 0:2 'inU0' (in uint) 0:2 'inU1' (in uint) 0:? Sequence -0:3 all (global bool) +0:3 all (temp bool) 0:3 'inF0' (in float) -0:4 Absolute value (global float) +0:4 Absolute value (temp float) 0:4 'inF0' (in float) -0:5 arc cosine (global float) +0:5 arc cosine (temp float) 0:5 'inF0' (in float) -0:6 any (global bool) +0:6 any (temp bool) 0:6 'inF0' (in float) -0:7 arc sine (global float) +0:7 arc sine (temp float) 0:7 'inF0' (in float) -0:8 floatBitsToInt (global int) +0:8 floatBitsToInt (temp int) 0:8 'inF0' (in float) -0:9 floatBitsToUint (global uint) +0:9 floatBitsToUint (temp uint) 0:9 'inF0' (in float) -0:10 intBitsToFloat (global float) +0:10 intBitsToFloat (temp float) 0:10 'inU0' (in uint) -0:12 arc tangent (global float) +0:12 arc tangent (temp float) 0:12 'inF0' (in float) -0:13 arc tangent (global float) +0:13 arc tangent (temp float) 0:13 'inF0' (in float) 0:13 'inF1' (in float) -0:14 Ceiling (global float) +0:14 Ceiling (temp float) 0:14 'inF0' (in float) -0:15 clamp (global float) +0:15 clamp (temp float) 0:15 'inF0' (in float) 0:15 'inF1' (in float) 0:15 'inF2' (in float) -0:16 cosine (global float) +0:16 cosine (temp float) 0:16 'inF0' (in float) -0:17 hyp. cosine (global float) +0:17 hyp. cosine (temp float) 0:17 'inF0' (in float) -0:18 bitCount (global uint) +0:18 bitCount (temp int) 0:18 Constant: -0:18 7 (const uint) -0:19 degrees (global float) +0:18 7 (const int) +0:19 degrees (temp float) 0:19 'inF0' (in float) -0:23 exp (global float) +0:23 exp (temp float) 0:23 'inF0' (in float) -0:24 exp2 (global float) +0:24 exp2 (temp float) 0:24 'inF0' (in float) -0:25 findMSB (global int) +0:25 findMSB (temp int) 0:25 Constant: 0:25 7 (const int) -0:26 findLSB (global int) +0:26 findLSB (temp int) 0:26 Constant: 0:26 7 (const int) -0:27 Floor (global float) +0:27 Floor (temp float) 0:27 'inF0' (in float) -0:29 mod (global float) +0:29 mod (temp float) 0:29 'inF0' (in float) 0:29 'inF1' (in float) -0:30 Fraction (global float) +0:30 Fraction (temp float) 0:30 'inF0' (in float) -0:31 frexp (global float) +0:31 frexp (temp float) 0:31 'inF0' (in float) 0:31 'inF1' (in float) -0:32 isinf (global bool) +0:32 isinf (temp bool) 0:32 'inF0' (in float) -0:33 isnan (global bool) +0:33 isnan (temp bool) 0:33 'inF0' (in float) -0:34 ldexp (global float) +0:34 ldexp (temp float) 0:34 'inF0' (in float) 0:34 'inF1' (in float) -0:35 mix (global float) +0:35 mix (temp float) 0:35 'inF0' (in float) 0:35 'inF1' (in float) 0:35 'inF2' (in float) -0:36 log (global float) +0:36 log (temp float) 0:36 'inF0' (in float) 0:37 component-wise multiply (temp float) 0:37 log2 (temp float) 0:37 'inF0' (in float) 0:37 Constant: 0:37 0.301030 -0:38 log2 (global float) +0:38 log2 (temp float) 0:38 'inF0' (in float) -0:39 max (global float) +0:39 max (temp float) 0:39 'inF0' (in float) 0:39 'inF1' (in float) -0:40 min (global float) +0:40 min (temp float) 0:40 'inF0' (in float) 0:40 'inF1' (in float) -0:42 pow (global float) +0:42 pow (temp float) 0:42 'inF0' (in float) 0:42 'inF1' (in float) -0:43 radians (global float) +0:43 radians (temp float) 0:43 'inF0' (in float) -0:44 bitFieldReverse (global uint) +0:44 bitFieldReverse (temp int) 0:44 Constant: -0:44 2 (const uint) -0:45 roundEven (global float) +0:44 2 (const int) +0:45 roundEven (temp float) 0:45 'inF0' (in float) -0:46 inverse sqrt (global float) +0:46 inverse sqrt (temp float) 0:46 'inF0' (in float) 0:47 clamp (temp float) 0:47 'inF0' (in float) @@ -1507,9 +1508,9 @@ Shader version: 450 0:47 0.000000 0:47 Constant: 0:47 1.000000 -0:48 Sign (global float) +0:48 Sign (temp float) 0:48 'inF0' (in float) -0:49 sine (global float) +0:49 sine (temp float) 0:49 'inF0' (in float) 0:50 Sequence 0:50 move second child to first child (temp float) @@ -1520,27 +1521,27 @@ Shader version: 450 0:50 'inF2' (in float) 0:50 cosine (temp float) 0:50 'inF0' (in float) -0:51 hyp. sine (global float) +0:51 hyp. sine (temp float) 0:51 'inF0' (in float) -0:52 smoothstep (global float) +0:52 smoothstep (temp float) 0:52 'inF0' (in float) 0:52 'inF1' (in float) 0:52 'inF2' (in float) -0:53 sqrt (global float) +0:53 sqrt (temp float) 0:53 'inF0' (in float) -0:54 step (global float) +0:54 step (temp float) 0:54 'inF0' (in float) 0:54 'inF1' (in float) -0:55 tangent (global float) +0:55 tangent (temp float) 0:55 'inF0' (in float) -0:56 hyp. tangent (global float) +0:56 hyp. tangent (temp float) 0:56 'inF0' (in float) -0:58 trunc (global float) +0:58 trunc (temp float) 0:58 'inF0' (in float) 0:60 Branch: Return with expression 0:60 Constant: 0:60 0.000000 -0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (global 1-component vector of float) +0:64 Function Definition: VertexShaderFunction1(vf1;vf1;vf1; (temp 1-component vector of float) 0:64 Function Parameters: 0:64 'inF0' (in 1-component vector of float) 0:64 'inF1' (in 1-component vector of float) @@ -1549,7 +1550,7 @@ Shader version: 450 0:66 Branch: Return with expression 0:66 Constant: 0:66 0.000000 -0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (global 2-component vector of float) +0:70 Function Definition: VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2; (temp 2-component vector of float) 0:70 Function Parameters: 0:70 'inF0' (in 2-component vector of float) 0:70 'inF1' (in 2-component vector of float) @@ -1557,123 +1558,123 @@ Shader version: 450 0:70 'inU0' (in 2-component vector of uint) 0:70 'inU1' (in 2-component vector of uint) 0:? Sequence -0:71 all (global bool) +0:71 all (temp bool) 0:71 'inF0' (in 2-component vector of float) -0:72 Absolute value (global 2-component vector of float) +0:72 Absolute value (temp 2-component vector of float) 0:72 'inF0' (in 2-component vector of float) -0:73 arc cosine (global 2-component vector of float) +0:73 arc cosine (temp 2-component vector of float) 0:73 'inF0' (in 2-component vector of float) -0:74 any (global bool) +0:74 any (temp bool) 0:74 'inF0' (in 2-component vector of float) -0:75 arc sine (global 2-component vector of float) +0:75 arc sine (temp 2-component vector of float) 0:75 'inF0' (in 2-component vector of float) -0:76 floatBitsToInt (global 2-component vector of int) +0:76 floatBitsToInt (temp 2-component vector of int) 0:76 'inF0' (in 2-component vector of float) -0:77 floatBitsToUint (global 2-component vector of uint) +0:77 floatBitsToUint (temp 2-component vector of uint) 0:77 'inF0' (in 2-component vector of float) -0:78 intBitsToFloat (global 2-component vector of float) +0:78 intBitsToFloat (temp 2-component vector of float) 0:78 'inU0' (in 2-component vector of uint) -0:80 arc tangent (global 2-component vector of float) +0:80 arc tangent (temp 2-component vector of float) 0:80 'inF0' (in 2-component vector of float) -0:81 arc tangent (global 2-component vector of float) +0:81 arc tangent (temp 2-component vector of float) 0:81 'inF0' (in 2-component vector of float) 0:81 'inF1' (in 2-component vector of float) -0:82 Ceiling (global 2-component vector of float) +0:82 Ceiling (temp 2-component vector of float) 0:82 'inF0' (in 2-component vector of float) -0:83 clamp (global 2-component vector of float) +0:83 clamp (temp 2-component vector of float) 0:83 'inF0' (in 2-component vector of float) 0:83 'inF1' (in 2-component vector of float) 0:83 'inF2' (in 2-component vector of float) -0:84 cosine (global 2-component vector of float) +0:84 cosine (temp 2-component vector of float) 0:84 'inF0' (in 2-component vector of float) -0:85 hyp. cosine (global 2-component vector of float) +0:85 hyp. cosine (temp 2-component vector of float) 0:85 'inF0' (in 2-component vector of float) -0:? bitCount (global 2-component vector of uint) +0:? bitCount (temp 2-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:87 degrees (global 2-component vector of float) +0:? 7 (const int) +0:? 3 (const int) +0:87 degrees (temp 2-component vector of float) 0:87 'inF0' (in 2-component vector of float) -0:88 distance (global float) +0:88 distance (temp float) 0:88 'inF0' (in 2-component vector of float) 0:88 'inF1' (in 2-component vector of float) -0:89 dot-product (global float) +0:89 dot-product (temp float) 0:89 'inF0' (in 2-component vector of float) 0:89 'inF1' (in 2-component vector of float) -0:93 exp (global 2-component vector of float) +0:93 exp (temp 2-component vector of float) 0:93 'inF0' (in 2-component vector of float) -0:94 exp2 (global 2-component vector of float) +0:94 exp2 (temp 2-component vector of float) 0:94 'inF0' (in 2-component vector of float) -0:95 face-forward (global 2-component vector of float) +0:95 face-forward (temp 2-component vector of float) 0:95 'inF0' (in 2-component vector of float) 0:95 'inF1' (in 2-component vector of float) 0:95 'inF2' (in 2-component vector of float) -0:96 findMSB (global int) +0:96 findMSB (temp int) 0:96 Constant: 0:96 7 (const int) -0:97 findLSB (global int) +0:97 findLSB (temp int) 0:97 Constant: 0:97 7 (const int) -0:98 Floor (global 2-component vector of float) +0:98 Floor (temp 2-component vector of float) 0:98 'inF0' (in 2-component vector of float) -0:100 mod (global 2-component vector of float) +0:100 mod (temp 2-component vector of float) 0:100 'inF0' (in 2-component vector of float) 0:100 'inF1' (in 2-component vector of float) -0:101 Fraction (global 2-component vector of float) +0:101 Fraction (temp 2-component vector of float) 0:101 'inF0' (in 2-component vector of float) -0:102 frexp (global 2-component vector of float) +0:102 frexp (temp 2-component vector of float) 0:102 'inF0' (in 2-component vector of float) 0:102 'inF1' (in 2-component vector of float) -0:103 isinf (global 2-component vector of bool) +0:103 isinf (temp 2-component vector of bool) 0:103 'inF0' (in 2-component vector of float) -0:104 isnan (global 2-component vector of bool) +0:104 isnan (temp 2-component vector of bool) 0:104 'inF0' (in 2-component vector of float) -0:105 ldexp (global 2-component vector of float) +0:105 ldexp (temp 2-component vector of float) 0:105 'inF0' (in 2-component vector of float) 0:105 'inF1' (in 2-component vector of float) -0:106 mix (global 2-component vector of float) +0:106 mix (temp 2-component vector of float) 0:106 'inF0' (in 2-component vector of float) 0:106 'inF1' (in 2-component vector of float) 0:106 'inF2' (in 2-component vector of float) -0:107 length (global float) +0:107 length (temp float) 0:107 'inF0' (in 2-component vector of float) -0:108 log (global 2-component vector of float) +0:108 log (temp 2-component vector of float) 0:108 'inF0' (in 2-component vector of float) 0:109 vector-scale (temp 2-component vector of float) 0:109 log2 (temp 2-component vector of float) 0:109 'inF0' (in 2-component vector of float) 0:109 Constant: 0:109 0.301030 -0:110 log2 (global 2-component vector of float) +0:110 log2 (temp 2-component vector of float) 0:110 'inF0' (in 2-component vector of float) -0:111 max (global 2-component vector of float) +0:111 max (temp 2-component vector of float) 0:111 'inF0' (in 2-component vector of float) 0:111 'inF1' (in 2-component vector of float) -0:112 min (global 2-component vector of float) +0:112 min (temp 2-component vector of float) 0:112 'inF0' (in 2-component vector of float) 0:112 'inF1' (in 2-component vector of float) -0:114 normalize (global 2-component vector of float) +0:114 normalize (temp 2-component vector of float) 0:114 'inF0' (in 2-component vector of float) -0:115 pow (global 2-component vector of float) +0:115 pow (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 radians (global 2-component vector of float) +0:116 radians (temp 2-component vector of float) 0:116 'inF0' (in 2-component vector of float) -0:117 reflect (global 2-component vector of float) +0:117 reflect (temp 2-component vector of float) 0:117 'inF0' (in 2-component vector of float) 0:117 'inF1' (in 2-component vector of float) -0:118 refract (global 2-component vector of float) +0:118 refract (temp 2-component vector of float) 0:118 'inF0' (in 2-component vector of float) 0:118 'inF1' (in 2-component vector of float) 0:118 Constant: 0:118 2.000000 -0:? bitFieldReverse (global 2-component vector of uint) +0:? bitFieldReverse (temp 2-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:120 roundEven (global 2-component vector of float) +0:? 1 (const int) +0:? 2 (const int) +0:120 roundEven (temp 2-component vector of float) 0:120 'inF0' (in 2-component vector of float) -0:121 inverse sqrt (global 2-component vector of float) +0:121 inverse sqrt (temp 2-component vector of float) 0:121 'inF0' (in 2-component vector of float) 0:122 clamp (temp 2-component vector of float) 0:122 'inF0' (in 2-component vector of float) @@ -1681,9 +1682,9 @@ Shader version: 450 0:122 0.000000 0:122 Constant: 0:122 1.000000 -0:123 Sign (global 2-component vector of float) +0:123 Sign (temp 2-component vector of float) 0:123 'inF0' (in 2-component vector of float) -0:124 sine (global 2-component vector of float) +0:124 sine (temp 2-component vector of float) 0:124 'inF0' (in 2-component vector of float) 0:125 Sequence 0:125 move second child to first child (temp 2-component vector of float) @@ -1694,28 +1695,28 @@ Shader version: 450 0:125 'inF2' (in 2-component vector of float) 0:125 cosine (temp 2-component vector of float) 0:125 'inF0' (in 2-component vector of float) -0:126 hyp. sine (global 2-component vector of float) +0:126 hyp. sine (temp 2-component vector of float) 0:126 'inF0' (in 2-component vector of float) -0:127 smoothstep (global 2-component vector of float) +0:127 smoothstep (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:127 'inF2' (in 2-component vector of float) -0:128 sqrt (global 2-component vector of float) +0:128 sqrt (temp 2-component vector of float) 0:128 'inF0' (in 2-component vector of float) -0:129 step (global 2-component vector of float) +0:129 step (temp 2-component vector of float) 0:129 'inF0' (in 2-component vector of float) 0:129 'inF1' (in 2-component vector of float) -0:130 tangent (global 2-component vector of float) +0:130 tangent (temp 2-component vector of float) 0:130 'inF0' (in 2-component vector of float) -0:131 hyp. tangent (global 2-component vector of float) +0:131 hyp. tangent (temp 2-component vector of float) 0:131 'inF0' (in 2-component vector of float) -0:133 trunc (global 2-component vector of float) +0:133 trunc (temp 2-component vector of float) 0:133 'inF0' (in 2-component vector of float) 0:136 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 -0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (global 3-component vector of float) +0:140 Function Definition: VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3; (temp 3-component vector of float) 0:140 Function Parameters: 0:140 'inF0' (in 3-component vector of float) 0:140 'inF1' (in 3-component vector of float) @@ -1723,128 +1724,128 @@ Shader version: 450 0:140 'inU0' (in 3-component vector of uint) 0:140 'inU1' (in 3-component vector of uint) 0:? Sequence -0:141 all (global bool) +0:141 all (temp bool) 0:141 'inF0' (in 3-component vector of float) -0:142 Absolute value (global 3-component vector of float) +0:142 Absolute value (temp 3-component vector of float) 0:142 'inF0' (in 3-component vector of float) -0:143 arc cosine (global 3-component vector of float) +0:143 arc cosine (temp 3-component vector of float) 0:143 'inF0' (in 3-component vector of float) -0:144 any (global bool) +0:144 any (temp bool) 0:144 'inF0' (in 3-component vector of float) -0:145 arc sine (global 3-component vector of float) +0:145 arc sine (temp 3-component vector of float) 0:145 'inF0' (in 3-component vector of float) -0:146 floatBitsToInt (global 3-component vector of int) +0:146 floatBitsToInt (temp 3-component vector of int) 0:146 'inF0' (in 3-component vector of float) -0:147 floatBitsToUint (global 3-component vector of uint) +0:147 floatBitsToUint (temp 3-component vector of uint) 0:147 'inF0' (in 3-component vector of float) -0:148 intBitsToFloat (global 3-component vector of float) +0:148 intBitsToFloat (temp 3-component vector of float) 0:148 'inU0' (in 3-component vector of uint) -0:150 arc tangent (global 3-component vector of float) +0:150 arc tangent (temp 3-component vector of float) 0:150 'inF0' (in 3-component vector of float) -0:151 arc tangent (global 3-component vector of float) +0:151 arc tangent (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:152 Ceiling (global 3-component vector of float) +0:152 Ceiling (temp 3-component vector of float) 0:152 'inF0' (in 3-component vector of float) -0:153 clamp (global 3-component vector of float) +0:153 clamp (temp 3-component vector of float) 0:153 'inF0' (in 3-component vector of float) 0:153 'inF1' (in 3-component vector of float) 0:153 'inF2' (in 3-component vector of float) -0:154 cosine (global 3-component vector of float) +0:154 cosine (temp 3-component vector of float) 0:154 'inF0' (in 3-component vector of float) -0:155 hyp. cosine (global 3-component vector of float) +0:155 hyp. cosine (temp 3-component vector of float) 0:155 'inF0' (in 3-component vector of float) -0:? bitCount (global 3-component vector of uint) +0:? bitCount (temp 3-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:157 cross-product (global 3-component vector of float) +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:157 cross-product (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 degrees (global 3-component vector of float) +0:158 degrees (temp 3-component vector of float) 0:158 'inF0' (in 3-component vector of float) -0:159 distance (global float) +0:159 distance (temp float) 0:159 'inF0' (in 3-component vector of float) 0:159 'inF1' (in 3-component vector of float) -0:160 dot-product (global float) +0:160 dot-product (temp float) 0:160 'inF0' (in 3-component vector of float) 0:160 'inF1' (in 3-component vector of float) -0:164 exp (global 3-component vector of float) +0:164 exp (temp 3-component vector of float) 0:164 'inF0' (in 3-component vector of float) -0:165 exp2 (global 3-component vector of float) +0:165 exp2 (temp 3-component vector of float) 0:165 'inF0' (in 3-component vector of float) -0:166 face-forward (global 3-component vector of float) +0:166 face-forward (temp 3-component vector of float) 0:166 'inF0' (in 3-component vector of float) 0:166 'inF1' (in 3-component vector of float) 0:166 'inF2' (in 3-component vector of float) -0:167 findMSB (global int) +0:167 findMSB (temp int) 0:167 Constant: 0:167 7 (const int) -0:168 findLSB (global int) +0:168 findLSB (temp int) 0:168 Constant: 0:168 7 (const int) -0:169 Floor (global 3-component vector of float) +0:169 Floor (temp 3-component vector of float) 0:169 'inF0' (in 3-component vector of float) -0:171 mod (global 3-component vector of float) +0:171 mod (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 Fraction (global 3-component vector of float) +0:172 Fraction (temp 3-component vector of float) 0:172 'inF0' (in 3-component vector of float) -0:173 frexp (global 3-component vector of float) +0:173 frexp (temp 3-component vector of float) 0:173 'inF0' (in 3-component vector of float) 0:173 'inF1' (in 3-component vector of float) -0:174 isinf (global 3-component vector of bool) +0:174 isinf (temp 3-component vector of bool) 0:174 'inF0' (in 3-component vector of float) -0:175 isnan (global 3-component vector of bool) +0:175 isnan (temp 3-component vector of bool) 0:175 'inF0' (in 3-component vector of float) -0:176 ldexp (global 3-component vector of float) +0:176 ldexp (temp 3-component vector of float) 0:176 'inF0' (in 3-component vector of float) 0:176 'inF1' (in 3-component vector of float) -0:177 mix (global 3-component vector of float) +0:177 mix (temp 3-component vector of float) 0:177 'inF0' (in 3-component vector of float) 0:177 'inF1' (in 3-component vector of float) 0:177 'inF2' (in 3-component vector of float) -0:178 length (global float) +0:178 length (temp float) 0:178 'inF0' (in 3-component vector of float) -0:179 log (global 3-component vector of float) +0:179 log (temp 3-component vector of float) 0:179 'inF0' (in 3-component vector of float) 0:180 vector-scale (temp 3-component vector of float) 0:180 log2 (temp 3-component vector of float) 0:180 'inF0' (in 3-component vector of float) 0:180 Constant: 0:180 0.301030 -0:181 log2 (global 3-component vector of float) +0:181 log2 (temp 3-component vector of float) 0:181 'inF0' (in 3-component vector of float) -0:182 max (global 3-component vector of float) +0:182 max (temp 3-component vector of float) 0:182 'inF0' (in 3-component vector of float) 0:182 'inF1' (in 3-component vector of float) -0:183 min (global 3-component vector of float) +0:183 min (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:185 normalize (global 3-component vector of float) +0:185 normalize (temp 3-component vector of float) 0:185 'inF0' (in 3-component vector of float) -0:186 pow (global 3-component vector of float) +0:186 pow (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 radians (global 3-component vector of float) +0:187 radians (temp 3-component vector of float) 0:187 'inF0' (in 3-component vector of float) -0:188 reflect (global 3-component vector of float) +0:188 reflect (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:189 refract (global 3-component vector of float) +0:189 refract (temp 3-component vector of float) 0:189 'inF0' (in 3-component vector of float) 0:189 'inF1' (in 3-component vector of float) 0:189 Constant: 0:189 2.000000 -0:? bitFieldReverse (global 3-component vector of uint) +0:? bitFieldReverse (temp 3-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:191 roundEven (global 3-component vector of float) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:191 roundEven (temp 3-component vector of float) 0:191 'inF0' (in 3-component vector of float) -0:192 inverse sqrt (global 3-component vector of float) +0:192 inverse sqrt (temp 3-component vector of float) 0:192 'inF0' (in 3-component vector of float) 0:193 clamp (temp 3-component vector of float) 0:193 'inF0' (in 3-component vector of float) @@ -1852,9 +1853,9 @@ Shader version: 450 0:193 0.000000 0:193 Constant: 0:193 1.000000 -0:194 Sign (global 3-component vector of float) +0:194 Sign (temp 3-component vector of float) 0:194 'inF0' (in 3-component vector of float) -0:195 sine (global 3-component vector of float) +0:195 sine (temp 3-component vector of float) 0:195 'inF0' (in 3-component vector of float) 0:196 Sequence 0:196 move second child to first child (temp 3-component vector of float) @@ -1865,29 +1866,29 @@ Shader version: 450 0:196 'inF2' (in 3-component vector of float) 0:196 cosine (temp 3-component vector of float) 0:196 'inF0' (in 3-component vector of float) -0:197 hyp. sine (global 3-component vector of float) +0:197 hyp. sine (temp 3-component vector of float) 0:197 'inF0' (in 3-component vector of float) -0:198 smoothstep (global 3-component vector of float) +0:198 smoothstep (temp 3-component vector of float) 0:198 'inF0' (in 3-component vector of float) 0:198 'inF1' (in 3-component vector of float) 0:198 'inF2' (in 3-component vector of float) -0:199 sqrt (global 3-component vector of float) +0:199 sqrt (temp 3-component vector of float) 0:199 'inF0' (in 3-component vector of float) -0:200 step (global 3-component vector of float) +0:200 step (temp 3-component vector of float) 0:200 'inF0' (in 3-component vector of float) 0:200 'inF1' (in 3-component vector of float) -0:201 tangent (global 3-component vector of float) +0:201 tangent (temp 3-component vector of float) 0:201 'inF0' (in 3-component vector of float) -0:202 hyp. tangent (global 3-component vector of float) +0:202 hyp. tangent (temp 3-component vector of float) 0:202 'inF0' (in 3-component vector of float) -0:204 trunc (global 3-component vector of float) +0:204 trunc (temp 3-component vector of float) 0:204 'inF0' (in 3-component vector of float) 0:207 Branch: Return with expression 0:? Constant: 0:? 1.000000 0:? 2.000000 0:? 3.000000 -0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (global 4-component vector of float) +0:211 Function Definition: VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4; (temp 4-component vector of float) 0:211 Function Parameters: 0:211 'inF0' (in 4-component vector of float) 0:211 'inF1' (in 4-component vector of float) @@ -1895,49 +1896,49 @@ Shader version: 450 0:211 'inU0' (in 4-component vector of uint) 0:211 'inU1' (in 4-component vector of uint) 0:? Sequence -0:212 all (global bool) +0:212 all (temp bool) 0:212 'inF0' (in 4-component vector of float) -0:213 Absolute value (global 4-component vector of float) +0:213 Absolute value (temp 4-component vector of float) 0:213 'inF0' (in 4-component vector of float) -0:214 arc cosine (global 4-component vector of float) +0:214 arc cosine (temp 4-component vector of float) 0:214 'inF0' (in 4-component vector of float) -0:215 any (global bool) +0:215 any (temp bool) 0:215 'inF0' (in 4-component vector of float) -0:216 arc sine (global 4-component vector of float) +0:216 arc sine (temp 4-component vector of float) 0:216 'inF0' (in 4-component vector of float) -0:217 floatBitsToInt (global 4-component vector of int) +0:217 floatBitsToInt (temp 4-component vector of int) 0:217 'inF0' (in 4-component vector of float) -0:218 floatBitsToUint (global 4-component vector of uint) +0:218 floatBitsToUint (temp 4-component vector of uint) 0:218 'inF0' (in 4-component vector of float) -0:219 intBitsToFloat (global 4-component vector of float) +0:219 intBitsToFloat (temp 4-component vector of float) 0:219 'inU0' (in 4-component vector of uint) -0:221 arc tangent (global 4-component vector of float) +0:221 arc tangent (temp 4-component vector of float) 0:221 'inF0' (in 4-component vector of float) -0:222 arc tangent (global 4-component vector of float) +0:222 arc tangent (temp 4-component vector of float) 0:222 'inF0' (in 4-component vector of float) 0:222 'inF1' (in 4-component vector of float) -0:223 Ceiling (global 4-component vector of float) +0:223 Ceiling (temp 4-component vector of float) 0:223 'inF0' (in 4-component vector of float) -0:224 clamp (global 4-component vector of float) +0:224 clamp (temp 4-component vector of float) 0:224 'inF0' (in 4-component vector of float) 0:224 'inF1' (in 4-component vector of float) 0:224 'inF2' (in 4-component vector of float) -0:225 cosine (global 4-component vector of float) +0:225 cosine (temp 4-component vector of float) 0:225 'inF0' (in 4-component vector of float) -0:226 hyp. cosine (global 4-component vector of float) +0:226 hyp. cosine (temp 4-component vector of float) 0:226 'inF0' (in 4-component vector of float) -0:? bitCount (global 4-component vector of uint) +0:? bitCount (temp 4-component vector of int) 0:? Constant: -0:? 7 (const uint) -0:? 3 (const uint) -0:? 5 (const uint) -0:? 2 (const uint) -0:228 degrees (global 4-component vector of float) +0:? 7 (const int) +0:? 3 (const int) +0:? 5 (const int) +0:? 2 (const int) +0:228 degrees (temp 4-component vector of float) 0:228 'inF0' (in 4-component vector of float) -0:229 distance (global float) +0:229 distance (temp float) 0:229 'inF0' (in 4-component vector of float) 0:229 'inF1' (in 4-component vector of float) -0:230 dot-product (global float) +0:230 dot-product (temp float) 0:230 'inF0' (in 4-component vector of float) 0:230 'inF1' (in 4-component vector of float) 0:231 Construct vec4 (temp 4-component vector of float) @@ -1960,82 +1961,82 @@ Shader version: 450 0:231 'inF1' (in 4-component vector of float) 0:231 Constant: 0:231 3 (const int) -0:235 exp (global 4-component vector of float) +0:235 exp (temp 4-component vector of float) 0:235 'inF0' (in 4-component vector of float) -0:236 exp2 (global 4-component vector of float) +0:236 exp2 (temp 4-component vector of float) 0:236 'inF0' (in 4-component vector of float) -0:237 face-forward (global 4-component vector of float) +0:237 face-forward (temp 4-component vector of float) 0:237 'inF0' (in 4-component vector of float) 0:237 'inF1' (in 4-component vector of float) 0:237 'inF2' (in 4-component vector of float) -0:238 findMSB (global int) +0:238 findMSB (temp int) 0:238 Constant: 0:238 7 (const int) -0:239 findLSB (global int) +0:239 findLSB (temp int) 0:239 Constant: 0:239 7 (const int) -0:240 Floor (global 4-component vector of float) +0:240 Floor (temp 4-component vector of float) 0:240 'inF0' (in 4-component vector of float) -0:242 mod (global 4-component vector of float) +0:242 mod (temp 4-component vector of float) 0:242 'inF0' (in 4-component vector of float) 0:242 'inF1' (in 4-component vector of float) -0:243 Fraction (global 4-component vector of float) +0:243 Fraction (temp 4-component vector of float) 0:243 'inF0' (in 4-component vector of float) -0:244 frexp (global 4-component vector of float) +0:244 frexp (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 isinf (global 4-component vector of bool) +0:245 isinf (temp 4-component vector of bool) 0:245 'inF0' (in 4-component vector of float) -0:246 isnan (global 4-component vector of bool) +0:246 isnan (temp 4-component vector of bool) 0:246 'inF0' (in 4-component vector of float) -0:247 ldexp (global 4-component vector of float) +0:247 ldexp (temp 4-component vector of float) 0:247 'inF0' (in 4-component vector of float) 0:247 'inF1' (in 4-component vector of float) -0:248 mix (global 4-component vector of float) +0:248 mix (temp 4-component vector of float) 0:248 'inF0' (in 4-component vector of float) 0:248 'inF1' (in 4-component vector of float) 0:248 'inF2' (in 4-component vector of float) -0:249 length (global float) +0:249 length (temp float) 0:249 'inF0' (in 4-component vector of float) -0:250 log (global 4-component vector of float) +0:250 log (temp 4-component vector of float) 0:250 'inF0' (in 4-component vector of float) 0:251 vector-scale (temp 4-component vector of float) 0:251 log2 (temp 4-component vector of float) 0:251 'inF0' (in 4-component vector of float) 0:251 Constant: 0:251 0.301030 -0:252 log2 (global 4-component vector of float) +0:252 log2 (temp 4-component vector of float) 0:252 'inF0' (in 4-component vector of float) -0:253 max (global 4-component vector of float) +0:253 max (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 min (global 4-component vector of float) +0:254 min (temp 4-component vector of float) 0:254 'inF0' (in 4-component vector of float) 0:254 'inF1' (in 4-component vector of float) -0:256 normalize (global 4-component vector of float) +0:256 normalize (temp 4-component vector of float) 0:256 'inF0' (in 4-component vector of float) -0:257 pow (global 4-component vector of float) +0:257 pow (temp 4-component vector of float) 0:257 'inF0' (in 4-component vector of float) 0:257 'inF1' (in 4-component vector of float) -0:258 radians (global 4-component vector of float) +0:258 radians (temp 4-component vector of float) 0:258 'inF0' (in 4-component vector of float) -0:259 reflect (global 4-component vector of float) +0:259 reflect (temp 4-component vector of float) 0:259 'inF0' (in 4-component vector of float) 0:259 'inF1' (in 4-component vector of float) -0:260 refract (global 4-component vector of float) +0:260 refract (temp 4-component vector of float) 0:260 'inF0' (in 4-component vector of float) 0:260 'inF1' (in 4-component vector of float) 0:260 Constant: 0:260 2.000000 -0:? bitFieldReverse (global 4-component vector of uint) +0:? bitFieldReverse (temp 4-component vector of int) 0:? Constant: -0:? 1 (const uint) -0:? 2 (const uint) -0:? 3 (const uint) -0:? 4 (const uint) -0:262 roundEven (global 4-component vector of float) +0:? 1 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:262 roundEven (temp 4-component vector of float) 0:262 'inF0' (in 4-component vector of float) -0:263 inverse sqrt (global 4-component vector of float) +0:263 inverse sqrt (temp 4-component vector of float) 0:263 'inF0' (in 4-component vector of float) 0:264 clamp (temp 4-component vector of float) 0:264 'inF0' (in 4-component vector of float) @@ -2043,9 +2044,9 @@ Shader version: 450 0:264 0.000000 0:264 Constant: 0:264 1.000000 -0:265 Sign (global 4-component vector of float) +0:265 Sign (temp 4-component vector of float) 0:265 'inF0' (in 4-component vector of float) -0:266 sine (global 4-component vector of float) +0:266 sine (temp 4-component vector of float) 0:266 'inF0' (in 4-component vector of float) 0:267 Sequence 0:267 move second child to first child (temp 4-component vector of float) @@ -2056,22 +2057,22 @@ Shader version: 450 0:267 'inF2' (in 4-component vector of float) 0:267 cosine (temp 4-component vector of float) 0:267 'inF0' (in 4-component vector of float) -0:268 hyp. sine (global 4-component vector of float) +0:268 hyp. sine (temp 4-component vector of float) 0:268 'inF0' (in 4-component vector of float) -0:269 smoothstep (global 4-component vector of float) +0:269 smoothstep (temp 4-component vector of float) 0:269 'inF0' (in 4-component vector of float) 0:269 'inF1' (in 4-component vector of float) 0:269 'inF2' (in 4-component vector of float) -0:270 sqrt (global 4-component vector of float) +0:270 sqrt (temp 4-component vector of float) 0:270 'inF0' (in 4-component vector of float) -0:271 step (global 4-component vector of float) +0:271 step (temp 4-component vector of float) 0:271 'inF0' (in 4-component vector of float) 0:271 'inF1' (in 4-component vector of float) -0:272 tangent (global 4-component vector of float) +0:272 tangent (temp 4-component vector of float) 0:272 'inF0' (in 4-component vector of float) -0:273 hyp. tangent (global 4-component vector of float) +0:273 hyp. tangent (temp 4-component vector of float) 0:273 'inF0' (in 4-component vector of float) -0:275 trunc (global 4-component vector of float) +0:275 trunc (temp 4-component vector of float) 0:275 'inF0' (in 4-component vector of float) 0:278 Branch: Return with expression 0:? Constant: @@ -2079,91 +2080,91 @@ Shader version: 450 0:? 2.000000 0:? 3.000000 0:? 4.000000 -0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (global 2X2 matrix of float) +0:336 Function Definition: VertexShaderFunction2x2(mf22;mf22;mf22; (temp 2X2 matrix of float) 0:336 Function Parameters: 0:336 'inF0' (in 2X2 matrix of float) 0:336 'inF1' (in 2X2 matrix of float) 0:336 'inF2' (in 2X2 matrix of float) 0:? Sequence -0:338 all (global bool) +0:338 all (temp bool) 0:338 'inF0' (in 2X2 matrix of float) -0:338 Absolute value (global 2X2 matrix of float) +0:338 Absolute value (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc cosine (global 2X2 matrix of float) +0:338 arc cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 any (global bool) +0:338 any (temp bool) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc sine (global 2X2 matrix of float) +0:338 arc sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (global 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 arc tangent (global 2X2 matrix of float) +0:338 arc tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 Ceiling (global 2X2 matrix of float) +0:338 Ceiling (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 clamp (global 2X2 matrix of float) +0:338 clamp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 cosine (global 2X2 matrix of float) +0:338 cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. cosine (global 2X2 matrix of float) +0:338 hyp. cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 degrees (global 2X2 matrix of float) +0:338 degrees (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 determinant (global float) +0:338 determinant (temp float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 exp (global 2X2 matrix of float) +0:338 exp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 exp2 (global 2X2 matrix of float) +0:338 exp2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 findMSB (global int) +0:338 findMSB (temp int) 0:338 Constant: 0:338 7 (const int) -0:338 findLSB (global int) +0:338 findLSB (temp int) 0:338 Constant: 0:338 7 (const int) -0:338 Floor (global 2X2 matrix of float) +0:338 Floor (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 mod (global 2X2 matrix of float) +0:338 mod (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 Fraction (global 2X2 matrix of float) +0:338 Fraction (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 frexp (global 2X2 matrix of float) +0:338 frexp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 ldexp (global 2X2 matrix of float) +0:338 ldexp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 mix (global 2X2 matrix of float) +0:338 mix (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 log (global 2X2 matrix of float) +0:338 log (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 matrix-scale (temp 2X2 matrix of float) 0:338 log2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 Constant: 0:338 0.301030 -0:338 log2 (global 2X2 matrix of float) +0:338 log2 (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 max (global 2X2 matrix of float) +0:338 max (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 min (global 2X2 matrix of float) +0:338 min (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 pow (global 2X2 matrix of float) +0:338 pow (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 radians (global 2X2 matrix of float) +0:338 radians (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 roundEven (global 2X2 matrix of float) +0:338 roundEven (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 inverse sqrt (global 2X2 matrix of float) +0:338 inverse sqrt (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 clamp (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) @@ -2171,9 +2172,9 @@ Shader version: 450 0:338 0.000000 0:338 Constant: 0:338 1.000000 -0:338 Sign (global 2X2 matrix of float) +0:338 Sign (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 sine (global 2X2 matrix of float) +0:338 sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 Sequence 0:338 move second child to first child (temp 2X2 matrix of float) @@ -2184,24 +2185,24 @@ Shader version: 450 0:338 'inF2' (in 2X2 matrix of float) 0:338 cosine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. sine (global 2X2 matrix of float) +0:338 hyp. sine (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 smoothstep (global 2X2 matrix of float) +0:338 smoothstep (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) 0:338 'inF2' (in 2X2 matrix of float) -0:338 sqrt (global 2X2 matrix of float) +0:338 sqrt (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 step (global 2X2 matrix of float) +0:338 step (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:338 'inF1' (in 2X2 matrix of float) -0:338 tangent (global 2X2 matrix of float) +0:338 tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 hyp. tangent (global 2X2 matrix of float) +0:338 hyp. tangent (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 transpose (global 2X2 matrix of float) +0:338 transpose (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) -0:338 trunc (global 2X2 matrix of float) +0:338 trunc (temp 2X2 matrix of float) 0:338 'inF0' (in 2X2 matrix of float) 0:341 Branch: Return with expression 0:? Constant: @@ -2209,91 +2210,91 @@ Shader version: 450 0:? 2.000000 0:? 2.000000 0:? 2.000000 -0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (global 3X3 matrix of float) +0:345 Function Definition: VertexShaderFunction3x3(mf33;mf33;mf33; (temp 3X3 matrix of float) 0:345 Function Parameters: 0:345 'inF0' (in 3X3 matrix of float) 0:345 'inF1' (in 3X3 matrix of float) 0:345 'inF2' (in 3X3 matrix of float) 0:? Sequence -0:347 all (global bool) +0:347 all (temp bool) 0:347 'inF0' (in 3X3 matrix of float) -0:347 Absolute value (global 3X3 matrix of float) +0:347 Absolute value (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc cosine (global 3X3 matrix of float) +0:347 arc cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 any (global bool) +0:347 any (temp bool) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc sine (global 3X3 matrix of float) +0:347 arc sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (global 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 arc tangent (global 3X3 matrix of float) +0:347 arc tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 Ceiling (global 3X3 matrix of float) +0:347 Ceiling (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 clamp (global 3X3 matrix of float) +0:347 clamp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 cosine (global 3X3 matrix of float) +0:347 cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. cosine (global 3X3 matrix of float) +0:347 hyp. cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 degrees (global 3X3 matrix of float) +0:347 degrees (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 determinant (global float) +0:347 determinant (temp float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 exp (global 3X3 matrix of float) +0:347 exp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 exp2 (global 3X3 matrix of float) +0:347 exp2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 findMSB (global int) +0:347 findMSB (temp int) 0:347 Constant: 0:347 7 (const int) -0:347 findLSB (global int) +0:347 findLSB (temp int) 0:347 Constant: 0:347 7 (const int) -0:347 Floor (global 3X3 matrix of float) +0:347 Floor (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 mod (global 3X3 matrix of float) +0:347 mod (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 Fraction (global 3X3 matrix of float) +0:347 Fraction (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 frexp (global 3X3 matrix of float) +0:347 frexp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 ldexp (global 3X3 matrix of float) +0:347 ldexp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 mix (global 3X3 matrix of float) +0:347 mix (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 log (global 3X3 matrix of float) +0:347 log (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 matrix-scale (temp 3X3 matrix of float) 0:347 log2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 Constant: 0:347 0.301030 -0:347 log2 (global 3X3 matrix of float) +0:347 log2 (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 max (global 3X3 matrix of float) +0:347 max (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 min (global 3X3 matrix of float) +0:347 min (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 pow (global 3X3 matrix of float) +0:347 pow (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 radians (global 3X3 matrix of float) +0:347 radians (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 roundEven (global 3X3 matrix of float) +0:347 roundEven (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 inverse sqrt (global 3X3 matrix of float) +0:347 inverse sqrt (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 clamp (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) @@ -2301,9 +2302,9 @@ Shader version: 450 0:347 0.000000 0:347 Constant: 0:347 1.000000 -0:347 Sign (global 3X3 matrix of float) +0:347 Sign (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 sine (global 3X3 matrix of float) +0:347 sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 Sequence 0:347 move second child to first child (temp 3X3 matrix of float) @@ -2314,24 +2315,24 @@ Shader version: 450 0:347 'inF2' (in 3X3 matrix of float) 0:347 cosine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. sine (global 3X3 matrix of float) +0:347 hyp. sine (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 smoothstep (global 3X3 matrix of float) +0:347 smoothstep (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) 0:347 'inF2' (in 3X3 matrix of float) -0:347 sqrt (global 3X3 matrix of float) +0:347 sqrt (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 step (global 3X3 matrix of float) +0:347 step (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:347 'inF1' (in 3X3 matrix of float) -0:347 tangent (global 3X3 matrix of float) +0:347 tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 hyp. tangent (global 3X3 matrix of float) +0:347 hyp. tangent (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 transpose (global 3X3 matrix of float) +0:347 transpose (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) -0:347 trunc (global 3X3 matrix of float) +0:347 trunc (temp 3X3 matrix of float) 0:347 'inF0' (in 3X3 matrix of float) 0:350 Branch: Return with expression 0:? Constant: @@ -2344,91 +2345,91 @@ Shader version: 450 0:? 3.000000 0:? 3.000000 0:? 3.000000 -0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (global 4X4 matrix of float) +0:354 Function Definition: VertexShaderFunction4x4(mf44;mf44;mf44; (temp 4X4 matrix of float) 0:354 Function Parameters: 0:354 'inF0' (in 4X4 matrix of float) 0:354 'inF1' (in 4X4 matrix of float) 0:354 'inF2' (in 4X4 matrix of float) 0:? Sequence -0:356 all (global bool) +0:356 all (temp bool) 0:356 'inF0' (in 4X4 matrix of float) -0:356 Absolute value (global 4X4 matrix of float) +0:356 Absolute value (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc cosine (global 4X4 matrix of float) +0:356 arc cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 any (global bool) +0:356 any (temp bool) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc sine (global 4X4 matrix of float) +0:356 arc sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (global 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 arc tangent (global 4X4 matrix of float) +0:356 arc tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 Ceiling (global 4X4 matrix of float) +0:356 Ceiling (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 clamp (global 4X4 matrix of float) +0:356 clamp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 cosine (global 4X4 matrix of float) +0:356 cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. cosine (global 4X4 matrix of float) +0:356 hyp. cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 degrees (global 4X4 matrix of float) +0:356 degrees (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 determinant (global float) +0:356 determinant (temp float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 exp (global 4X4 matrix of float) +0:356 exp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 exp2 (global 4X4 matrix of float) +0:356 exp2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 findMSB (global int) +0:356 findMSB (temp int) 0:356 Constant: 0:356 7 (const int) -0:356 findLSB (global int) +0:356 findLSB (temp int) 0:356 Constant: 0:356 7 (const int) -0:356 Floor (global 4X4 matrix of float) +0:356 Floor (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 mod (global 4X4 matrix of float) +0:356 mod (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 Fraction (global 4X4 matrix of float) +0:356 Fraction (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 frexp (global 4X4 matrix of float) +0:356 frexp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 ldexp (global 4X4 matrix of float) +0:356 ldexp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 mix (global 4X4 matrix of float) +0:356 mix (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 log (global 4X4 matrix of float) +0:356 log (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 matrix-scale (temp 4X4 matrix of float) 0:356 log2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 Constant: 0:356 0.301030 -0:356 log2 (global 4X4 matrix of float) +0:356 log2 (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 max (global 4X4 matrix of float) +0:356 max (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 min (global 4X4 matrix of float) +0:356 min (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 pow (global 4X4 matrix of float) +0:356 pow (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 radians (global 4X4 matrix of float) +0:356 radians (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 roundEven (global 4X4 matrix of float) +0:356 roundEven (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 inverse sqrt (global 4X4 matrix of float) +0:356 inverse sqrt (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 clamp (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) @@ -2436,9 +2437,9 @@ Shader version: 450 0:356 0.000000 0:356 Constant: 0:356 1.000000 -0:356 Sign (global 4X4 matrix of float) +0:356 Sign (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 sine (global 4X4 matrix of float) +0:356 sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 Sequence 0:356 move second child to first child (temp 4X4 matrix of float) @@ -2449,24 +2450,24 @@ Shader version: 450 0:356 'inF2' (in 4X4 matrix of float) 0:356 cosine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. sine (global 4X4 matrix of float) +0:356 hyp. sine (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 smoothstep (global 4X4 matrix of float) +0:356 smoothstep (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) 0:356 'inF2' (in 4X4 matrix of float) -0:356 sqrt (global 4X4 matrix of float) +0:356 sqrt (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 step (global 4X4 matrix of float) +0:356 step (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:356 'inF1' (in 4X4 matrix of float) -0:356 tangent (global 4X4 matrix of float) +0:356 tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 hyp. tangent (global 4X4 matrix of float) +0:356 hyp. tangent (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 transpose (global 4X4 matrix of float) +0:356 transpose (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) -0:356 trunc (global 4X4 matrix of float) +0:356 trunc (temp 4X4 matrix of float) 0:356 'inF0' (in 4X4 matrix of float) 0:359 Branch: Return with expression 0:? Constant: @@ -2486,7 +2487,7 @@ Shader version: 450 0:? 4.000000 0:? 4.000000 0:? 4.000000 -0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (global void) +0:377 Function Definition: TestGenMul2(f1;f1;vf2;vf2;mf22;mf22; (temp void) 0:377 Function Parameters: 0:377 'inF0' (in float) 0:377 'inF1' (in float) @@ -2516,7 +2517,7 @@ Shader version: 450 0:378 Sequence 0:378 move second child to first child (temp float) 0:378 'r3' (temp float) -0:378 dot-product (global float) +0:378 dot-product (temp float) 0:378 'inFV0' (in 2-component vector of float) 0:378 'inFV1' (in 2-component vector of float) 0:378 Sequence @@ -2549,7 +2550,7 @@ Shader version: 450 0:378 matrix-multiply (temp 2X2 matrix of float) 0:378 'inFM1' (in 2X2 matrix of float) 0:378 'inFM0' (in 2X2 matrix of float) -0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (global void) +0:384 Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void) 0:384 Function Parameters: 0:384 'inF0' (in float) 0:384 'inF1' (in float) @@ -2579,7 +2580,7 @@ Shader version: 450 0:385 Sequence 0:385 move second child to first child (temp float) 0:385 'r3' (temp float) -0:385 dot-product (global float) +0:385 dot-product (temp float) 0:385 'inFV0' (in 3-component vector of float) 0:385 'inFV1' (in 3-component vector of float) 0:385 Sequence @@ -2612,7 +2613,7 @@ Shader version: 450 0:385 matrix-multiply (temp 3X3 matrix of float) 0:385 'inFM1' (in 3X3 matrix of float) 0:385 'inFM0' (in 3X3 matrix of float) -0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (global void) +0:391 Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void) 0:391 Function Parameters: 0:391 'inF0' (in float) 0:391 'inF1' (in float) @@ -2642,7 +2643,7 @@ Shader version: 450 0:392 Sequence 0:392 move second child to first child (temp float) 0:392 'r3' (temp float) -0:392 dot-product (global float) +0:392 dot-product (temp float) 0:392 'inFV0' (in 4-component vector of float) 0:392 'inFV1' (in 4-component vector of float) 0:392 Sequence @@ -2675,7 +2676,7 @@ Shader version: 450 0:392 matrix-multiply (temp 4X4 matrix of float) 0:392 'inFM1' (in 4X4 matrix of float) 0:392 'inFM0' (in 4X4 matrix of float) -0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (global void) +0:401 Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24; (temp void) 0:401 Function Parameters: 0:401 'inF0' (in float) 0:401 'inF1' (in float) @@ -2720,13 +2721,13 @@ Shader version: 450 0:407 Sequence 0:407 move second child to first child (temp float) 0:407 'r05' (temp float) -0:407 dot-product (global float) +0:407 dot-product (temp float) 0:407 'inFV2' (in 2-component vector of float) 0:407 'inFV2' (in 2-component vector of float) 0:408 Sequence 0:408 move second child to first child (temp float) 0:408 'r06' (temp float) -0:408 dot-product (global float) +0:408 dot-product (temp float) 0:408 'inFV3' (in 3-component vector of float) 0:408 'inFV3' (in 3-component vector of float) 0:409 Sequence @@ -2793,7 +2794,7 @@ Shader version: 450 // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 1238 +// Id's are bound by 1240 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -2871,57 +2872,57 @@ Shader version: 450 Name 126 "inFM3x3" Name 127 "inFM3x4" Name 128 "inFM2x4" - Name 183 "ResType" - Name 317 "ResType" - Name 465 "ResType" - Name 618 "ResType" - Name 751 "ResType" - Name 871 "ResType" - Name 994 "ResType" - Name 1062 "r0" - Name 1066 "r1" - Name 1070 "r2" - Name 1074 "r3" - Name 1078 "r4" - Name 1082 "r5" - Name 1086 "r6" - Name 1090 "r7" - Name 1094 "r8" - Name 1098 "r0" - Name 1102 "r1" - Name 1106 "r2" - Name 1110 "r3" - Name 1114 "r4" - Name 1118 "r5" - Name 1122 "r6" - Name 1126 "r7" - Name 1130 "r8" - Name 1134 "r0" - Name 1138 "r1" - Name 1142 "r2" - Name 1146 "r3" - Name 1150 "r4" - Name 1154 "r5" - Name 1158 "r6" - Name 1162 "r7" - Name 1166 "r8" - Name 1170 "r00" - Name 1174 "r01" - Name 1178 "r02" - Name 1182 "r03" - Name 1186 "r04" - Name 1190 "r05" - Name 1194 "r06" - Name 1198 "r07" - Name 1202 "r08" - Name 1206 "r09" - Name 1210 "r10" - Name 1214 "r11" - Name 1218 "r12" - Name 1222 "r13" - Name 1226 "r14" - Name 1230 "r15" - Name 1234 "r16" + Name 182 "ResType" + Name 316 "ResType" + Name 464 "ResType" + Name 620 "ResType" + Name 753 "ResType" + Name 873 "ResType" + Name 996 "ResType" + Name 1064 "r0" + Name 1068 "r1" + Name 1072 "r2" + Name 1076 "r3" + Name 1080 "r4" + Name 1084 "r5" + Name 1088 "r6" + Name 1092 "r7" + Name 1096 "r8" + Name 1100 "r0" + Name 1104 "r1" + Name 1108 "r2" + Name 1112 "r3" + Name 1116 "r4" + Name 1120 "r5" + Name 1124 "r6" + Name 1128 "r7" + Name 1132 "r8" + Name 1136 "r0" + Name 1140 "r1" + Name 1144 "r2" + Name 1148 "r3" + Name 1152 "r4" + Name 1156 "r5" + Name 1160 "r6" + Name 1164 "r7" + Name 1168 "r8" + Name 1172 "r00" + Name 1176 "r01" + Name 1180 "r02" + Name 1184 "r03" + Name 1188 "r04" + Name 1192 "r05" + Name 1196 "r06" + Name 1200 "r07" + Name 1204 "r08" + Name 1208 "r09" + Name 1212 "r10" + Name 1216 "r11" + Name 1220 "r12" + Name 1224 "r13" + Name 1228 "r14" + Name 1232 "r15" + Name 1236 "r16" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -2968,49 +2969,52 @@ Shader version: 450 119: TypeFunction 2 7(ptr) 7(ptr) 25(ptr) 37(ptr) 112(ptr) 114(ptr) 69(ptr) 116(ptr) 118(ptr) 132: TypeBool 143: TypeInt 32 1 - 164: 8(int) Constant 7 - 172: 143(int) Constant 7 - 183(ResType): TypeStruct 6(float) 143(int) - 202: 6(float) Constant 1050288283 - 217: 8(int) Constant 2 - 224: 6(float) Constant 0 - 225: 6(float) Constant 1065353216 - 267: TypeVector 143(int) 2 - 288: 8(int) Constant 3 - 289: 26(ivec2) ConstantComposite 164 288 - 317(ResType): TypeStruct 24(fvec2) 267(ivec2) - 322: TypeVector 132(bool) 2 - 360: 6(float) Constant 1073741824 - 362: 8(int) Constant 1 - 363: 26(ivec2) ConstantComposite 362 217 - 398: 24(fvec2) ConstantComposite 225 360 - 412: TypeVector 143(int) 3 - 433: 8(int) Constant 5 - 434: 38(ivec3) ConstantComposite 164 288 433 - 465(ResType): TypeStruct 36(fvec3) 412(ivec3) - 470: TypeVector 132(bool) 3 - 509: 38(ivec3) ConstantComposite 362 217 288 - 544: 6(float) Constant 1077936128 - 545: 36(fvec3) ConstantComposite 225 360 544 - 559: TypeVector 143(int) 4 - 580: 50(ivec4) ConstantComposite 164 288 433 217 - 618(ResType): TypeStruct 48(fvec4) 559(ivec4) - 623: TypeVector 132(bool) 4 - 662: 8(int) Constant 4 - 663: 50(ivec4) ConstantComposite 362 217 288 662 - 698: 6(float) Constant 1082130432 - 699: 48(fvec4) ConstantComposite 225 360 544 698 - 751(ResType): TypeStruct 60 267(ivec2) - 815: 24(fvec2) ConstantComposite 360 360 - 816: 60 ConstantComposite 815 815 - 871(ResType): TypeStruct 68 412(ivec3) - 935: 36(fvec3) ConstantComposite 544 544 544 - 936: 68 ConstantComposite 935 935 935 - 994(ResType): TypeStruct 76 559(ivec4) - 1058: 48(fvec4) ConstantComposite 698 698 698 698 - 1059: 76 ConstantComposite 1058 1058 1058 1058 + 164: 143(int) Constant 7 + 182(ResType): TypeStruct 6(float) 143(int) + 201: 6(float) Constant 1050288283 + 216: 143(int) Constant 2 + 223: 6(float) Constant 0 + 224: 6(float) Constant 1065353216 + 266: TypeVector 143(int) 2 + 287: 143(int) Constant 3 + 288: 266(ivec2) ConstantComposite 164 287 + 316(ResType): TypeStruct 24(fvec2) 266(ivec2) + 321: TypeVector 132(bool) 2 + 359: 6(float) Constant 1073741824 + 361: 143(int) Constant 1 + 362: 266(ivec2) ConstantComposite 361 216 + 397: 24(fvec2) ConstantComposite 224 359 + 411: TypeVector 143(int) 3 + 432: 143(int) Constant 5 + 433: 411(ivec3) ConstantComposite 164 287 432 + 464(ResType): TypeStruct 36(fvec3) 411(ivec3) + 469: TypeVector 132(bool) 3 + 508: 411(ivec3) ConstantComposite 361 216 287 + 543: 6(float) Constant 1077936128 + 544: 36(fvec3) ConstantComposite 224 359 543 + 558: TypeVector 143(int) 4 + 579: 558(ivec4) ConstantComposite 164 287 432 216 + 589: 8(int) Constant 1 + 595: 8(int) Constant 2 + 598: 8(int) Constant 3 + 620(ResType): TypeStruct 48(fvec4) 558(ivec4) + 625: TypeVector 132(bool) 4 + 664: 143(int) Constant 4 + 665: 558(ivec4) ConstantComposite 361 216 287 664 + 700: 6(float) Constant 1082130432 + 701: 48(fvec4) ConstantComposite 224 359 543 700 + 753(ResType): TypeStruct 60 266(ivec2) + 817: 24(fvec2) ConstantComposite 359 359 + 818: 60 ConstantComposite 817 817 + 873(ResType): TypeStruct 68 411(ivec3) + 937: 36(fvec3) ConstantComposite 543 543 543 + 938: 68 ConstantComposite 937 937 937 + 996(ResType): TypeStruct 76 558(ivec4) + 1060: 48(fvec4) ConstantComposite 700 700 700 700 + 1061: 76 ConstantComposite 1060 1060 1060 1060 4(VertexShaderFunction): 2 Function None 3 5: Label + Return FunctionEnd 16(VertexShaderFunctionS(f1;f1;f1;u1;u1;): 6(float) Function None 10 11(inF0): 7(ptr) FunctionParameter @@ -3050,98 +3054,98 @@ Shader version: 450 161: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 160 162: 6(float) Load 11(inF0) 163: 6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 162 - 165: 8(int) BitCount 164 + 165: 143(int) BitCount 164 166: 6(float) Load 11(inF0) 167: 6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 166 168: 6(float) Load 11(inF0) 169: 6(float) ExtInst 1(GLSL.std.450) 27(Exp) 168 170: 6(float) Load 11(inF0) 171: 6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 170 - 173: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 174: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 175: 6(float) Load 11(inF0) - 176: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 175 - 177: 6(float) Load 11(inF0) - 178: 6(float) Load 12(inF1) - 179: 6(float) FMod 177 178 - 180: 6(float) Load 11(inF0) - 181: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 180 - 182: 6(float) Load 11(inF0) - 184:183(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 182 - 185: 143(int) CompositeExtract 184 1 - Store 12(inF1) 185 - 186: 6(float) CompositeExtract 184 0 - 187: 6(float) Load 11(inF0) - 188: 132(bool) IsInf 187 - 189: 6(float) Load 11(inF0) - 190: 132(bool) IsNan 189 - 191: 6(float) Load 11(inF0) - 192: 6(float) Load 12(inF1) - 193: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 191 192 - 194: 6(float) Load 11(inF0) - 195: 6(float) Load 12(inF1) - 196: 6(float) Load 13(inF2) - 197: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 194 195 196 - 198: 6(float) Load 11(inF0) - 199: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 198 - 200: 6(float) Load 11(inF0) - 201: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 200 - 203: 6(float) FMul 201 202 - 204: 6(float) Load 11(inF0) - 205: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 204 - 206: 6(float) Load 11(inF0) - 207: 6(float) Load 12(inF1) - 208: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 206 207 - 209: 6(float) Load 11(inF0) - 210: 6(float) Load 12(inF1) - 211: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 209 210 - 212: 6(float) Load 11(inF0) - 213: 6(float) Load 12(inF1) - 214: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 212 213 - 215: 6(float) Load 11(inF0) - 216: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 215 - 218: 8(int) BitReverse 217 - 219: 6(float) Load 11(inF0) - 220: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 219 - 221: 6(float) Load 11(inF0) - 222: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 221 - 223: 6(float) Load 11(inF0) - 226: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 223 224 225 - 227: 6(float) Load 11(inF0) - 228: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 227 - 229: 6(float) Load 11(inF0) - 230: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 229 - 231: 6(float) Load 11(inF0) - 232: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 231 - Store 12(inF1) 232 - 233: 6(float) Load 11(inF0) - 234: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 233 - Store 13(inF2) 234 - 235: 6(float) Load 11(inF0) - 236: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 235 - 237: 6(float) Load 11(inF0) - 238: 6(float) Load 12(inF1) - 239: 6(float) Load 13(inF2) - 240: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 237 238 239 - 241: 6(float) Load 11(inF0) - 242: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 241 - 243: 6(float) Load 11(inF0) - 244: 6(float) Load 12(inF1) - 245: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 243 244 - 246: 6(float) Load 11(inF0) - 247: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 246 - 248: 6(float) Load 11(inF0) - 249: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 248 - 250: 6(float) Load 11(inF0) - 251: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 250 - ReturnValue 224 + 172: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 173: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 174: 6(float) Load 11(inF0) + 175: 6(float) ExtInst 1(GLSL.std.450) 8(Floor) 174 + 176: 6(float) Load 11(inF0) + 177: 6(float) Load 12(inF1) + 178: 6(float) FMod 176 177 + 179: 6(float) Load 11(inF0) + 180: 6(float) ExtInst 1(GLSL.std.450) 10(Fract) 179 + 181: 6(float) Load 11(inF0) + 183:182(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 181 + 184: 143(int) CompositeExtract 183 1 + Store 12(inF1) 184 + 185: 6(float) CompositeExtract 183 0 + 186: 6(float) Load 11(inF0) + 187: 132(bool) IsInf 186 + 188: 6(float) Load 11(inF0) + 189: 132(bool) IsNan 188 + 190: 6(float) Load 11(inF0) + 191: 6(float) Load 12(inF1) + 192: 6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 190 191 + 193: 6(float) Load 11(inF0) + 194: 6(float) Load 12(inF1) + 195: 6(float) Load 13(inF2) + 196: 6(float) ExtInst 1(GLSL.std.450) 46(FMix) 193 194 195 + 197: 6(float) Load 11(inF0) + 198: 6(float) ExtInst 1(GLSL.std.450) 28(Log) 197 + 199: 6(float) Load 11(inF0) + 200: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 199 + 202: 6(float) FMul 200 201 + 203: 6(float) Load 11(inF0) + 204: 6(float) ExtInst 1(GLSL.std.450) 30(Log2) 203 + 205: 6(float) Load 11(inF0) + 206: 6(float) Load 12(inF1) + 207: 6(float) ExtInst 1(GLSL.std.450) 40(FMax) 205 206 + 208: 6(float) Load 11(inF0) + 209: 6(float) Load 12(inF1) + 210: 6(float) ExtInst 1(GLSL.std.450) 37(FMin) 208 209 + 211: 6(float) Load 11(inF0) + 212: 6(float) Load 12(inF1) + 213: 6(float) ExtInst 1(GLSL.std.450) 26(Pow) 211 212 + 214: 6(float) Load 11(inF0) + 215: 6(float) ExtInst 1(GLSL.std.450) 11(Radians) 214 + 217: 143(int) BitReverse 216 + 218: 6(float) Load 11(inF0) + 219: 6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 218 + 220: 6(float) Load 11(inF0) + 221: 6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 220 + 222: 6(float) Load 11(inF0) + 225: 6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 222 223 224 + 226: 6(float) Load 11(inF0) + 227: 6(float) ExtInst 1(GLSL.std.450) 6(FSign) 226 + 228: 6(float) Load 11(inF0) + 229: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 228 + 230: 6(float) Load 11(inF0) + 231: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 230 + Store 12(inF1) 231 + 232: 6(float) Load 11(inF0) + 233: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 232 + Store 13(inF2) 233 + 234: 6(float) Load 11(inF0) + 235: 6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 234 + 236: 6(float) Load 11(inF0) + 237: 6(float) Load 12(inF1) + 238: 6(float) Load 13(inF2) + 239: 6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 236 237 238 + 240: 6(float) Load 11(inF0) + 241: 6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 240 + 242: 6(float) Load 11(inF0) + 243: 6(float) Load 12(inF1) + 244: 6(float) ExtInst 1(GLSL.std.450) 48(Step) 242 243 + 245: 6(float) Load 11(inF0) + 246: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 245 + 247: 6(float) Load 11(inF0) + 248: 6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 247 + 249: 6(float) Load 11(inF0) + 250: 6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 249 + ReturnValue 223 FunctionEnd 22(VertexShaderFunction1(vf1;vf1;vf1;): 6(float) Function None 18 19(inF0): 7(ptr) FunctionParameter 20(inF1): 7(ptr) FunctionParameter 21(inF2): 7(ptr) FunctionParameter 23: Label - ReturnValue 224 + ReturnValue 223 FunctionEnd 34(VertexShaderFunction2(vf2;vf2;vf2;vu2;vu2;): 24(fvec2) Function None 28 29(inF0): 25(ptr) FunctionParameter @@ -3150,144 +3154,144 @@ Shader version: 450 32(inU0): 27(ptr) FunctionParameter 33(inU1): 27(ptr) FunctionParameter 35: Label - 256: 24(fvec2) Load 29(inF0) - 257: 132(bool) All 256 - 258: 24(fvec2) Load 29(inF0) - 259: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 258 - 260: 24(fvec2) Load 29(inF0) - 261: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 260 - 262: 24(fvec2) Load 29(inF0) - 263: 132(bool) Any 262 - 264: 24(fvec2) Load 29(inF0) - 265: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 264 - 266: 24(fvec2) Load 29(inF0) - 268: 267(ivec2) Bitcast 266 - 269: 24(fvec2) Load 29(inF0) - 270: 26(ivec2) Bitcast 269 - 271: 26(ivec2) Load 32(inU0) - 272: 24(fvec2) Bitcast 271 - 273: 24(fvec2) Load 29(inF0) - 274: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 273 - 275: 24(fvec2) Load 29(inF0) - 276: 24(fvec2) Load 30(inF1) - 277: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 275 276 - 278: 24(fvec2) Load 29(inF0) - 279: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 278 - 280: 24(fvec2) Load 29(inF0) - 281: 24(fvec2) Load 30(inF1) - 282: 24(fvec2) Load 31(inF2) - 283: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 280 281 282 - 284: 24(fvec2) Load 29(inF0) - 285: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 284 - 286: 24(fvec2) Load 29(inF0) - 287: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 286 - 290: 26(ivec2) BitCount 289 - 291: 24(fvec2) Load 29(inF0) - 292: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 291 - 293: 24(fvec2) Load 29(inF0) - 294: 24(fvec2) Load 30(inF1) - 295: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 293 294 - 296: 24(fvec2) Load 29(inF0) - 297: 24(fvec2) Load 30(inF1) - 298: 6(float) Dot 296 297 - 299: 24(fvec2) Load 29(inF0) - 300: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 299 - 301: 24(fvec2) Load 29(inF0) - 302: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 301 - 303: 24(fvec2) Load 29(inF0) - 304: 24(fvec2) Load 30(inF1) - 305: 24(fvec2) Load 31(inF2) - 306: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 303 304 305 - 307: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 308: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 309: 24(fvec2) Load 29(inF0) - 310: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 309 - 311: 24(fvec2) Load 29(inF0) - 312: 24(fvec2) Load 30(inF1) - 313: 24(fvec2) FMod 311 312 - 314: 24(fvec2) Load 29(inF0) - 315: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 314 - 316: 24(fvec2) Load 29(inF0) - 318:317(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 316 - 319: 267(ivec2) CompositeExtract 318 1 - Store 30(inF1) 319 - 320: 24(fvec2) CompositeExtract 318 0 - 321: 24(fvec2) Load 29(inF0) - 323: 322(bvec2) IsInf 321 - 324: 24(fvec2) Load 29(inF0) - 325: 322(bvec2) IsNan 324 - 326: 24(fvec2) Load 29(inF0) - 327: 24(fvec2) Load 30(inF1) - 328: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 326 327 - 329: 24(fvec2) Load 29(inF0) - 330: 24(fvec2) Load 30(inF1) - 331: 24(fvec2) Load 31(inF2) - 332: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 329 330 331 - 333: 24(fvec2) Load 29(inF0) - 334: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 333 - 335: 24(fvec2) Load 29(inF0) - 336: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 335 - 337: 24(fvec2) Load 29(inF0) - 338: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 337 - 339: 24(fvec2) VectorTimesScalar 338 202 - 340: 24(fvec2) Load 29(inF0) - 341: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 340 - 342: 24(fvec2) Load 29(inF0) - 343: 24(fvec2) Load 30(inF1) - 344: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 342 343 - 345: 24(fvec2) Load 29(inF0) - 346: 24(fvec2) Load 30(inF1) - 347: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 345 346 - 348: 24(fvec2) Load 29(inF0) - 349: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 348 - 350: 24(fvec2) Load 29(inF0) - 351: 24(fvec2) Load 30(inF1) - 352: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 350 351 - 353: 24(fvec2) Load 29(inF0) - 354: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 353 - 355: 24(fvec2) Load 29(inF0) - 356: 24(fvec2) Load 30(inF1) - 357: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 355 356 - 358: 24(fvec2) Load 29(inF0) - 359: 24(fvec2) Load 30(inF1) - 361: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 358 359 360 - 364: 26(ivec2) BitReverse 363 - 365: 24(fvec2) Load 29(inF0) - 366: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 365 - 367: 24(fvec2) Load 29(inF0) - 368: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 367 - 369: 24(fvec2) Load 29(inF0) + 255: 24(fvec2) Load 29(inF0) + 256: 132(bool) All 255 + 257: 24(fvec2) Load 29(inF0) + 258: 24(fvec2) ExtInst 1(GLSL.std.450) 4(FAbs) 257 + 259: 24(fvec2) Load 29(inF0) + 260: 24(fvec2) ExtInst 1(GLSL.std.450) 17(Acos) 259 + 261: 24(fvec2) Load 29(inF0) + 262: 132(bool) Any 261 + 263: 24(fvec2) Load 29(inF0) + 264: 24(fvec2) ExtInst 1(GLSL.std.450) 16(Asin) 263 + 265: 24(fvec2) Load 29(inF0) + 267: 266(ivec2) Bitcast 265 + 268: 24(fvec2) Load 29(inF0) + 269: 26(ivec2) Bitcast 268 + 270: 26(ivec2) Load 32(inU0) + 271: 24(fvec2) Bitcast 270 + 272: 24(fvec2) Load 29(inF0) + 273: 24(fvec2) ExtInst 1(GLSL.std.450) 18(Atan) 272 + 274: 24(fvec2) Load 29(inF0) + 275: 24(fvec2) Load 30(inF1) + 276: 24(fvec2) ExtInst 1(GLSL.std.450) 25(Atan2) 274 275 + 277: 24(fvec2) Load 29(inF0) + 278: 24(fvec2) ExtInst 1(GLSL.std.450) 9(Ceil) 277 + 279: 24(fvec2) Load 29(inF0) + 280: 24(fvec2) Load 30(inF1) + 281: 24(fvec2) Load 31(inF2) + 282: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 279 280 281 + 283: 24(fvec2) Load 29(inF0) + 284: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 283 + 285: 24(fvec2) Load 29(inF0) + 286: 24(fvec2) ExtInst 1(GLSL.std.450) 20(Cosh) 285 + 289: 266(ivec2) BitCount 288 + 290: 24(fvec2) Load 29(inF0) + 291: 24(fvec2) ExtInst 1(GLSL.std.450) 12(Degrees) 290 + 292: 24(fvec2) Load 29(inF0) + 293: 24(fvec2) Load 30(inF1) + 294: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 292 293 + 295: 24(fvec2) Load 29(inF0) + 296: 24(fvec2) Load 30(inF1) + 297: 6(float) Dot 295 296 + 298: 24(fvec2) Load 29(inF0) + 299: 24(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 298 + 300: 24(fvec2) Load 29(inF0) + 301: 24(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 300 + 302: 24(fvec2) Load 29(inF0) + 303: 24(fvec2) Load 30(inF1) + 304: 24(fvec2) Load 31(inF2) + 305: 24(fvec2) ExtInst 1(GLSL.std.450) 70(FaceForward) 302 303 304 + 306: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 307: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 308: 24(fvec2) Load 29(inF0) + 309: 24(fvec2) ExtInst 1(GLSL.std.450) 8(Floor) 308 + 310: 24(fvec2) Load 29(inF0) + 311: 24(fvec2) Load 30(inF1) + 312: 24(fvec2) FMod 310 311 + 313: 24(fvec2) Load 29(inF0) + 314: 24(fvec2) ExtInst 1(GLSL.std.450) 10(Fract) 313 + 315: 24(fvec2) Load 29(inF0) + 317:316(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 315 + 318: 266(ivec2) CompositeExtract 317 1 + Store 30(inF1) 318 + 319: 24(fvec2) CompositeExtract 317 0 + 320: 24(fvec2) Load 29(inF0) + 322: 321(bvec2) IsInf 320 + 323: 24(fvec2) Load 29(inF0) + 324: 321(bvec2) IsNan 323 + 325: 24(fvec2) Load 29(inF0) + 326: 24(fvec2) Load 30(inF1) + 327: 24(fvec2) ExtInst 1(GLSL.std.450) 53(Ldexp) 325 326 + 328: 24(fvec2) Load 29(inF0) + 329: 24(fvec2) Load 30(inF1) + 330: 24(fvec2) Load 31(inF2) + 331: 24(fvec2) ExtInst 1(GLSL.std.450) 46(FMix) 328 329 330 + 332: 24(fvec2) Load 29(inF0) + 333: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 332 + 334: 24(fvec2) Load 29(inF0) + 335: 24(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 334 + 336: 24(fvec2) Load 29(inF0) + 337: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 336 + 338: 24(fvec2) VectorTimesScalar 337 201 + 339: 24(fvec2) Load 29(inF0) + 340: 24(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 339 + 341: 24(fvec2) Load 29(inF0) + 342: 24(fvec2) Load 30(inF1) + 343: 24(fvec2) ExtInst 1(GLSL.std.450) 40(FMax) 341 342 + 344: 24(fvec2) Load 29(inF0) + 345: 24(fvec2) Load 30(inF1) + 346: 24(fvec2) ExtInst 1(GLSL.std.450) 37(FMin) 344 345 + 347: 24(fvec2) Load 29(inF0) + 348: 24(fvec2) ExtInst 1(GLSL.std.450) 69(Normalize) 347 + 349: 24(fvec2) Load 29(inF0) + 350: 24(fvec2) Load 30(inF1) + 351: 24(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 349 350 + 352: 24(fvec2) Load 29(inF0) + 353: 24(fvec2) ExtInst 1(GLSL.std.450) 11(Radians) 352 + 354: 24(fvec2) Load 29(inF0) + 355: 24(fvec2) Load 30(inF1) + 356: 24(fvec2) ExtInst 1(GLSL.std.450) 71(Reflect) 354 355 + 357: 24(fvec2) Load 29(inF0) + 358: 24(fvec2) Load 30(inF1) + 360: 24(fvec2) ExtInst 1(GLSL.std.450) 72(Refract) 357 358 359 + 363: 266(ivec2) BitReverse 362 + 364: 24(fvec2) Load 29(inF0) + 365: 24(fvec2) ExtInst 1(GLSL.std.450) 2(RoundEven) 364 + 366: 24(fvec2) Load 29(inF0) + 367: 24(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 366 + 368: 24(fvec2) Load 29(inF0) + 369: 24(fvec2) CompositeConstruct 223 223 370: 24(fvec2) CompositeConstruct 224 224 - 371: 24(fvec2) CompositeConstruct 225 225 - 372: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 369 370 371 - 373: 24(fvec2) Load 29(inF0) - 374: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 373 - 375: 24(fvec2) Load 29(inF0) - 376: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 375 - 377: 24(fvec2) Load 29(inF0) - 378: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 377 - Store 30(inF1) 378 - 379: 24(fvec2) Load 29(inF0) - 380: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 379 - Store 31(inF2) 380 - 381: 24(fvec2) Load 29(inF0) - 382: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 381 - 383: 24(fvec2) Load 29(inF0) - 384: 24(fvec2) Load 30(inF1) - 385: 24(fvec2) Load 31(inF2) - 386: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 383 384 385 - 387: 24(fvec2) Load 29(inF0) - 388: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 387 - 389: 24(fvec2) Load 29(inF0) - 390: 24(fvec2) Load 30(inF1) - 391: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 389 390 - 392: 24(fvec2) Load 29(inF0) - 393: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 392 - 394: 24(fvec2) Load 29(inF0) - 395: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 394 - 396: 24(fvec2) Load 29(inF0) - 397: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 396 - ReturnValue 398 + 371: 24(fvec2) ExtInst 1(GLSL.std.450) 43(FClamp) 368 369 370 + 372: 24(fvec2) Load 29(inF0) + 373: 24(fvec2) ExtInst 1(GLSL.std.450) 6(FSign) 372 + 374: 24(fvec2) Load 29(inF0) + 375: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 374 + 376: 24(fvec2) Load 29(inF0) + 377: 24(fvec2) ExtInst 1(GLSL.std.450) 13(Sin) 376 + Store 30(inF1) 377 + 378: 24(fvec2) Load 29(inF0) + 379: 24(fvec2) ExtInst 1(GLSL.std.450) 14(Cos) 378 + Store 31(inF2) 379 + 380: 24(fvec2) Load 29(inF0) + 381: 24(fvec2) ExtInst 1(GLSL.std.450) 19(Sinh) 380 + 382: 24(fvec2) Load 29(inF0) + 383: 24(fvec2) Load 30(inF1) + 384: 24(fvec2) Load 31(inF2) + 385: 24(fvec2) ExtInst 1(GLSL.std.450) 49(SmoothStep) 382 383 384 + 386: 24(fvec2) Load 29(inF0) + 387: 24(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 386 + 388: 24(fvec2) Load 29(inF0) + 389: 24(fvec2) Load 30(inF1) + 390: 24(fvec2) ExtInst 1(GLSL.std.450) 48(Step) 388 389 + 391: 24(fvec2) Load 29(inF0) + 392: 24(fvec2) ExtInst 1(GLSL.std.450) 15(Tan) 391 + 393: 24(fvec2) Load 29(inF0) + 394: 24(fvec2) ExtInst 1(GLSL.std.450) 21(Tanh) 393 + 395: 24(fvec2) Load 29(inF0) + 396: 24(fvec2) ExtInst 1(GLSL.std.450) 3(Trunc) 395 + ReturnValue 397 FunctionEnd 46(VertexShaderFunction3(vf3;vf3;vf3;vu3;vu3;): 36(fvec3) Function None 40 41(inF0): 37(ptr) FunctionParameter @@ -3296,147 +3300,147 @@ Shader version: 450 44(inU0): 39(ptr) FunctionParameter 45(inU1): 39(ptr) FunctionParameter 47: Label - 401: 36(fvec3) Load 41(inF0) - 402: 132(bool) All 401 - 403: 36(fvec3) Load 41(inF0) - 404: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 403 - 405: 36(fvec3) Load 41(inF0) - 406: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 405 - 407: 36(fvec3) Load 41(inF0) - 408: 132(bool) Any 407 - 409: 36(fvec3) Load 41(inF0) - 410: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 409 - 411: 36(fvec3) Load 41(inF0) - 413: 412(ivec3) Bitcast 411 - 414: 36(fvec3) Load 41(inF0) - 415: 38(ivec3) Bitcast 414 - 416: 38(ivec3) Load 44(inU0) - 417: 36(fvec3) Bitcast 416 - 418: 36(fvec3) Load 41(inF0) - 419: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 418 - 420: 36(fvec3) Load 41(inF0) - 421: 36(fvec3) Load 42(inF1) - 422: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 420 421 - 423: 36(fvec3) Load 41(inF0) - 424: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 423 - 425: 36(fvec3) Load 41(inF0) - 426: 36(fvec3) Load 42(inF1) - 427: 36(fvec3) Load 43(inF2) - 428: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 425 426 427 - 429: 36(fvec3) Load 41(inF0) - 430: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 429 - 431: 36(fvec3) Load 41(inF0) - 432: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 431 - 435: 38(ivec3) BitCount 434 - 436: 36(fvec3) Load 41(inF0) - 437: 36(fvec3) Load 42(inF1) - 438: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 436 437 - 439: 36(fvec3) Load 41(inF0) - 440: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 439 - 441: 36(fvec3) Load 41(inF0) - 442: 36(fvec3) Load 42(inF1) - 443: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 441 442 - 444: 36(fvec3) Load 41(inF0) - 445: 36(fvec3) Load 42(inF1) - 446: 6(float) Dot 444 445 - 447: 36(fvec3) Load 41(inF0) - 448: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 447 - 449: 36(fvec3) Load 41(inF0) - 450: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 449 - 451: 36(fvec3) Load 41(inF0) - 452: 36(fvec3) Load 42(inF1) - 453: 36(fvec3) Load 43(inF2) - 454: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 451 452 453 - 455: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 456: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 457: 36(fvec3) Load 41(inF0) - 458: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 457 - 459: 36(fvec3) Load 41(inF0) - 460: 36(fvec3) Load 42(inF1) - 461: 36(fvec3) FMod 459 460 - 462: 36(fvec3) Load 41(inF0) - 463: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 462 - 464: 36(fvec3) Load 41(inF0) - 466:465(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 464 - 467: 412(ivec3) CompositeExtract 466 1 - Store 42(inF1) 467 - 468: 36(fvec3) CompositeExtract 466 0 - 469: 36(fvec3) Load 41(inF0) - 471: 470(bvec3) IsInf 469 - 472: 36(fvec3) Load 41(inF0) - 473: 470(bvec3) IsNan 472 - 474: 36(fvec3) Load 41(inF0) - 475: 36(fvec3) Load 42(inF1) - 476: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 474 475 - 477: 36(fvec3) Load 41(inF0) - 478: 36(fvec3) Load 42(inF1) - 479: 36(fvec3) Load 43(inF2) - 480: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 477 478 479 - 481: 36(fvec3) Load 41(inF0) - 482: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 481 - 483: 36(fvec3) Load 41(inF0) - 484: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 483 - 485: 36(fvec3) Load 41(inF0) - 486: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 485 - 487: 36(fvec3) VectorTimesScalar 486 202 - 488: 36(fvec3) Load 41(inF0) - 489: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 488 - 490: 36(fvec3) Load 41(inF0) - 491: 36(fvec3) Load 42(inF1) - 492: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 490 491 - 493: 36(fvec3) Load 41(inF0) - 494: 36(fvec3) Load 42(inF1) - 495: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 493 494 - 496: 36(fvec3) Load 41(inF0) - 497: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 496 - 498: 36(fvec3) Load 41(inF0) - 499: 36(fvec3) Load 42(inF1) - 500: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 498 499 - 501: 36(fvec3) Load 41(inF0) - 502: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 501 - 503: 36(fvec3) Load 41(inF0) - 504: 36(fvec3) Load 42(inF1) - 505: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 503 504 - 506: 36(fvec3) Load 41(inF0) - 507: 36(fvec3) Load 42(inF1) - 508: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 506 507 360 - 510: 38(ivec3) BitReverse 509 - 511: 36(fvec3) Load 41(inF0) - 512: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 511 - 513: 36(fvec3) Load 41(inF0) - 514: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 513 - 515: 36(fvec3) Load 41(inF0) + 400: 36(fvec3) Load 41(inF0) + 401: 132(bool) All 400 + 402: 36(fvec3) Load 41(inF0) + 403: 36(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 402 + 404: 36(fvec3) Load 41(inF0) + 405: 36(fvec3) ExtInst 1(GLSL.std.450) 17(Acos) 404 + 406: 36(fvec3) Load 41(inF0) + 407: 132(bool) Any 406 + 408: 36(fvec3) Load 41(inF0) + 409: 36(fvec3) ExtInst 1(GLSL.std.450) 16(Asin) 408 + 410: 36(fvec3) Load 41(inF0) + 412: 411(ivec3) Bitcast 410 + 413: 36(fvec3) Load 41(inF0) + 414: 38(ivec3) Bitcast 413 + 415: 38(ivec3) Load 44(inU0) + 416: 36(fvec3) Bitcast 415 + 417: 36(fvec3) Load 41(inF0) + 418: 36(fvec3) ExtInst 1(GLSL.std.450) 18(Atan) 417 + 419: 36(fvec3) Load 41(inF0) + 420: 36(fvec3) Load 42(inF1) + 421: 36(fvec3) ExtInst 1(GLSL.std.450) 25(Atan2) 419 420 + 422: 36(fvec3) Load 41(inF0) + 423: 36(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 422 + 424: 36(fvec3) Load 41(inF0) + 425: 36(fvec3) Load 42(inF1) + 426: 36(fvec3) Load 43(inF2) + 427: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 424 425 426 + 428: 36(fvec3) Load 41(inF0) + 429: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 428 + 430: 36(fvec3) Load 41(inF0) + 431: 36(fvec3) ExtInst 1(GLSL.std.450) 20(Cosh) 430 + 434: 411(ivec3) BitCount 433 + 435: 36(fvec3) Load 41(inF0) + 436: 36(fvec3) Load 42(inF1) + 437: 36(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 435 436 + 438: 36(fvec3) Load 41(inF0) + 439: 36(fvec3) ExtInst 1(GLSL.std.450) 12(Degrees) 438 + 440: 36(fvec3) Load 41(inF0) + 441: 36(fvec3) Load 42(inF1) + 442: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 440 441 + 443: 36(fvec3) Load 41(inF0) + 444: 36(fvec3) Load 42(inF1) + 445: 6(float) Dot 443 444 + 446: 36(fvec3) Load 41(inF0) + 447: 36(fvec3) ExtInst 1(GLSL.std.450) 27(Exp) 446 + 448: 36(fvec3) Load 41(inF0) + 449: 36(fvec3) ExtInst 1(GLSL.std.450) 29(Exp2) 448 + 450: 36(fvec3) Load 41(inF0) + 451: 36(fvec3) Load 42(inF1) + 452: 36(fvec3) Load 43(inF2) + 453: 36(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 450 451 452 + 454: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 455: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 + 456: 36(fvec3) Load 41(inF0) + 457: 36(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 456 + 458: 36(fvec3) Load 41(inF0) + 459: 36(fvec3) Load 42(inF1) + 460: 36(fvec3) FMod 458 459 + 461: 36(fvec3) Load 41(inF0) + 462: 36(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 461 + 463: 36(fvec3) Load 41(inF0) + 465:464(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 463 + 466: 411(ivec3) CompositeExtract 465 1 + Store 42(inF1) 466 + 467: 36(fvec3) CompositeExtract 465 0 + 468: 36(fvec3) Load 41(inF0) + 470: 469(bvec3) IsInf 468 + 471: 36(fvec3) Load 41(inF0) + 472: 469(bvec3) IsNan 471 + 473: 36(fvec3) Load 41(inF0) + 474: 36(fvec3) Load 42(inF1) + 475: 36(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 473 474 + 476: 36(fvec3) Load 41(inF0) + 477: 36(fvec3) Load 42(inF1) + 478: 36(fvec3) Load 43(inF2) + 479: 36(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 476 477 478 + 480: 36(fvec3) Load 41(inF0) + 481: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 480 + 482: 36(fvec3) Load 41(inF0) + 483: 36(fvec3) ExtInst 1(GLSL.std.450) 28(Log) 482 + 484: 36(fvec3) Load 41(inF0) + 485: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 484 + 486: 36(fvec3) VectorTimesScalar 485 201 + 487: 36(fvec3) Load 41(inF0) + 488: 36(fvec3) ExtInst 1(GLSL.std.450) 30(Log2) 487 + 489: 36(fvec3) Load 41(inF0) + 490: 36(fvec3) Load 42(inF1) + 491: 36(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 489 490 + 492: 36(fvec3) Load 41(inF0) + 493: 36(fvec3) Load 42(inF1) + 494: 36(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 492 493 + 495: 36(fvec3) Load 41(inF0) + 496: 36(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 495 + 497: 36(fvec3) Load 41(inF0) + 498: 36(fvec3) Load 42(inF1) + 499: 36(fvec3) ExtInst 1(GLSL.std.450) 26(Pow) 497 498 + 500: 36(fvec3) Load 41(inF0) + 501: 36(fvec3) ExtInst 1(GLSL.std.450) 11(Radians) 500 + 502: 36(fvec3) Load 41(inF0) + 503: 36(fvec3) Load 42(inF1) + 504: 36(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 502 503 + 505: 36(fvec3) Load 41(inF0) + 506: 36(fvec3) Load 42(inF1) + 507: 36(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 505 506 359 + 509: 411(ivec3) BitReverse 508 + 510: 36(fvec3) Load 41(inF0) + 511: 36(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 510 + 512: 36(fvec3) Load 41(inF0) + 513: 36(fvec3) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 512 + 514: 36(fvec3) Load 41(inF0) + 515: 36(fvec3) CompositeConstruct 223 223 223 516: 36(fvec3) CompositeConstruct 224 224 224 - 517: 36(fvec3) CompositeConstruct 225 225 225 - 518: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 515 516 517 - 519: 36(fvec3) Load 41(inF0) - 520: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 519 - 521: 36(fvec3) Load 41(inF0) - 522: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 521 - 523: 36(fvec3) Load 41(inF0) - 524: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 523 - Store 42(inF1) 524 - 525: 36(fvec3) Load 41(inF0) - 526: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 525 - Store 43(inF2) 526 - 527: 36(fvec3) Load 41(inF0) - 528: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 527 - 529: 36(fvec3) Load 41(inF0) - 530: 36(fvec3) Load 42(inF1) - 531: 36(fvec3) Load 43(inF2) - 532: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 529 530 531 - 533: 36(fvec3) Load 41(inF0) - 534: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 533 - 535: 36(fvec3) Load 41(inF0) - 536: 36(fvec3) Load 42(inF1) - 537: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 535 536 - 538: 36(fvec3) Load 41(inF0) - 539: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 538 - 540: 36(fvec3) Load 41(inF0) - 541: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 540 - 542: 36(fvec3) Load 41(inF0) - 543: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 542 - ReturnValue 545 + 517: 36(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 514 515 516 + 518: 36(fvec3) Load 41(inF0) + 519: 36(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 518 + 520: 36(fvec3) Load 41(inF0) + 521: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 520 + 522: 36(fvec3) Load 41(inF0) + 523: 36(fvec3) ExtInst 1(GLSL.std.450) 13(Sin) 522 + Store 42(inF1) 523 + 524: 36(fvec3) Load 41(inF0) + 525: 36(fvec3) ExtInst 1(GLSL.std.450) 14(Cos) 524 + Store 43(inF2) 525 + 526: 36(fvec3) Load 41(inF0) + 527: 36(fvec3) ExtInst 1(GLSL.std.450) 19(Sinh) 526 + 528: 36(fvec3) Load 41(inF0) + 529: 36(fvec3) Load 42(inF1) + 530: 36(fvec3) Load 43(inF2) + 531: 36(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 528 529 530 + 532: 36(fvec3) Load 41(inF0) + 533: 36(fvec3) ExtInst 1(GLSL.std.450) 31(Sqrt) 532 + 534: 36(fvec3) Load 41(inF0) + 535: 36(fvec3) Load 42(inF1) + 536: 36(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 534 535 + 537: 36(fvec3) Load 41(inF0) + 538: 36(fvec3) ExtInst 1(GLSL.std.450) 15(Tan) 537 + 539: 36(fvec3) Load 41(inF0) + 540: 36(fvec3) ExtInst 1(GLSL.std.450) 21(Tanh) 539 + 541: 36(fvec3) Load 41(inF0) + 542: 36(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 541 + ReturnValue 544 FunctionEnd 58(VertexShaderFunction4(vf4;vf4;vf4;vu4;vu4;): 48(fvec4) Function None 52 53(inF0): 49(ptr) FunctionParameter @@ -3445,529 +3449,529 @@ Shader version: 450 56(inU0): 51(ptr) FunctionParameter 57(inU1): 51(ptr) FunctionParameter 59: Label - 548: 48(fvec4) Load 53(inF0) - 549: 132(bool) All 548 - 550: 48(fvec4) Load 53(inF0) - 551: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 550 - 552: 48(fvec4) Load 53(inF0) - 553: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 552 - 554: 48(fvec4) Load 53(inF0) - 555: 132(bool) Any 554 - 556: 48(fvec4) Load 53(inF0) - 557: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 556 - 558: 48(fvec4) Load 53(inF0) - 560: 559(ivec4) Bitcast 558 - 561: 48(fvec4) Load 53(inF0) - 562: 50(ivec4) Bitcast 561 - 563: 50(ivec4) Load 56(inU0) - 564: 48(fvec4) Bitcast 563 - 565: 48(fvec4) Load 53(inF0) - 566: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 565 - 567: 48(fvec4) Load 53(inF0) - 568: 48(fvec4) Load 54(inF1) - 569: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 567 568 - 570: 48(fvec4) Load 53(inF0) - 571: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 570 - 572: 48(fvec4) Load 53(inF0) - 573: 48(fvec4) Load 54(inF1) - 574: 48(fvec4) Load 55(inF2) - 575: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 572 573 574 - 576: 48(fvec4) Load 53(inF0) - 577: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 576 - 578: 48(fvec4) Load 53(inF0) - 579: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 578 - 581: 50(ivec4) BitCount 580 - 582: 48(fvec4) Load 53(inF0) - 583: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 582 - 584: 48(fvec4) Load 53(inF0) - 585: 48(fvec4) Load 54(inF1) - 586: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 584 585 - 587: 48(fvec4) Load 53(inF0) - 588: 48(fvec4) Load 54(inF1) - 589: 6(float) Dot 587 588 - 590: 7(ptr) AccessChain 53(inF0) 362 + 547: 48(fvec4) Load 53(inF0) + 548: 132(bool) All 547 + 549: 48(fvec4) Load 53(inF0) + 550: 48(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 549 + 551: 48(fvec4) Load 53(inF0) + 552: 48(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 551 + 553: 48(fvec4) Load 53(inF0) + 554: 132(bool) Any 553 + 555: 48(fvec4) Load 53(inF0) + 556: 48(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 555 + 557: 48(fvec4) Load 53(inF0) + 559: 558(ivec4) Bitcast 557 + 560: 48(fvec4) Load 53(inF0) + 561: 50(ivec4) Bitcast 560 + 562: 50(ivec4) Load 56(inU0) + 563: 48(fvec4) Bitcast 562 + 564: 48(fvec4) Load 53(inF0) + 565: 48(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 564 + 566: 48(fvec4) Load 53(inF0) + 567: 48(fvec4) Load 54(inF1) + 568: 48(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 566 567 + 569: 48(fvec4) Load 53(inF0) + 570: 48(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 569 + 571: 48(fvec4) Load 53(inF0) + 572: 48(fvec4) Load 54(inF1) + 573: 48(fvec4) Load 55(inF2) + 574: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 571 572 573 + 575: 48(fvec4) Load 53(inF0) + 576: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 575 + 577: 48(fvec4) Load 53(inF0) + 578: 48(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 577 + 580: 558(ivec4) BitCount 579 + 581: 48(fvec4) Load 53(inF0) + 582: 48(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 581 + 583: 48(fvec4) Load 53(inF0) + 584: 48(fvec4) Load 54(inF1) + 585: 6(float) ExtInst 1(GLSL.std.450) 67(Distance) 583 584 + 586: 48(fvec4) Load 53(inF0) + 587: 48(fvec4) Load 54(inF1) + 588: 6(float) Dot 586 587 + 590: 7(ptr) AccessChain 53(inF0) 589 591: 6(float) Load 590 - 592: 7(ptr) AccessChain 54(inF1) 362 + 592: 7(ptr) AccessChain 54(inF1) 589 593: 6(float) Load 592 594: 6(float) FMul 591 593 - 595: 7(ptr) AccessChain 53(inF0) 217 - 596: 6(float) Load 595 - 597: 7(ptr) AccessChain 54(inF1) 288 - 598: 6(float) Load 597 - 599: 48(fvec4) CompositeConstruct 225 594 596 598 - 600: 48(fvec4) Load 53(inF0) - 601: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 600 + 596: 7(ptr) AccessChain 53(inF0) 595 + 597: 6(float) Load 596 + 599: 7(ptr) AccessChain 54(inF1) 598 + 600: 6(float) Load 599 + 601: 48(fvec4) CompositeConstruct 224 594 597 600 602: 48(fvec4) Load 53(inF0) - 603: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 602 + 603: 48(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 602 604: 48(fvec4) Load 53(inF0) - 605: 48(fvec4) Load 54(inF1) - 606: 48(fvec4) Load 55(inF2) - 607: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 604 605 606 - 608: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 609: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 610: 48(fvec4) Load 53(inF0) - 611: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 610 + 605: 48(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 604 + 606: 48(fvec4) Load 53(inF0) + 607: 48(fvec4) Load 54(inF1) + 608: 48(fvec4) Load 55(inF2) + 609: 48(fvec4) ExtInst 1(GLSL.std.450) 70(FaceForward) 606 607 608 + 610: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 611: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 612: 48(fvec4) Load 53(inF0) - 613: 48(fvec4) Load 54(inF1) - 614: 48(fvec4) FMod 612 613 - 615: 48(fvec4) Load 53(inF0) - 616: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 615 + 613: 48(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 612 + 614: 48(fvec4) Load 53(inF0) + 615: 48(fvec4) Load 54(inF1) + 616: 48(fvec4) FMod 614 615 617: 48(fvec4) Load 53(inF0) - 619:618(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 617 - 620: 559(ivec4) CompositeExtract 619 1 - Store 54(inF1) 620 - 621: 48(fvec4) CompositeExtract 619 0 - 622: 48(fvec4) Load 53(inF0) - 624: 623(bvec4) IsInf 622 - 625: 48(fvec4) Load 53(inF0) - 626: 623(bvec4) IsNan 625 + 618: 48(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 617 + 619: 48(fvec4) Load 53(inF0) + 621:620(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 619 + 622: 558(ivec4) CompositeExtract 621 1 + Store 54(inF1) 622 + 623: 48(fvec4) CompositeExtract 621 0 + 624: 48(fvec4) Load 53(inF0) + 626: 625(bvec4) IsInf 624 627: 48(fvec4) Load 53(inF0) - 628: 48(fvec4) Load 54(inF1) - 629: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 627 628 - 630: 48(fvec4) Load 53(inF0) - 631: 48(fvec4) Load 54(inF1) - 632: 48(fvec4) Load 55(inF2) - 633: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 630 631 632 - 634: 48(fvec4) Load 53(inF0) - 635: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 634 + 628: 625(bvec4) IsNan 627 + 629: 48(fvec4) Load 53(inF0) + 630: 48(fvec4) Load 54(inF1) + 631: 48(fvec4) ExtInst 1(GLSL.std.450) 53(Ldexp) 629 630 + 632: 48(fvec4) Load 53(inF0) + 633: 48(fvec4) Load 54(inF1) + 634: 48(fvec4) Load 55(inF2) + 635: 48(fvec4) ExtInst 1(GLSL.std.450) 46(FMix) 632 633 634 636: 48(fvec4) Load 53(inF0) - 637: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 636 + 637: 6(float) ExtInst 1(GLSL.std.450) 66(Length) 636 638: 48(fvec4) Load 53(inF0) - 639: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 638 - 640: 48(fvec4) VectorTimesScalar 639 202 - 641: 48(fvec4) Load 53(inF0) - 642: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 641 + 639: 48(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 638 + 640: 48(fvec4) Load 53(inF0) + 641: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 640 + 642: 48(fvec4) VectorTimesScalar 641 201 643: 48(fvec4) Load 53(inF0) - 644: 48(fvec4) Load 54(inF1) - 645: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 643 644 - 646: 48(fvec4) Load 53(inF0) - 647: 48(fvec4) Load 54(inF1) - 648: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 646 647 - 649: 48(fvec4) Load 53(inF0) - 650: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 649 + 644: 48(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 643 + 645: 48(fvec4) Load 53(inF0) + 646: 48(fvec4) Load 54(inF1) + 647: 48(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 645 646 + 648: 48(fvec4) Load 53(inF0) + 649: 48(fvec4) Load 54(inF1) + 650: 48(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 648 649 651: 48(fvec4) Load 53(inF0) - 652: 48(fvec4) Load 54(inF1) - 653: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 651 652 - 654: 48(fvec4) Load 53(inF0) - 655: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 654 + 652: 48(fvec4) ExtInst 1(GLSL.std.450) 69(Normalize) 651 + 653: 48(fvec4) Load 53(inF0) + 654: 48(fvec4) Load 54(inF1) + 655: 48(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 653 654 656: 48(fvec4) Load 53(inF0) - 657: 48(fvec4) Load 54(inF1) - 658: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 656 657 - 659: 48(fvec4) Load 53(inF0) - 660: 48(fvec4) Load 54(inF1) - 661: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 659 660 360 - 664: 50(ivec4) BitReverse 663 - 665: 48(fvec4) Load 53(inF0) - 666: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 665 + 657: 48(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 656 + 658: 48(fvec4) Load 53(inF0) + 659: 48(fvec4) Load 54(inF1) + 660: 48(fvec4) ExtInst 1(GLSL.std.450) 71(Reflect) 658 659 + 661: 48(fvec4) Load 53(inF0) + 662: 48(fvec4) Load 54(inF1) + 663: 48(fvec4) ExtInst 1(GLSL.std.450) 72(Refract) 661 662 359 + 666: 558(ivec4) BitReverse 665 667: 48(fvec4) Load 53(inF0) - 668: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 667 + 668: 48(fvec4) ExtInst 1(GLSL.std.450) 2(RoundEven) 667 669: 48(fvec4) Load 53(inF0) - 670: 48(fvec4) CompositeConstruct 224 224 224 224 - 671: 48(fvec4) CompositeConstruct 225 225 225 225 - 672: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 669 670 671 - 673: 48(fvec4) Load 53(inF0) - 674: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 673 + 670: 48(fvec4) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 669 + 671: 48(fvec4) Load 53(inF0) + 672: 48(fvec4) CompositeConstruct 223 223 223 223 + 673: 48(fvec4) CompositeConstruct 224 224 224 224 + 674: 48(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 671 672 673 675: 48(fvec4) Load 53(inF0) - 676: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 675 + 676: 48(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 675 677: 48(fvec4) Load 53(inF0) 678: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 677 - Store 54(inF1) 678 679: 48(fvec4) Load 53(inF0) - 680: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 679 - Store 55(inF2) 680 + 680: 48(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 679 + Store 54(inF1) 680 681: 48(fvec4) Load 53(inF0) - 682: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 681 + 682: 48(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 681 + Store 55(inF2) 682 683: 48(fvec4) Load 53(inF0) - 684: 48(fvec4) Load 54(inF1) - 685: 48(fvec4) Load 55(inF2) - 686: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 683 684 685 - 687: 48(fvec4) Load 53(inF0) - 688: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 687 + 684: 48(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 683 + 685: 48(fvec4) Load 53(inF0) + 686: 48(fvec4) Load 54(inF1) + 687: 48(fvec4) Load 55(inF2) + 688: 48(fvec4) ExtInst 1(GLSL.std.450) 49(SmoothStep) 685 686 687 689: 48(fvec4) Load 53(inF0) - 690: 48(fvec4) Load 54(inF1) - 691: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 689 690 - 692: 48(fvec4) Load 53(inF0) - 693: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 692 + 690: 48(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 689 + 691: 48(fvec4) Load 53(inF0) + 692: 48(fvec4) Load 54(inF1) + 693: 48(fvec4) ExtInst 1(GLSL.std.450) 48(Step) 691 692 694: 48(fvec4) Load 53(inF0) - 695: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 694 + 695: 48(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 694 696: 48(fvec4) Load 53(inF0) - 697: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 696 - ReturnValue 699 + 697: 48(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 696 + 698: 48(fvec4) Load 53(inF0) + 699: 48(fvec4) ExtInst 1(GLSL.std.450) 3(Trunc) 698 + ReturnValue 701 FunctionEnd 66(VertexShaderFunction2x2(mf22;mf22;mf22;): 60 Function None 62 63(inF0): 61(ptr) FunctionParameter 64(inF1): 61(ptr) FunctionParameter 65(inF2): 61(ptr) FunctionParameter 67: Label - 702: 60 Load 63(inF0) - 703: 132(bool) All 702 704: 60 Load 63(inF0) - 705: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 704 + 705: 132(bool) All 704 706: 60 Load 63(inF0) - 707: 60 ExtInst 1(GLSL.std.450) 17(Acos) 706 + 707: 60 ExtInst 1(GLSL.std.450) 4(FAbs) 706 708: 60 Load 63(inF0) - 709: 132(bool) Any 708 + 709: 60 ExtInst 1(GLSL.std.450) 17(Acos) 708 710: 60 Load 63(inF0) - 711: 60 ExtInst 1(GLSL.std.450) 16(Asin) 710 + 711: 132(bool) Any 710 712: 60 Load 63(inF0) - 713: 60 ExtInst 1(GLSL.std.450) 18(Atan) 712 + 713: 60 ExtInst 1(GLSL.std.450) 16(Asin) 712 714: 60 Load 63(inF0) - 715: 60 Load 64(inF1) - 716: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 714 715 - 717: 60 Load 63(inF0) - 718: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 717 + 715: 60 ExtInst 1(GLSL.std.450) 18(Atan) 714 + 716: 60 Load 63(inF0) + 717: 60 Load 64(inF1) + 718: 60 ExtInst 1(GLSL.std.450) 25(Atan2) 716 717 719: 60 Load 63(inF0) - 720: 60 Load 64(inF1) - 721: 60 Load 65(inF2) - 722: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 719 720 721 - 723: 60 Load 63(inF0) - 724: 60 ExtInst 1(GLSL.std.450) 14(Cos) 723 + 720: 60 ExtInst 1(GLSL.std.450) 9(Ceil) 719 + 721: 60 Load 63(inF0) + 722: 60 Load 64(inF1) + 723: 60 Load 65(inF2) + 724: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 721 722 723 725: 60 Load 63(inF0) - 726: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 725 + 726: 60 ExtInst 1(GLSL.std.450) 14(Cos) 725 727: 60 Load 63(inF0) - 728: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 727 + 728: 60 ExtInst 1(GLSL.std.450) 20(Cosh) 727 729: 60 Load 63(inF0) - 730: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 729 + 730: 60 ExtInst 1(GLSL.std.450) 12(Degrees) 729 731: 60 Load 63(inF0) - 732: 60 ExtInst 1(GLSL.std.450) 27(Exp) 731 + 732: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 731 733: 60 Load 63(inF0) - 734: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 733 - 735: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 736: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 737: 60 Load 63(inF0) - 738: 60 ExtInst 1(GLSL.std.450) 8(Floor) 737 + 734: 60 ExtInst 1(GLSL.std.450) 27(Exp) 733 + 735: 60 Load 63(inF0) + 736: 60 ExtInst 1(GLSL.std.450) 29(Exp2) 735 + 737: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 738: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 739: 60 Load 63(inF0) - 740: 60 Load 64(inF1) - 741: 24(fvec2) CompositeExtract 739 0 - 742: 24(fvec2) CompositeExtract 740 0 - 743: 24(fvec2) FMod 741 742 - 744: 24(fvec2) CompositeExtract 739 1 - 745: 24(fvec2) CompositeExtract 740 1 - 746: 24(fvec2) FMod 744 745 - 747: 60 CompositeConstruct 743 746 - 748: 60 Load 63(inF0) - 749: 60 ExtInst 1(GLSL.std.450) 10(Fract) 748 + 740: 60 ExtInst 1(GLSL.std.450) 8(Floor) 739 + 741: 60 Load 63(inF0) + 742: 60 Load 64(inF1) + 743: 24(fvec2) CompositeExtract 741 0 + 744: 24(fvec2) CompositeExtract 742 0 + 745: 24(fvec2) FMod 743 744 + 746: 24(fvec2) CompositeExtract 741 1 + 747: 24(fvec2) CompositeExtract 742 1 + 748: 24(fvec2) FMod 746 747 + 749: 60 CompositeConstruct 745 748 750: 60 Load 63(inF0) - 752:751(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 750 - 753: 267(ivec2) CompositeExtract 752 1 - Store 64(inF1) 753 - 754: 60 CompositeExtract 752 0 - 755: 60 Load 63(inF0) - 756: 60 Load 64(inF1) - 757: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 755 756 - 758: 60 Load 63(inF0) - 759: 60 Load 64(inF1) - 760: 60 Load 65(inF2) - 761: 60 ExtInst 1(GLSL.std.450) 46(FMix) 758 759 760 - 762: 60 Load 63(inF0) - 763: 60 ExtInst 1(GLSL.std.450) 28(Log) 762 + 751: 60 ExtInst 1(GLSL.std.450) 10(Fract) 750 + 752: 60 Load 63(inF0) + 754:753(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 752 + 755: 266(ivec2) CompositeExtract 754 1 + Store 64(inF1) 755 + 756: 60 CompositeExtract 754 0 + 757: 60 Load 63(inF0) + 758: 60 Load 64(inF1) + 759: 60 ExtInst 1(GLSL.std.450) 53(Ldexp) 757 758 + 760: 60 Load 63(inF0) + 761: 60 Load 64(inF1) + 762: 60 Load 65(inF2) + 763: 60 ExtInst 1(GLSL.std.450) 46(FMix) 760 761 762 764: 60 Load 63(inF0) - 765: 60 ExtInst 1(GLSL.std.450) 30(Log2) 764 - 766: 60 MatrixTimesScalar 765 202 - 767: 60 Load 63(inF0) - 768: 60 ExtInst 1(GLSL.std.450) 30(Log2) 767 + 765: 60 ExtInst 1(GLSL.std.450) 28(Log) 764 + 766: 60 Load 63(inF0) + 767: 60 ExtInst 1(GLSL.std.450) 30(Log2) 766 + 768: 60 MatrixTimesScalar 767 201 769: 60 Load 63(inF0) - 770: 60 Load 64(inF1) - 771: 60 ExtInst 1(GLSL.std.450) 40(FMax) 769 770 - 772: 60 Load 63(inF0) - 773: 60 Load 64(inF1) - 774: 60 ExtInst 1(GLSL.std.450) 37(FMin) 772 773 - 775: 60 Load 63(inF0) - 776: 60 Load 64(inF1) - 777: 60 ExtInst 1(GLSL.std.450) 26(Pow) 775 776 - 778: 60 Load 63(inF0) - 779: 60 ExtInst 1(GLSL.std.450) 11(Radians) 778 + 770: 60 ExtInst 1(GLSL.std.450) 30(Log2) 769 + 771: 60 Load 63(inF0) + 772: 60 Load 64(inF1) + 773: 60 ExtInst 1(GLSL.std.450) 40(FMax) 771 772 + 774: 60 Load 63(inF0) + 775: 60 Load 64(inF1) + 776: 60 ExtInst 1(GLSL.std.450) 37(FMin) 774 775 + 777: 60 Load 63(inF0) + 778: 60 Load 64(inF1) + 779: 60 ExtInst 1(GLSL.std.450) 26(Pow) 777 778 780: 60 Load 63(inF0) - 781: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 780 + 781: 60 ExtInst 1(GLSL.std.450) 11(Radians) 780 782: 60 Load 63(inF0) - 783: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 782 + 783: 60 ExtInst 1(GLSL.std.450) 2(RoundEven) 782 784: 60 Load 63(inF0) - 785: 24(fvec2) CompositeConstruct 224 224 - 786: 24(fvec2) CompositeConstruct 225 225 - 787: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 784 785 786 - 788: 60 Load 63(inF0) - 789: 60 ExtInst 1(GLSL.std.450) 6(FSign) 788 + 785: 60 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 784 + 786: 60 Load 63(inF0) + 787: 24(fvec2) CompositeConstruct 223 223 + 788: 24(fvec2) CompositeConstruct 224 224 + 789: 60 ExtInst 1(GLSL.std.450) 43(FClamp) 786 787 788 790: 60 Load 63(inF0) - 791: 60 ExtInst 1(GLSL.std.450) 13(Sin) 790 + 791: 60 ExtInst 1(GLSL.std.450) 6(FSign) 790 792: 60 Load 63(inF0) 793: 60 ExtInst 1(GLSL.std.450) 13(Sin) 792 - Store 64(inF1) 793 794: 60 Load 63(inF0) - 795: 60 ExtInst 1(GLSL.std.450) 14(Cos) 794 - Store 65(inF2) 795 + 795: 60 ExtInst 1(GLSL.std.450) 13(Sin) 794 + Store 64(inF1) 795 796: 60 Load 63(inF0) - 797: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 796 + 797: 60 ExtInst 1(GLSL.std.450) 14(Cos) 796 + Store 65(inF2) 797 798: 60 Load 63(inF0) - 799: 60 Load 64(inF1) - 800: 60 Load 65(inF2) - 801: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 798 799 800 - 802: 60 Load 63(inF0) - 803: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 802 + 799: 60 ExtInst 1(GLSL.std.450) 19(Sinh) 798 + 800: 60 Load 63(inF0) + 801: 60 Load 64(inF1) + 802: 60 Load 65(inF2) + 803: 60 ExtInst 1(GLSL.std.450) 49(SmoothStep) 800 801 802 804: 60 Load 63(inF0) - 805: 60 Load 64(inF1) - 806: 60 ExtInst 1(GLSL.std.450) 48(Step) 804 805 - 807: 60 Load 63(inF0) - 808: 60 ExtInst 1(GLSL.std.450) 15(Tan) 807 + 805: 60 ExtInst 1(GLSL.std.450) 31(Sqrt) 804 + 806: 60 Load 63(inF0) + 807: 60 Load 64(inF1) + 808: 60 ExtInst 1(GLSL.std.450) 48(Step) 806 807 809: 60 Load 63(inF0) - 810: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 809 + 810: 60 ExtInst 1(GLSL.std.450) 15(Tan) 809 811: 60 Load 63(inF0) - 812: 60 Transpose 811 + 812: 60 ExtInst 1(GLSL.std.450) 21(Tanh) 811 813: 60 Load 63(inF0) - 814: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 813 - ReturnValue 816 + 814: 60 Transpose 813 + 815: 60 Load 63(inF0) + 816: 60 ExtInst 1(GLSL.std.450) 3(Trunc) 815 + ReturnValue 818 FunctionEnd 74(VertexShaderFunction3x3(mf33;mf33;mf33;): 68 Function None 70 71(inF0): 69(ptr) FunctionParameter 72(inF1): 69(ptr) FunctionParameter 73(inF2): 69(ptr) FunctionParameter 75: Label - 819: 68 Load 71(inF0) - 820: 132(bool) All 819 821: 68 Load 71(inF0) - 822: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 821 + 822: 132(bool) All 821 823: 68 Load 71(inF0) - 824: 68 ExtInst 1(GLSL.std.450) 17(Acos) 823 + 824: 68 ExtInst 1(GLSL.std.450) 4(FAbs) 823 825: 68 Load 71(inF0) - 826: 132(bool) Any 825 + 826: 68 ExtInst 1(GLSL.std.450) 17(Acos) 825 827: 68 Load 71(inF0) - 828: 68 ExtInst 1(GLSL.std.450) 16(Asin) 827 + 828: 132(bool) Any 827 829: 68 Load 71(inF0) - 830: 68 ExtInst 1(GLSL.std.450) 18(Atan) 829 + 830: 68 ExtInst 1(GLSL.std.450) 16(Asin) 829 831: 68 Load 71(inF0) - 832: 68 Load 72(inF1) - 833: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 831 832 - 834: 68 Load 71(inF0) - 835: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 834 + 832: 68 ExtInst 1(GLSL.std.450) 18(Atan) 831 + 833: 68 Load 71(inF0) + 834: 68 Load 72(inF1) + 835: 68 ExtInst 1(GLSL.std.450) 25(Atan2) 833 834 836: 68 Load 71(inF0) - 837: 68 Load 72(inF1) - 838: 68 Load 73(inF2) - 839: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 836 837 838 - 840: 68 Load 71(inF0) - 841: 68 ExtInst 1(GLSL.std.450) 14(Cos) 840 + 837: 68 ExtInst 1(GLSL.std.450) 9(Ceil) 836 + 838: 68 Load 71(inF0) + 839: 68 Load 72(inF1) + 840: 68 Load 73(inF2) + 841: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 838 839 840 842: 68 Load 71(inF0) - 843: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 842 + 843: 68 ExtInst 1(GLSL.std.450) 14(Cos) 842 844: 68 Load 71(inF0) - 845: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 844 + 845: 68 ExtInst 1(GLSL.std.450) 20(Cosh) 844 846: 68 Load 71(inF0) - 847: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 846 + 847: 68 ExtInst 1(GLSL.std.450) 12(Degrees) 846 848: 68 Load 71(inF0) - 849: 68 ExtInst 1(GLSL.std.450) 27(Exp) 848 + 849: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 848 850: 68 Load 71(inF0) - 851: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 850 - 852: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 853: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 854: 68 Load 71(inF0) - 855: 68 ExtInst 1(GLSL.std.450) 8(Floor) 854 + 851: 68 ExtInst 1(GLSL.std.450) 27(Exp) 850 + 852: 68 Load 71(inF0) + 853: 68 ExtInst 1(GLSL.std.450) 29(Exp2) 852 + 854: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 855: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 856: 68 Load 71(inF0) - 857: 68 Load 72(inF1) - 858: 36(fvec3) CompositeExtract 856 0 - 859: 36(fvec3) CompositeExtract 857 0 - 860: 36(fvec3) FMod 858 859 - 861: 36(fvec3) CompositeExtract 856 1 - 862: 36(fvec3) CompositeExtract 857 1 - 863: 36(fvec3) FMod 861 862 - 864: 36(fvec3) CompositeExtract 856 2 - 865: 36(fvec3) CompositeExtract 857 2 - 866: 36(fvec3) FMod 864 865 - 867: 68 CompositeConstruct 860 863 866 - 868: 68 Load 71(inF0) - 869: 68 ExtInst 1(GLSL.std.450) 10(Fract) 868 + 857: 68 ExtInst 1(GLSL.std.450) 8(Floor) 856 + 858: 68 Load 71(inF0) + 859: 68 Load 72(inF1) + 860: 36(fvec3) CompositeExtract 858 0 + 861: 36(fvec3) CompositeExtract 859 0 + 862: 36(fvec3) FMod 860 861 + 863: 36(fvec3) CompositeExtract 858 1 + 864: 36(fvec3) CompositeExtract 859 1 + 865: 36(fvec3) FMod 863 864 + 866: 36(fvec3) CompositeExtract 858 2 + 867: 36(fvec3) CompositeExtract 859 2 + 868: 36(fvec3) FMod 866 867 + 869: 68 CompositeConstruct 862 865 868 870: 68 Load 71(inF0) - 872:871(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 870 - 873: 412(ivec3) CompositeExtract 872 1 - Store 72(inF1) 873 - 874: 68 CompositeExtract 872 0 - 875: 68 Load 71(inF0) - 876: 68 Load 72(inF1) - 877: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 875 876 - 878: 68 Load 71(inF0) - 879: 68 Load 72(inF1) - 880: 68 Load 73(inF2) - 881: 68 ExtInst 1(GLSL.std.450) 46(FMix) 878 879 880 - 882: 68 Load 71(inF0) - 883: 68 ExtInst 1(GLSL.std.450) 28(Log) 882 + 871: 68 ExtInst 1(GLSL.std.450) 10(Fract) 870 + 872: 68 Load 71(inF0) + 874:873(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 872 + 875: 411(ivec3) CompositeExtract 874 1 + Store 72(inF1) 875 + 876: 68 CompositeExtract 874 0 + 877: 68 Load 71(inF0) + 878: 68 Load 72(inF1) + 879: 68 ExtInst 1(GLSL.std.450) 53(Ldexp) 877 878 + 880: 68 Load 71(inF0) + 881: 68 Load 72(inF1) + 882: 68 Load 73(inF2) + 883: 68 ExtInst 1(GLSL.std.450) 46(FMix) 880 881 882 884: 68 Load 71(inF0) - 885: 68 ExtInst 1(GLSL.std.450) 30(Log2) 884 - 886: 68 MatrixTimesScalar 885 202 - 887: 68 Load 71(inF0) - 888: 68 ExtInst 1(GLSL.std.450) 30(Log2) 887 + 885: 68 ExtInst 1(GLSL.std.450) 28(Log) 884 + 886: 68 Load 71(inF0) + 887: 68 ExtInst 1(GLSL.std.450) 30(Log2) 886 + 888: 68 MatrixTimesScalar 887 201 889: 68 Load 71(inF0) - 890: 68 Load 72(inF1) - 891: 68 ExtInst 1(GLSL.std.450) 40(FMax) 889 890 - 892: 68 Load 71(inF0) - 893: 68 Load 72(inF1) - 894: 68 ExtInst 1(GLSL.std.450) 37(FMin) 892 893 - 895: 68 Load 71(inF0) - 896: 68 Load 72(inF1) - 897: 68 ExtInst 1(GLSL.std.450) 26(Pow) 895 896 - 898: 68 Load 71(inF0) - 899: 68 ExtInst 1(GLSL.std.450) 11(Radians) 898 + 890: 68 ExtInst 1(GLSL.std.450) 30(Log2) 889 + 891: 68 Load 71(inF0) + 892: 68 Load 72(inF1) + 893: 68 ExtInst 1(GLSL.std.450) 40(FMax) 891 892 + 894: 68 Load 71(inF0) + 895: 68 Load 72(inF1) + 896: 68 ExtInst 1(GLSL.std.450) 37(FMin) 894 895 + 897: 68 Load 71(inF0) + 898: 68 Load 72(inF1) + 899: 68 ExtInst 1(GLSL.std.450) 26(Pow) 897 898 900: 68 Load 71(inF0) - 901: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 900 + 901: 68 ExtInst 1(GLSL.std.450) 11(Radians) 900 902: 68 Load 71(inF0) - 903: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 902 + 903: 68 ExtInst 1(GLSL.std.450) 2(RoundEven) 902 904: 68 Load 71(inF0) - 905: 36(fvec3) CompositeConstruct 224 224 224 - 906: 36(fvec3) CompositeConstruct 225 225 225 - 907: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 904 905 906 - 908: 68 Load 71(inF0) - 909: 68 ExtInst 1(GLSL.std.450) 6(FSign) 908 + 905: 68 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 904 + 906: 68 Load 71(inF0) + 907: 36(fvec3) CompositeConstruct 223 223 223 + 908: 36(fvec3) CompositeConstruct 224 224 224 + 909: 68 ExtInst 1(GLSL.std.450) 43(FClamp) 906 907 908 910: 68 Load 71(inF0) - 911: 68 ExtInst 1(GLSL.std.450) 13(Sin) 910 + 911: 68 ExtInst 1(GLSL.std.450) 6(FSign) 910 912: 68 Load 71(inF0) 913: 68 ExtInst 1(GLSL.std.450) 13(Sin) 912 - Store 72(inF1) 913 914: 68 Load 71(inF0) - 915: 68 ExtInst 1(GLSL.std.450) 14(Cos) 914 - Store 73(inF2) 915 + 915: 68 ExtInst 1(GLSL.std.450) 13(Sin) 914 + Store 72(inF1) 915 916: 68 Load 71(inF0) - 917: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 916 + 917: 68 ExtInst 1(GLSL.std.450) 14(Cos) 916 + Store 73(inF2) 917 918: 68 Load 71(inF0) - 919: 68 Load 72(inF1) - 920: 68 Load 73(inF2) - 921: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 918 919 920 - 922: 68 Load 71(inF0) - 923: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 922 + 919: 68 ExtInst 1(GLSL.std.450) 19(Sinh) 918 + 920: 68 Load 71(inF0) + 921: 68 Load 72(inF1) + 922: 68 Load 73(inF2) + 923: 68 ExtInst 1(GLSL.std.450) 49(SmoothStep) 920 921 922 924: 68 Load 71(inF0) - 925: 68 Load 72(inF1) - 926: 68 ExtInst 1(GLSL.std.450) 48(Step) 924 925 - 927: 68 Load 71(inF0) - 928: 68 ExtInst 1(GLSL.std.450) 15(Tan) 927 + 925: 68 ExtInst 1(GLSL.std.450) 31(Sqrt) 924 + 926: 68 Load 71(inF0) + 927: 68 Load 72(inF1) + 928: 68 ExtInst 1(GLSL.std.450) 48(Step) 926 927 929: 68 Load 71(inF0) - 930: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 929 + 930: 68 ExtInst 1(GLSL.std.450) 15(Tan) 929 931: 68 Load 71(inF0) - 932: 68 Transpose 931 + 932: 68 ExtInst 1(GLSL.std.450) 21(Tanh) 931 933: 68 Load 71(inF0) - 934: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 933 - ReturnValue 936 + 934: 68 Transpose 933 + 935: 68 Load 71(inF0) + 936: 68 ExtInst 1(GLSL.std.450) 3(Trunc) 935 + ReturnValue 938 FunctionEnd 82(VertexShaderFunction4x4(mf44;mf44;mf44;): 76 Function None 78 79(inF0): 77(ptr) FunctionParameter 80(inF1): 77(ptr) FunctionParameter 81(inF2): 77(ptr) FunctionParameter 83: Label - 939: 76 Load 79(inF0) - 940: 132(bool) All 939 941: 76 Load 79(inF0) - 942: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 941 + 942: 132(bool) All 941 943: 76 Load 79(inF0) - 944: 76 ExtInst 1(GLSL.std.450) 17(Acos) 943 + 944: 76 ExtInst 1(GLSL.std.450) 4(FAbs) 943 945: 76 Load 79(inF0) - 946: 132(bool) Any 945 + 946: 76 ExtInst 1(GLSL.std.450) 17(Acos) 945 947: 76 Load 79(inF0) - 948: 76 ExtInst 1(GLSL.std.450) 16(Asin) 947 + 948: 132(bool) Any 947 949: 76 Load 79(inF0) - 950: 76 ExtInst 1(GLSL.std.450) 18(Atan) 949 + 950: 76 ExtInst 1(GLSL.std.450) 16(Asin) 949 951: 76 Load 79(inF0) - 952: 76 Load 80(inF1) - 953: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 951 952 - 954: 76 Load 79(inF0) - 955: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 954 + 952: 76 ExtInst 1(GLSL.std.450) 18(Atan) 951 + 953: 76 Load 79(inF0) + 954: 76 Load 80(inF1) + 955: 76 ExtInst 1(GLSL.std.450) 25(Atan2) 953 954 956: 76 Load 79(inF0) - 957: 76 Load 80(inF1) - 958: 76 Load 81(inF2) - 959: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 956 957 958 - 960: 76 Load 79(inF0) - 961: 76 ExtInst 1(GLSL.std.450) 14(Cos) 960 + 957: 76 ExtInst 1(GLSL.std.450) 9(Ceil) 956 + 958: 76 Load 79(inF0) + 959: 76 Load 80(inF1) + 960: 76 Load 81(inF2) + 961: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 958 959 960 962: 76 Load 79(inF0) - 963: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 962 + 963: 76 ExtInst 1(GLSL.std.450) 14(Cos) 962 964: 76 Load 79(inF0) - 965: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 964 + 965: 76 ExtInst 1(GLSL.std.450) 20(Cosh) 964 966: 76 Load 79(inF0) - 967: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 966 + 967: 76 ExtInst 1(GLSL.std.450) 12(Degrees) 966 968: 76 Load 79(inF0) - 969: 76 ExtInst 1(GLSL.std.450) 27(Exp) 968 + 969: 6(float) ExtInst 1(GLSL.std.450) 33(Determinant) 968 970: 76 Load 79(inF0) - 971: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 970 - 972: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 172 - 973: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 172 - 974: 76 Load 79(inF0) - 975: 76 ExtInst 1(GLSL.std.450) 8(Floor) 974 + 971: 76 ExtInst 1(GLSL.std.450) 27(Exp) 970 + 972: 76 Load 79(inF0) + 973: 76 ExtInst 1(GLSL.std.450) 29(Exp2) 972 + 974: 143(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 164 + 975: 143(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 164 976: 76 Load 79(inF0) - 977: 76 Load 80(inF1) - 978: 48(fvec4) CompositeExtract 976 0 - 979: 48(fvec4) CompositeExtract 977 0 - 980: 48(fvec4) FMod 978 979 - 981: 48(fvec4) CompositeExtract 976 1 - 982: 48(fvec4) CompositeExtract 977 1 - 983: 48(fvec4) FMod 981 982 - 984: 48(fvec4) CompositeExtract 976 2 - 985: 48(fvec4) CompositeExtract 977 2 - 986: 48(fvec4) FMod 984 985 - 987: 48(fvec4) CompositeExtract 976 3 - 988: 48(fvec4) CompositeExtract 977 3 - 989: 48(fvec4) FMod 987 988 - 990: 76 CompositeConstruct 980 983 986 989 - 991: 76 Load 79(inF0) - 992: 76 ExtInst 1(GLSL.std.450) 10(Fract) 991 + 977: 76 ExtInst 1(GLSL.std.450) 8(Floor) 976 + 978: 76 Load 79(inF0) + 979: 76 Load 80(inF1) + 980: 48(fvec4) CompositeExtract 978 0 + 981: 48(fvec4) CompositeExtract 979 0 + 982: 48(fvec4) FMod 980 981 + 983: 48(fvec4) CompositeExtract 978 1 + 984: 48(fvec4) CompositeExtract 979 1 + 985: 48(fvec4) FMod 983 984 + 986: 48(fvec4) CompositeExtract 978 2 + 987: 48(fvec4) CompositeExtract 979 2 + 988: 48(fvec4) FMod 986 987 + 989: 48(fvec4) CompositeExtract 978 3 + 990: 48(fvec4) CompositeExtract 979 3 + 991: 48(fvec4) FMod 989 990 + 992: 76 CompositeConstruct 982 985 988 991 993: 76 Load 79(inF0) - 995:994(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 993 - 996: 559(ivec4) CompositeExtract 995 1 - Store 80(inF1) 996 - 997: 76 CompositeExtract 995 0 - 998: 76 Load 79(inF0) - 999: 76 Load 80(inF1) - 1000: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 998 999 - 1001: 76 Load 79(inF0) - 1002: 76 Load 80(inF1) - 1003: 76 Load 81(inF2) - 1004: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1001 1002 1003 - 1005: 76 Load 79(inF0) - 1006: 76 ExtInst 1(GLSL.std.450) 28(Log) 1005 + 994: 76 ExtInst 1(GLSL.std.450) 10(Fract) 993 + 995: 76 Load 79(inF0) + 997:996(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 995 + 998: 558(ivec4) CompositeExtract 997 1 + Store 80(inF1) 998 + 999: 76 CompositeExtract 997 0 + 1000: 76 Load 79(inF0) + 1001: 76 Load 80(inF1) + 1002: 76 ExtInst 1(GLSL.std.450) 53(Ldexp) 1000 1001 + 1003: 76 Load 79(inF0) + 1004: 76 Load 80(inF1) + 1005: 76 Load 81(inF2) + 1006: 76 ExtInst 1(GLSL.std.450) 46(FMix) 1003 1004 1005 1007: 76 Load 79(inF0) - 1008: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1007 - 1009: 76 MatrixTimesScalar 1008 202 - 1010: 76 Load 79(inF0) - 1011: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1010 + 1008: 76 ExtInst 1(GLSL.std.450) 28(Log) 1007 + 1009: 76 Load 79(inF0) + 1010: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1009 + 1011: 76 MatrixTimesScalar 1010 201 1012: 76 Load 79(inF0) - 1013: 76 Load 80(inF1) - 1014: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1012 1013 - 1015: 76 Load 79(inF0) - 1016: 76 Load 80(inF1) - 1017: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1015 1016 - 1018: 76 Load 79(inF0) - 1019: 76 Load 80(inF1) - 1020: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1018 1019 - 1021: 76 Load 79(inF0) - 1022: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1021 + 1013: 76 ExtInst 1(GLSL.std.450) 30(Log2) 1012 + 1014: 76 Load 79(inF0) + 1015: 76 Load 80(inF1) + 1016: 76 ExtInst 1(GLSL.std.450) 40(FMax) 1014 1015 + 1017: 76 Load 79(inF0) + 1018: 76 Load 80(inF1) + 1019: 76 ExtInst 1(GLSL.std.450) 37(FMin) 1017 1018 + 1020: 76 Load 79(inF0) + 1021: 76 Load 80(inF1) + 1022: 76 ExtInst 1(GLSL.std.450) 26(Pow) 1020 1021 1023: 76 Load 79(inF0) - 1024: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1023 + 1024: 76 ExtInst 1(GLSL.std.450) 11(Radians) 1023 1025: 76 Load 79(inF0) - 1026: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1025 + 1026: 76 ExtInst 1(GLSL.std.450) 2(RoundEven) 1025 1027: 76 Load 79(inF0) - 1028: 48(fvec4) CompositeConstruct 224 224 224 224 - 1029: 48(fvec4) CompositeConstruct 225 225 225 225 - 1030: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1027 1028 1029 - 1031: 76 Load 79(inF0) - 1032: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1031 + 1028: 76 ExtInst 1(GLSL.std.450) 32(InverseSqrt) 1027 + 1029: 76 Load 79(inF0) + 1030: 48(fvec4) CompositeConstruct 223 223 223 223 + 1031: 48(fvec4) CompositeConstruct 224 224 224 224 + 1032: 76 ExtInst 1(GLSL.std.450) 43(FClamp) 1029 1030 1031 1033: 76 Load 79(inF0) - 1034: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1033 + 1034: 76 ExtInst 1(GLSL.std.450) 6(FSign) 1033 1035: 76 Load 79(inF0) 1036: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1035 - Store 80(inF1) 1036 1037: 76 Load 79(inF0) - 1038: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1037 - Store 81(inF2) 1038 + 1038: 76 ExtInst 1(GLSL.std.450) 13(Sin) 1037 + Store 80(inF1) 1038 1039: 76 Load 79(inF0) - 1040: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1039 + 1040: 76 ExtInst 1(GLSL.std.450) 14(Cos) 1039 + Store 81(inF2) 1040 1041: 76 Load 79(inF0) - 1042: 76 Load 80(inF1) - 1043: 76 Load 81(inF2) - 1044: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1041 1042 1043 - 1045: 76 Load 79(inF0) - 1046: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1045 + 1042: 76 ExtInst 1(GLSL.std.450) 19(Sinh) 1041 + 1043: 76 Load 79(inF0) + 1044: 76 Load 80(inF1) + 1045: 76 Load 81(inF2) + 1046: 76 ExtInst 1(GLSL.std.450) 49(SmoothStep) 1043 1044 1045 1047: 76 Load 79(inF0) - 1048: 76 Load 80(inF1) - 1049: 76 ExtInst 1(GLSL.std.450) 48(Step) 1047 1048 - 1050: 76 Load 79(inF0) - 1051: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1050 + 1048: 76 ExtInst 1(GLSL.std.450) 31(Sqrt) 1047 + 1049: 76 Load 79(inF0) + 1050: 76 Load 80(inF1) + 1051: 76 ExtInst 1(GLSL.std.450) 48(Step) 1049 1050 1052: 76 Load 79(inF0) - 1053: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1052 + 1053: 76 ExtInst 1(GLSL.std.450) 15(Tan) 1052 1054: 76 Load 79(inF0) - 1055: 76 Transpose 1054 + 1055: 76 ExtInst 1(GLSL.std.450) 21(Tanh) 1054 1056: 76 Load 79(inF0) - 1057: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1056 - ReturnValue 1059 + 1057: 76 Transpose 1056 + 1058: 76 Load 79(inF0) + 1059: 76 ExtInst 1(GLSL.std.450) 3(Trunc) 1058 + ReturnValue 1061 FunctionEnd 91(TestGenMul2(f1;f1;vf2;vf2;mf22;mf22;): 2 Function None 84 85(inF0): 7(ptr) FunctionParameter @@ -3977,51 +3981,51 @@ Shader version: 450 89(inFM0): 61(ptr) FunctionParameter 90(inFM1): 61(ptr) FunctionParameter 92: Label - 1062(r0): 7(ptr) Variable Function - 1066(r1): 25(ptr) Variable Function - 1070(r2): 25(ptr) Variable Function - 1074(r3): 7(ptr) Variable Function - 1078(r4): 25(ptr) Variable Function - 1082(r5): 25(ptr) Variable Function - 1086(r6): 61(ptr) Variable Function - 1090(r7): 61(ptr) Variable Function - 1094(r8): 61(ptr) Variable Function - 1063: 6(float) Load 86(inF1) - 1064: 6(float) Load 85(inF0) - 1065: 6(float) FMul 1063 1064 - Store 1062(r0) 1065 - 1067: 6(float) Load 85(inF0) - 1068: 24(fvec2) Load 87(inFV0) - 1069: 24(fvec2) VectorTimesScalar 1068 1067 - Store 1066(r1) 1069 - 1071: 24(fvec2) Load 87(inFV0) - 1072: 6(float) Load 85(inF0) - 1073: 24(fvec2) VectorTimesScalar 1071 1072 - Store 1070(r2) 1073 - 1075: 24(fvec2) Load 87(inFV0) - 1076: 24(fvec2) Load 88(inFV1) - 1077: 6(float) Dot 1075 1076 - Store 1074(r3) 1077 - 1079: 24(fvec2) Load 87(inFV0) - 1080: 60 Load 89(inFM0) - 1081: 24(fvec2) VectorTimesMatrix 1079 1080 - Store 1078(r4) 1081 - 1083: 60 Load 89(inFM0) - 1084: 24(fvec2) Load 87(inFV0) - 1085: 24(fvec2) MatrixTimesVector 1083 1084 - Store 1082(r5) 1085 - 1087: 6(float) Load 85(inF0) - 1088: 60 Load 89(inFM0) - 1089: 60 MatrixTimesScalar 1088 1087 - Store 1086(r6) 1089 - 1091: 60 Load 89(inFM0) - 1092: 6(float) Load 85(inF0) - 1093: 60 MatrixTimesScalar 1091 1092 - Store 1090(r7) 1093 - 1095: 60 Load 90(inFM1) - 1096: 60 Load 89(inFM0) - 1097: 60 MatrixTimesMatrix 1095 1096 - Store 1094(r8) 1097 + 1064(r0): 7(ptr) Variable Function + 1068(r1): 25(ptr) Variable Function + 1072(r2): 25(ptr) Variable Function + 1076(r3): 7(ptr) Variable Function + 1080(r4): 25(ptr) Variable Function + 1084(r5): 25(ptr) Variable Function + 1088(r6): 61(ptr) Variable Function + 1092(r7): 61(ptr) Variable Function + 1096(r8): 61(ptr) Variable Function + 1065: 6(float) Load 86(inF1) + 1066: 6(float) Load 85(inF0) + 1067: 6(float) FMul 1065 1066 + Store 1064(r0) 1067 + 1069: 6(float) Load 85(inF0) + 1070: 24(fvec2) Load 87(inFV0) + 1071: 24(fvec2) VectorTimesScalar 1070 1069 + Store 1068(r1) 1071 + 1073: 24(fvec2) Load 87(inFV0) + 1074: 6(float) Load 85(inF0) + 1075: 24(fvec2) VectorTimesScalar 1073 1074 + Store 1072(r2) 1075 + 1077: 24(fvec2) Load 87(inFV0) + 1078: 24(fvec2) Load 88(inFV1) + 1079: 6(float) Dot 1077 1078 + Store 1076(r3) 1079 + 1081: 24(fvec2) Load 87(inFV0) + 1082: 60 Load 89(inFM0) + 1083: 24(fvec2) VectorTimesMatrix 1081 1082 + Store 1080(r4) 1083 + 1085: 60 Load 89(inFM0) + 1086: 24(fvec2) Load 87(inFV0) + 1087: 24(fvec2) MatrixTimesVector 1085 1086 + Store 1084(r5) 1087 + 1089: 6(float) Load 85(inF0) + 1090: 60 Load 89(inFM0) + 1091: 60 MatrixTimesScalar 1090 1089 + Store 1088(r6) 1091 + 1093: 60 Load 89(inFM0) + 1094: 6(float) Load 85(inF0) + 1095: 60 MatrixTimesScalar 1093 1094 + Store 1092(r7) 1095 + 1097: 60 Load 90(inFM1) + 1098: 60 Load 89(inFM0) + 1099: 60 MatrixTimesMatrix 1097 1098 + Store 1096(r8) 1099 Return FunctionEnd 100(TestGenMul3(f1;f1;vf3;vf3;mf33;mf33;): 2 Function None 93 @@ -4032,51 +4036,51 @@ Shader version: 450 98(inFM0): 69(ptr) FunctionParameter 99(inFM1): 69(ptr) FunctionParameter 101: Label - 1098(r0): 7(ptr) Variable Function - 1102(r1): 37(ptr) Variable Function - 1106(r2): 37(ptr) Variable Function - 1110(r3): 7(ptr) Variable Function - 1114(r4): 37(ptr) Variable Function - 1118(r5): 37(ptr) Variable Function - 1122(r6): 69(ptr) Variable Function - 1126(r7): 69(ptr) Variable Function - 1130(r8): 69(ptr) Variable Function - 1099: 6(float) Load 95(inF1) - 1100: 6(float) Load 94(inF0) - 1101: 6(float) FMul 1099 1100 - Store 1098(r0) 1101 - 1103: 6(float) Load 94(inF0) - 1104: 36(fvec3) Load 96(inFV0) - 1105: 36(fvec3) VectorTimesScalar 1104 1103 - Store 1102(r1) 1105 - 1107: 36(fvec3) Load 96(inFV0) - 1108: 6(float) Load 94(inF0) - 1109: 36(fvec3) VectorTimesScalar 1107 1108 - Store 1106(r2) 1109 - 1111: 36(fvec3) Load 96(inFV0) - 1112: 36(fvec3) Load 97(inFV1) - 1113: 6(float) Dot 1111 1112 - Store 1110(r3) 1113 - 1115: 36(fvec3) Load 96(inFV0) - 1116: 68 Load 98(inFM0) - 1117: 36(fvec3) VectorTimesMatrix 1115 1116 - Store 1114(r4) 1117 - 1119: 68 Load 98(inFM0) - 1120: 36(fvec3) Load 96(inFV0) - 1121: 36(fvec3) MatrixTimesVector 1119 1120 - Store 1118(r5) 1121 - 1123: 6(float) Load 94(inF0) - 1124: 68 Load 98(inFM0) - 1125: 68 MatrixTimesScalar 1124 1123 - Store 1122(r6) 1125 - 1127: 68 Load 98(inFM0) - 1128: 6(float) Load 94(inF0) - 1129: 68 MatrixTimesScalar 1127 1128 - Store 1126(r7) 1129 - 1131: 68 Load 99(inFM1) - 1132: 68 Load 98(inFM0) - 1133: 68 MatrixTimesMatrix 1131 1132 - Store 1130(r8) 1133 + 1100(r0): 7(ptr) Variable Function + 1104(r1): 37(ptr) Variable Function + 1108(r2): 37(ptr) Variable Function + 1112(r3): 7(ptr) Variable Function + 1116(r4): 37(ptr) Variable Function + 1120(r5): 37(ptr) Variable Function + 1124(r6): 69(ptr) Variable Function + 1128(r7): 69(ptr) Variable Function + 1132(r8): 69(ptr) Variable Function + 1101: 6(float) Load 95(inF1) + 1102: 6(float) Load 94(inF0) + 1103: 6(float) FMul 1101 1102 + Store 1100(r0) 1103 + 1105: 6(float) Load 94(inF0) + 1106: 36(fvec3) Load 96(inFV0) + 1107: 36(fvec3) VectorTimesScalar 1106 1105 + Store 1104(r1) 1107 + 1109: 36(fvec3) Load 96(inFV0) + 1110: 6(float) Load 94(inF0) + 1111: 36(fvec3) VectorTimesScalar 1109 1110 + Store 1108(r2) 1111 + 1113: 36(fvec3) Load 96(inFV0) + 1114: 36(fvec3) Load 97(inFV1) + 1115: 6(float) Dot 1113 1114 + Store 1112(r3) 1115 + 1117: 36(fvec3) Load 96(inFV0) + 1118: 68 Load 98(inFM0) + 1119: 36(fvec3) VectorTimesMatrix 1117 1118 + Store 1116(r4) 1119 + 1121: 68 Load 98(inFM0) + 1122: 36(fvec3) Load 96(inFV0) + 1123: 36(fvec3) MatrixTimesVector 1121 1122 + Store 1120(r5) 1123 + 1125: 6(float) Load 94(inF0) + 1126: 68 Load 98(inFM0) + 1127: 68 MatrixTimesScalar 1126 1125 + Store 1124(r6) 1127 + 1129: 68 Load 98(inFM0) + 1130: 6(float) Load 94(inF0) + 1131: 68 MatrixTimesScalar 1129 1130 + Store 1128(r7) 1131 + 1133: 68 Load 99(inFM1) + 1134: 68 Load 98(inFM0) + 1135: 68 MatrixTimesMatrix 1133 1134 + Store 1132(r8) 1135 Return FunctionEnd 109(TestGenMul4(f1;f1;vf4;vf4;mf44;mf44;): 2 Function None 102 @@ -4087,51 +4091,51 @@ Shader version: 450 107(inFM0): 77(ptr) FunctionParameter 108(inFM1): 77(ptr) FunctionParameter 110: Label - 1134(r0): 7(ptr) Variable Function - 1138(r1): 49(ptr) Variable Function - 1142(r2): 49(ptr) Variable Function - 1146(r3): 7(ptr) Variable Function - 1150(r4): 49(ptr) Variable Function - 1154(r5): 49(ptr) Variable Function - 1158(r6): 77(ptr) Variable Function - 1162(r7): 77(ptr) Variable Function - 1166(r8): 77(ptr) Variable Function - 1135: 6(float) Load 104(inF1) - 1136: 6(float) Load 103(inF0) - 1137: 6(float) FMul 1135 1136 - Store 1134(r0) 1137 - 1139: 6(float) Load 103(inF0) - 1140: 48(fvec4) Load 105(inFV0) - 1141: 48(fvec4) VectorTimesScalar 1140 1139 - Store 1138(r1) 1141 - 1143: 48(fvec4) Load 105(inFV0) - 1144: 6(float) Load 103(inF0) - 1145: 48(fvec4) VectorTimesScalar 1143 1144 - Store 1142(r2) 1145 - 1147: 48(fvec4) Load 105(inFV0) - 1148: 48(fvec4) Load 106(inFV1) - 1149: 6(float) Dot 1147 1148 - Store 1146(r3) 1149 - 1151: 48(fvec4) Load 105(inFV0) - 1152: 76 Load 107(inFM0) - 1153: 48(fvec4) VectorTimesMatrix 1151 1152 - Store 1150(r4) 1153 - 1155: 76 Load 107(inFM0) - 1156: 48(fvec4) Load 105(inFV0) - 1157: 48(fvec4) MatrixTimesVector 1155 1156 - Store 1154(r5) 1157 - 1159: 6(float) Load 103(inF0) - 1160: 76 Load 107(inFM0) - 1161: 76 MatrixTimesScalar 1160 1159 - Store 1158(r6) 1161 - 1163: 76 Load 107(inFM0) - 1164: 6(float) Load 103(inF0) - 1165: 76 MatrixTimesScalar 1163 1164 - Store 1162(r7) 1165 - 1167: 76 Load 108(inFM1) - 1168: 76 Load 107(inFM0) - 1169: 76 MatrixTimesMatrix 1167 1168 - Store 1166(r8) 1169 + 1136(r0): 7(ptr) Variable Function + 1140(r1): 49(ptr) Variable Function + 1144(r2): 49(ptr) Variable Function + 1148(r3): 7(ptr) Variable Function + 1152(r4): 49(ptr) Variable Function + 1156(r5): 49(ptr) Variable Function + 1160(r6): 77(ptr) Variable Function + 1164(r7): 77(ptr) Variable Function + 1168(r8): 77(ptr) Variable Function + 1137: 6(float) Load 104(inF1) + 1138: 6(float) Load 103(inF0) + 1139: 6(float) FMul 1137 1138 + Store 1136(r0) 1139 + 1141: 6(float) Load 103(inF0) + 1142: 48(fvec4) Load 105(inFV0) + 1143: 48(fvec4) VectorTimesScalar 1142 1141 + Store 1140(r1) 1143 + 1145: 48(fvec4) Load 105(inFV0) + 1146: 6(float) Load 103(inF0) + 1147: 48(fvec4) VectorTimesScalar 1145 1146 + Store 1144(r2) 1147 + 1149: 48(fvec4) Load 105(inFV0) + 1150: 48(fvec4) Load 106(inFV1) + 1151: 6(float) Dot 1149 1150 + Store 1148(r3) 1151 + 1153: 48(fvec4) Load 105(inFV0) + 1154: 76 Load 107(inFM0) + 1155: 48(fvec4) VectorTimesMatrix 1153 1154 + Store 1152(r4) 1155 + 1157: 76 Load 107(inFM0) + 1158: 48(fvec4) Load 105(inFV0) + 1159: 48(fvec4) MatrixTimesVector 1157 1158 + Store 1156(r5) 1159 + 1161: 6(float) Load 103(inF0) + 1162: 76 Load 107(inFM0) + 1163: 76 MatrixTimesScalar 1162 1161 + Store 1160(r6) 1163 + 1165: 76 Load 107(inFM0) + 1166: 6(float) Load 103(inF0) + 1167: 76 MatrixTimesScalar 1165 1166 + Store 1164(r7) 1167 + 1169: 76 Load 108(inFM1) + 1170: 76 Load 107(inFM0) + 1171: 76 MatrixTimesMatrix 1169 1170 + Store 1168(r8) 1171 Return FunctionEnd 129(TestGenMulNxM(f1;f1;vf2;vf3;mf23;mf32;mf33;mf34;mf24;): 2 Function None 119 @@ -4145,90 +4149,90 @@ Shader version: 450 127(inFM3x4): 116(ptr) FunctionParameter 128(inFM2x4): 118(ptr) FunctionParameter 130: Label - 1170(r00): 7(ptr) Variable Function - 1174(r01): 25(ptr) Variable Function - 1178(r02): 37(ptr) Variable Function - 1182(r03): 25(ptr) Variable Function - 1186(r04): 37(ptr) Variable Function - 1190(r05): 7(ptr) Variable Function - 1194(r06): 7(ptr) Variable Function - 1198(r07): 37(ptr) Variable Function - 1202(r08): 25(ptr) Variable Function - 1206(r09): 25(ptr) Variable Function - 1210(r10): 37(ptr) Variable Function - 1214(r11): 112(ptr) Variable Function - 1218(r12): 114(ptr) Variable Function - 1222(r13): 61(ptr) Variable Function - 1226(r14): 112(ptr) Variable Function - 1230(r15): 118(ptr) Variable Function - 1234(r16): 116(ptr) Variable Function - 1171: 6(float) Load 121(inF1) - 1172: 6(float) Load 120(inF0) - 1173: 6(float) FMul 1171 1172 - Store 1170(r00) 1173 - 1175: 6(float) Load 120(inF0) - 1176: 24(fvec2) Load 122(inFV2) - 1177: 24(fvec2) VectorTimesScalar 1176 1175 - Store 1174(r01) 1177 - 1179: 6(float) Load 120(inF0) - 1180: 36(fvec3) Load 123(inFV3) - 1181: 36(fvec3) VectorTimesScalar 1180 1179 - Store 1178(r02) 1181 - 1183: 24(fvec2) Load 122(inFV2) - 1184: 6(float) Load 120(inF0) - 1185: 24(fvec2) VectorTimesScalar 1183 1184 - Store 1182(r03) 1185 - 1187: 36(fvec3) Load 123(inFV3) - 1188: 6(float) Load 120(inF0) - 1189: 36(fvec3) VectorTimesScalar 1187 1188 - Store 1186(r04) 1189 - 1191: 24(fvec2) Load 122(inFV2) - 1192: 24(fvec2) Load 122(inFV2) - 1193: 6(float) Dot 1191 1192 - Store 1190(r05) 1193 - 1195: 36(fvec3) Load 123(inFV3) - 1196: 36(fvec3) Load 123(inFV3) - 1197: 6(float) Dot 1195 1196 - Store 1194(r06) 1197 - 1199: 111 Load 124(inFM2x3) - 1200: 24(fvec2) Load 122(inFV2) - 1201: 36(fvec3) MatrixTimesVector 1199 1200 - Store 1198(r07) 1201 - 1203: 113 Load 125(inFM3x2) - 1204: 36(fvec3) Load 123(inFV3) - 1205: 24(fvec2) MatrixTimesVector 1203 1204 - Store 1202(r08) 1205 - 1207: 36(fvec3) Load 123(inFV3) - 1208: 111 Load 124(inFM2x3) - 1209: 24(fvec2) VectorTimesMatrix 1207 1208 - Store 1206(r09) 1209 - 1211: 24(fvec2) Load 122(inFV2) - 1212: 113 Load 125(inFM3x2) - 1213: 36(fvec3) VectorTimesMatrix 1211 1212 - Store 1210(r10) 1213 - 1215: 6(float) Load 120(inF0) - 1216: 111 Load 124(inFM2x3) - 1217: 111 MatrixTimesScalar 1216 1215 - Store 1214(r11) 1217 - 1219: 6(float) Load 120(inF0) - 1220: 113 Load 125(inFM3x2) - 1221: 113 MatrixTimesScalar 1220 1219 - Store 1218(r12) 1221 - 1223: 113 Load 125(inFM3x2) - 1224: 111 Load 124(inFM2x3) - 1225: 60 MatrixTimesMatrix 1223 1224 - Store 1222(r13) 1225 - 1227: 68 Load 126(inFM3x3) - 1228: 111 Load 124(inFM2x3) - 1229: 111 MatrixTimesMatrix 1227 1228 - Store 1226(r14) 1229 - 1231: 115 Load 127(inFM3x4) - 1232: 111 Load 124(inFM2x3) - 1233: 117 MatrixTimesMatrix 1231 1232 - Store 1230(r15) 1233 - 1235: 117 Load 128(inFM2x4) - 1236: 113 Load 125(inFM3x2) - 1237: 115 MatrixTimesMatrix 1235 1236 - Store 1234(r16) 1237 + 1172(r00): 7(ptr) Variable Function + 1176(r01): 25(ptr) Variable Function + 1180(r02): 37(ptr) Variable Function + 1184(r03): 25(ptr) Variable Function + 1188(r04): 37(ptr) Variable Function + 1192(r05): 7(ptr) Variable Function + 1196(r06): 7(ptr) Variable Function + 1200(r07): 37(ptr) Variable Function + 1204(r08): 25(ptr) Variable Function + 1208(r09): 25(ptr) Variable Function + 1212(r10): 37(ptr) Variable Function + 1216(r11): 112(ptr) Variable Function + 1220(r12): 114(ptr) Variable Function + 1224(r13): 61(ptr) Variable Function + 1228(r14): 112(ptr) Variable Function + 1232(r15): 118(ptr) Variable Function + 1236(r16): 116(ptr) Variable Function + 1173: 6(float) Load 121(inF1) + 1174: 6(float) Load 120(inF0) + 1175: 6(float) FMul 1173 1174 + Store 1172(r00) 1175 + 1177: 6(float) Load 120(inF0) + 1178: 24(fvec2) Load 122(inFV2) + 1179: 24(fvec2) VectorTimesScalar 1178 1177 + Store 1176(r01) 1179 + 1181: 6(float) Load 120(inF0) + 1182: 36(fvec3) Load 123(inFV3) + 1183: 36(fvec3) VectorTimesScalar 1182 1181 + Store 1180(r02) 1183 + 1185: 24(fvec2) Load 122(inFV2) + 1186: 6(float) Load 120(inF0) + 1187: 24(fvec2) VectorTimesScalar 1185 1186 + Store 1184(r03) 1187 + 1189: 36(fvec3) Load 123(inFV3) + 1190: 6(float) Load 120(inF0) + 1191: 36(fvec3) VectorTimesScalar 1189 1190 + Store 1188(r04) 1191 + 1193: 24(fvec2) Load 122(inFV2) + 1194: 24(fvec2) Load 122(inFV2) + 1195: 6(float) Dot 1193 1194 + Store 1192(r05) 1195 + 1197: 36(fvec3) Load 123(inFV3) + 1198: 36(fvec3) Load 123(inFV3) + 1199: 6(float) Dot 1197 1198 + Store 1196(r06) 1199 + 1201: 111 Load 124(inFM2x3) + 1202: 24(fvec2) Load 122(inFV2) + 1203: 36(fvec3) MatrixTimesVector 1201 1202 + Store 1200(r07) 1203 + 1205: 113 Load 125(inFM3x2) + 1206: 36(fvec3) Load 123(inFV3) + 1207: 24(fvec2) MatrixTimesVector 1205 1206 + Store 1204(r08) 1207 + 1209: 36(fvec3) Load 123(inFV3) + 1210: 111 Load 124(inFM2x3) + 1211: 24(fvec2) VectorTimesMatrix 1209 1210 + Store 1208(r09) 1211 + 1213: 24(fvec2) Load 122(inFV2) + 1214: 113 Load 125(inFM3x2) + 1215: 36(fvec3) VectorTimesMatrix 1213 1214 + Store 1212(r10) 1215 + 1217: 6(float) Load 120(inF0) + 1218: 111 Load 124(inFM2x3) + 1219: 111 MatrixTimesScalar 1218 1217 + Store 1216(r11) 1219 + 1221: 6(float) Load 120(inF0) + 1222: 113 Load 125(inFM3x2) + 1223: 113 MatrixTimesScalar 1222 1221 + Store 1220(r12) 1223 + 1225: 113 Load 125(inFM3x2) + 1226: 111 Load 124(inFM2x3) + 1227: 60 MatrixTimesMatrix 1225 1226 + Store 1224(r13) 1227 + 1229: 68 Load 126(inFM3x3) + 1230: 111 Load 124(inFM2x3) + 1231: 111 MatrixTimesMatrix 1229 1230 + Store 1228(r14) 1231 + 1233: 115 Load 127(inFM3x4) + 1234: 111 Load 124(inFM2x3) + 1235: 117 MatrixTimesMatrix 1233 1234 + Store 1232(r15) 1235 + 1237: 117 Load 128(inFM2x4) + 1238: 113 Load 125(inFM3x2) + 1239: 115 MatrixTimesMatrix 1237 1238 + Store 1236(r16) 1239 Return FunctionEnd diff --git a/Test/baseResults/hlsl.layout.frag.out b/Test/baseResults/hlsl.layout.frag.out index 44553855ddd87982456242d62abdf4fbe2b38886..0c12435a14d2bb61daa2350af59b3b1decde2132 100755 --- a/Test/baseResults/hlsl.layout.frag.out +++ b/Test/baseResults/hlsl.layout.frag.out @@ -2,7 +2,7 @@ hlsl.layout.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:16 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:16 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:16 Function Parameters: 0:16 'input' (in 4-component vector of float) 0:? Sequence @@ -11,33 +11,34 @@ gl_FragCoord origin is upper left 0:17 add (temp 4-component vector of float) 0:17 add (temp 4-component vector of float) 0:17 'input' (in 4-component vector of float) -0:17 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:17 Constant: 0:17 0 (const uint) -0:17 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) -0:17 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float) +0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:17 Constant: 0:17 0 (const uint) -0:17 v1PostLayout: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) 0:17 Constant: 0:17 0 (const uint) 0:? Linker Objects -0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:? 'specConst' (specialization-constant const int) 0:? 10 (const int) -0:? 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:16 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:16 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:16 Function Parameters: 0:16 'input' (in 4-component vector of float) 0:? Sequence @@ -46,24 +47,24 @@ gl_FragCoord origin is upper left 0:17 add (temp 4-component vector of float) 0:17 add (temp 4-component vector of float) 0:17 'input' (in 4-component vector of float) -0:17 v1: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:17 v1: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) 0:17 Constant: 0:17 0 (const uint) -0:17 v5: direct index for structure (layout(column_major std430 offset=0 ) buffer 4-component vector of float) -0:17 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:17 v5: direct index for structure (layout(row_major std430 offset=0 ) buffer 4-component vector of float) +0:17 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:17 Constant: 0:17 0 (const uint) -0:17 v1PostLayout: direct index for structure (layout(column_major std430 offset=16 ) buffer 4-component vector of float) -0:17 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:17 v1PostLayout: direct index for structure (layout(row_major std430 offset=16 ) buffer 4-component vector of float) +0:17 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) 0:17 Constant: 0:17 0 (const uint) 0:? Linker Objects -0:? 'anon@0' (layout(set=3 binding=5 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1}) -0:? 'anon@1' (layout(column_major std430 push_constant ) buffer block{layout(column_major std430 offset=0 ) buffer 4-component vector of float v5}) +0:? 'anon@0' (layout(set=3 binding=5 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1}) +0:? 'anon@1' (layout(row_major std430 push_constant ) buffer block{layout(row_major std430 offset=0 ) buffer 4-component vector of float v5}) 0:? 'specConst' (specialization-constant const int) 0:? 10 (const int) -0:? 'anon@2' (layout(set=4 binding=7 column_major std430 ) buffer block{layout(column_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) +0:? 'anon@2' (layout(set=4 binding=7 row_major std430 ) buffer block{layout(row_major std430 offset=16 ) buffer 4-component vector of float v1PostLayout}) // Module Version 10000 // Generated by (magic number): 80001 @@ -77,23 +78,23 @@ gl_FragCoord origin is upper left Name 4 "main" Name 11 "PixelShaderFunction(vf4;" Name 10 "input" - Name 14 "" - MemberName 14 0 "v1" + Name 14 "tbufName" + MemberName 14(tbufName) 0 "v1" Name 16 "" - Name 23 "" - MemberName 23 0 "v5" + Name 23 "tbufName2" + MemberName 23(tbufName2) 0 "v5" Name 25 "" - Name 30 "" - MemberName 30 0 "v1PostLayout" + Name 30 "tbufName2" + MemberName 30(tbufName2) 0 "v1PostLayout" Name 32 "" - MemberDecorate 14 0 Offset 16 - Decorate 14 BufferBlock + MemberDecorate 14(tbufName) 0 Offset 16 + Decorate 14(tbufName) BufferBlock Decorate 16 DescriptorSet 3 Decorate 16 Binding 5 - MemberDecorate 23 0 Offset 0 - Decorate 23 BufferBlock - MemberDecorate 30 0 Offset 16 - Decorate 30 BufferBlock + MemberDecorate 23(tbufName2) 0 Offset 0 + Decorate 23(tbufName2) BufferBlock + MemberDecorate 30(tbufName2) 0 Offset 16 + Decorate 30(tbufName2) BufferBlock Decorate 32 DescriptorSet 4 Decorate 32 Binding 7 Decorate 38 SpecId 17 @@ -103,22 +104,23 @@ gl_FragCoord origin is upper left 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) 9: TypeFunction 7(fvec4) 8(ptr) - 14: TypeStruct 7(fvec4) - 15: TypePointer Uniform 14(struct) + 14(tbufName): TypeStruct 7(fvec4) + 15: TypePointer Uniform 14(tbufName) 16: 15(ptr) Variable Uniform 17: TypeInt 32 1 18: 17(int) Constant 0 19: TypePointer Uniform 7(fvec4) - 23: TypeStruct 7(fvec4) - 24: TypePointer PushConstant 23(struct) + 23(tbufName2): TypeStruct 7(fvec4) + 24: TypePointer PushConstant 23(tbufName2) 25: 24(ptr) Variable PushConstant 26: TypePointer PushConstant 7(fvec4) - 30: TypeStruct 7(fvec4) - 31: TypePointer Uniform 30(struct) + 30(tbufName2): TypeStruct 7(fvec4) + 31: TypePointer Uniform 30(tbufName2) 32: 31(ptr) Variable Uniform 38: 17(int) SpecConstant 10 4(main): 2 Function None 3 5: Label + Return FunctionEnd 11(PixelShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.load.2dms.dx10.frag.out b/Test/baseResults/hlsl.load.2dms.dx10.frag.out index 051f2017188fc0f74ca79dce6e9200150c53882f..288a0f3f5e383a6bbeebbe38f97045be7720c645 100644 --- a/Test/baseResults/hlsl.load.2dms.dx10.frag.out +++ b/Test/baseResults/hlsl.load.2dms.dx10.frag.out @@ -2,75 +2,129 @@ hlsl.load.2dms.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence -0:32 textureFetch (global 4-component vector of float) +0:32 textureFetch (temp 4-component vector of float) 0:32 'g_tTex2dmsf4' (uniform texture2DMS) -0:32 'c2' (uniform 2-component vector of int) +0:32 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:32 Constant: +0:32 1 (const uint) 0:32 Constant: 0:32 3 (const int) -0:33 textureFetch (global 4-component vector of int) +0:33 textureFetch (temp 4-component vector of int) 0:33 'g_tTex2dmsi4' (uniform itexture2DMS) -0:33 'c2' (uniform 2-component vector of int) +0:33 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:33 Constant: +0:33 1 (const uint) 0:33 Constant: 0:33 3 (const int) -0:34 textureFetch (global 4-component vector of uint) +0:34 textureFetch (temp 4-component vector of uint) 0:34 'g_tTex2dmsu4' (uniform utexture2DMS) -0:34 'c2' (uniform 2-component vector of int) +0:34 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:34 Constant: +0:34 1 (const uint) 0:34 Constant: 0:34 3 (const int) -0:37 textureFetchOffset (global 4-component vector of float) +0:37 textureFetchOffset (temp 4-component vector of float) 0:37 'g_tTex2dmsf4' (uniform texture2DMS) -0:37 'c2' (uniform 2-component vector of int) +0:37 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 1 (const uint) 0:37 Constant: 0:37 3 (const int) -0:37 'o2' (uniform 2-component vector of int) -0:38 textureFetchOffset (global 4-component vector of int) +0:37 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 5 (const uint) +0:38 textureFetchOffset (temp 4-component vector of int) 0:38 'g_tTex2dmsi4' (uniform itexture2DMS) -0:38 'c2' (uniform 2-component vector of int) +0:38 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 1 (const uint) 0:38 Constant: 0:38 3 (const int) -0:38 'o2' (uniform 2-component vector of int) -0:39 textureFetchOffset (global 4-component vector of uint) +0:38 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 5 (const uint) +0:39 textureFetchOffset (temp 4-component vector of uint) 0:39 'g_tTex2dmsu4' (uniform utexture2DMS) -0:39 'c2' (uniform 2-component vector of int) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 1 (const uint) 0:39 Constant: 0:39 3 (const int) -0:39 'o2' (uniform 2-component vector of int) -0:42 textureFetch (global 4-component vector of float) +0:39 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 5 (const uint) +0:42 textureFetch (temp 4-component vector of float) 0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:42 'c3' (uniform 3-component vector of int) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) 0:42 Constant: 0:42 3 (const int) -0:43 textureFetch (global 4-component vector of int) +0:43 textureFetch (temp 4-component vector of int) 0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) -0:43 'c3' (uniform 3-component vector of int) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:43 Constant: +0:43 2 (const uint) 0:43 Constant: 0:43 3 (const int) -0:44 textureFetch (global 4-component vector of uint) +0:44 textureFetch (temp 4-component vector of uint) 0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:44 'c3' (uniform 3-component vector of int) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) 0:44 Constant: 0:44 3 (const int) -0:47 textureFetchOffset (global 4-component vector of float) +0:47 textureFetchOffset (temp 4-component vector of float) 0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:47 'c3' (uniform 3-component vector of int) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) -0:47 'o2' (uniform 2-component vector of int) -0:48 textureFetchOffset (global 4-component vector of int) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:48 textureFetchOffset (temp 4-component vector of int) 0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) -0:48 'c3' (uniform 3-component vector of int) +0:48 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 2 (const uint) 0:48 Constant: 0:48 3 (const int) -0:48 'o2' (uniform 2-component vector of int) -0:49 textureFetchOffset (global 4-component vector of uint) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:49 textureFetchOffset (temp 4-component vector of uint) 0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:49 'c3' (uniform 3-component vector of int) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) 0:49 Constant: 0:49 3 (const int) -0:49 'o2' (uniform 2-component vector of int) +0:49 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 5 (const uint) 0:51 move second child to first child (temp 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -88,8 +142,8 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:? Sequence -0:? Sequence +0:54 Sequence +0:54 Sequence 0:54 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:54 Color: direct index for structure (temp 4-component vector of float) @@ -104,6 +158,8 @@ gl_FragCoord origin is upper left 0:54 1 (const int) 0:54 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsi4' (uniform itexture2DMS) @@ -111,16 +167,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -129,75 +176,129 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence -0:32 textureFetch (global 4-component vector of float) +0:32 textureFetch (temp 4-component vector of float) 0:32 'g_tTex2dmsf4' (uniform texture2DMS) -0:32 'c2' (uniform 2-component vector of int) +0:32 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:32 Constant: +0:32 1 (const uint) 0:32 Constant: 0:32 3 (const int) -0:33 textureFetch (global 4-component vector of int) +0:33 textureFetch (temp 4-component vector of int) 0:33 'g_tTex2dmsi4' (uniform itexture2DMS) -0:33 'c2' (uniform 2-component vector of int) +0:33 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:33 Constant: +0:33 1 (const uint) 0:33 Constant: 0:33 3 (const int) -0:34 textureFetch (global 4-component vector of uint) +0:34 textureFetch (temp 4-component vector of uint) 0:34 'g_tTex2dmsu4' (uniform utexture2DMS) -0:34 'c2' (uniform 2-component vector of int) +0:34 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:34 Constant: +0:34 1 (const uint) 0:34 Constant: 0:34 3 (const int) -0:37 textureFetchOffset (global 4-component vector of float) +0:37 textureFetchOffset (temp 4-component vector of float) 0:37 'g_tTex2dmsf4' (uniform texture2DMS) -0:37 'c2' (uniform 2-component vector of int) +0:37 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 1 (const uint) 0:37 Constant: 0:37 3 (const int) -0:37 'o2' (uniform 2-component vector of int) -0:38 textureFetchOffset (global 4-component vector of int) +0:37 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:37 Constant: +0:37 5 (const uint) +0:38 textureFetchOffset (temp 4-component vector of int) 0:38 'g_tTex2dmsi4' (uniform itexture2DMS) -0:38 'c2' (uniform 2-component vector of int) +0:38 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 1 (const uint) 0:38 Constant: 0:38 3 (const int) -0:38 'o2' (uniform 2-component vector of int) -0:39 textureFetchOffset (global 4-component vector of uint) +0:38 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:38 Constant: +0:38 5 (const uint) +0:39 textureFetchOffset (temp 4-component vector of uint) 0:39 'g_tTex2dmsu4' (uniform utexture2DMS) -0:39 'c2' (uniform 2-component vector of int) +0:39 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 1 (const uint) 0:39 Constant: 0:39 3 (const int) -0:39 'o2' (uniform 2-component vector of int) -0:42 textureFetch (global 4-component vector of float) +0:39 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:39 Constant: +0:39 5 (const uint) +0:42 textureFetch (temp 4-component vector of float) 0:42 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:42 'c3' (uniform 3-component vector of int) +0:42 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 2 (const uint) 0:42 Constant: 0:42 3 (const int) -0:43 textureFetch (global 4-component vector of int) +0:43 textureFetch (temp 4-component vector of int) 0:43 'g_tTex2dmsi4a' (uniform itexture2DMSArray) -0:43 'c3' (uniform 3-component vector of int) +0:43 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:43 Constant: +0:43 2 (const uint) 0:43 Constant: 0:43 3 (const int) -0:44 textureFetch (global 4-component vector of uint) +0:44 textureFetch (temp 4-component vector of uint) 0:44 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:44 'c3' (uniform 3-component vector of int) +0:44 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 2 (const uint) 0:44 Constant: 0:44 3 (const int) -0:47 textureFetchOffset (global 4-component vector of float) +0:47 textureFetchOffset (temp 4-component vector of float) 0:47 'g_tTex2dmsf4a' (uniform texture2DMSArray) -0:47 'c3' (uniform 3-component vector of int) +0:47 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 2 (const uint) 0:47 Constant: 0:47 3 (const int) -0:47 'o2' (uniform 2-component vector of int) -0:48 textureFetchOffset (global 4-component vector of int) +0:47 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:47 Constant: +0:47 5 (const uint) +0:48 textureFetchOffset (temp 4-component vector of int) 0:48 'g_tTex2dmsi4a' (uniform itexture2DMSArray) -0:48 'c3' (uniform 3-component vector of int) +0:48 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 2 (const uint) 0:48 Constant: 0:48 3 (const int) -0:48 'o2' (uniform 2-component vector of int) -0:49 textureFetchOffset (global 4-component vector of uint) +0:48 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:48 Constant: +0:48 5 (const uint) +0:49 textureFetchOffset (temp 4-component vector of uint) 0:49 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:49 'c3' (uniform 3-component vector of int) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) 0:49 Constant: 0:49 3 (const int) -0:49 'o2' (uniform 2-component vector of int) +0:49 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 5 (const uint) 0:51 move second child to first child (temp 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) 0:51 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -215,8 +316,8 @@ gl_FragCoord origin is upper left 0:52 1 (const int) 0:52 Constant: 0:52 1.000000 -0:? Sequence -0:? Sequence +0:54 Sequence +0:54 Sequence 0:54 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:54 Color: direct index for structure (temp 4-component vector of float) @@ -231,6 +332,8 @@ gl_FragCoord origin is upper left 0:54 1 (const int) 0:54 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex2dmsf4' (uniform texture2DMS) 0:? 'g_tTex2dmsi4' (uniform itexture2DMS) @@ -238,60 +341,63 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2dmsf4a' (uniform texture2DMSArray) 0:? 'g_tTex2dmsi4a' (uniform itexture2DMSArray) 0:? 'g_tTex2dmsu4a' (uniform utexture2DMSArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 110 +// Id's are bound by 123 Capability Shader Capability ImageGatherExtended Capability ImageMSArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 92 96 + EntryPoint Fragment 4 "main" 112 116 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex2dmsf4" - Name 14 "c2" - Name 21 "g_tTex2dmsi4" - Name 29 "g_tTex2dmsu4" - Name 36 "o2" - Name 49 "g_tTex2dmsf4a" - Name 53 "c3" - Name 58 "g_tTex2dmsi4a" - Name 64 "g_tTex2dmsu4a" - Name 80 "PS_OUTPUT" - MemberName 80(PS_OUTPUT) 0 "Color" - MemberName 80(PS_OUTPUT) 1 "Depth" - Name 82 "psout" - Name 92 "Color" - Name 96 "Depth" - Name 102 "g_sSamp" - Name 104 "c1" - Name 106 "c4" - Name 107 "o1" - Name 108 "o3" - Name 109 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 27 "g_tTex2dmsi4" + Name 35 "g_tTex2dmsu4" + Name 62 "g_tTex2dmsf4a" + Name 71 "g_tTex2dmsi4a" + Name 78 "g_tTex2dmsu4a" + Name 101 "PS_OUTPUT" + MemberName 101(PS_OUTPUT) 0 "Color" + MemberName 101(PS_OUTPUT) 1 "Depth" + Name 103 "psout" + Name 112 "Color" + Name 116 "Depth" + Name 122 "g_sSamp" Decorate 9(g_tTex2dmsf4) DescriptorSet 0 - Decorate 21(g_tTex2dmsi4) DescriptorSet 0 - Decorate 29(g_tTex2dmsu4) DescriptorSet 0 - Decorate 49(g_tTex2dmsf4a) DescriptorSet 0 - Decorate 58(g_tTex2dmsi4a) DescriptorSet 0 - Decorate 64(g_tTex2dmsu4a) DescriptorSet 0 - Decorate 92(Color) Location 0 - Decorate 96(Depth) BuiltIn FragDepth - Decorate 102(g_sSamp) DescriptorSet 0 - Decorate 102(g_sSamp) Binding 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 27(g_tTex2dmsi4) DescriptorSet 0 + Decorate 35(g_tTex2dmsu4) DescriptorSet 0 + Decorate 62(g_tTex2dmsf4a) DescriptorSet 0 + Decorate 71(g_tTex2dmsi4a) DescriptorSet 0 + Decorate 78(g_tTex2dmsu4a) DescriptorSet 0 + Decorate 112(Color) Location 0 + Decorate 116(Depth) BuiltIn FragDepth + Decorate 122(g_sSamp) DescriptorSet 0 + Decorate 122(g_sSamp) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -300,108 +406,121 @@ gl_FragCoord origin is upper left 9(g_tTex2dmsf4): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 12: TypeVector 11(int) 2 - 13: TypePointer UniformConstant 12(ivec2) - 14(c2): 13(ptr) Variable UniformConstant - 16: 11(int) Constant 3 - 17: TypeVector 6(float) 4 - 19: TypeImage 11(int) 2D multi-sampled sampled format:Unknown - 20: TypePointer UniformConstant 19 -21(g_tTex2dmsi4): 20(ptr) Variable UniformConstant - 24: TypeVector 11(int) 4 - 26: TypeInt 32 0 - 27: TypeImage 26(int) 2D multi-sampled sampled format:Unknown - 28: TypePointer UniformConstant 27 -29(g_tTex2dmsu4): 28(ptr) Variable UniformConstant - 32: TypeVector 26(int) 4 - 36(o2): 13(ptr) Variable UniformConstant - 47: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown - 48: TypePointer UniformConstant 47 -49(g_tTex2dmsf4a): 48(ptr) Variable UniformConstant - 51: TypeVector 11(int) 3 - 52: TypePointer UniformConstant 51(ivec3) - 53(c3): 52(ptr) Variable UniformConstant - 56: TypeImage 11(int) 2D array multi-sampled sampled format:Unknown - 57: TypePointer UniformConstant 56 -58(g_tTex2dmsi4a): 57(ptr) Variable UniformConstant - 62: TypeImage 26(int) 2D array multi-sampled sampled format:Unknown - 63: TypePointer UniformConstant 62 -64(g_tTex2dmsu4a): 63(ptr) Variable UniformConstant - 80(PS_OUTPUT): TypeStruct 17(fvec4) 6(float) - 81: TypePointer Function 80(PS_OUTPUT) - 83: 11(int) Constant 0 - 84: 6(float) Constant 1065353216 - 85: 17(fvec4) ConstantComposite 84 84 84 84 - 86: TypePointer Function 17(fvec4) - 88: 11(int) Constant 1 - 89: TypePointer Function 6(float) - 91: TypePointer Output 17(fvec4) - 92(Color): 91(ptr) Variable Output - 95: TypePointer Output 6(float) - 96(Depth): 95(ptr) Variable Output - 100: TypeSampler - 101: TypePointer UniformConstant 100 - 102(g_sSamp): 101(ptr) Variable UniformConstant - 103: TypePointer UniformConstant 11(int) - 104(c1): 103(ptr) Variable UniformConstant - 105: TypePointer UniformConstant 24(ivec4) - 106(c4): 105(ptr) Variable UniformConstant - 107(o1): 103(ptr) Variable UniformConstant - 108(o3): 52(ptr) Variable UniformConstant - 109(o4): 105(ptr) Variable UniformConstant + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypePointer Uniform 12(ivec2) + 22: 11(int) Constant 3 + 23: TypeVector 6(float) 4 + 25: TypeImage 11(int) 2D multi-sampled sampled format:Unknown + 26: TypePointer UniformConstant 25 +27(g_tTex2dmsi4): 26(ptr) Variable UniformConstant + 32: TypeInt 32 0 + 33: TypeImage 32(int) 2D multi-sampled sampled format:Unknown + 34: TypePointer UniformConstant 33 +35(g_tTex2dmsu4): 34(ptr) Variable UniformConstant + 39: TypeVector 32(int) 4 + 44: 11(int) Constant 5 + 60: TypeImage 6(float) 2D array multi-sampled sampled format:Unknown + 61: TypePointer UniformConstant 60 +62(g_tTex2dmsf4a): 61(ptr) Variable UniformConstant + 64: 11(int) Constant 2 + 65: TypePointer Uniform 13(ivec3) + 69: TypeImage 11(int) 2D array multi-sampled sampled format:Unknown + 70: TypePointer UniformConstant 69 +71(g_tTex2dmsi4a): 70(ptr) Variable UniformConstant + 76: TypeImage 32(int) 2D array multi-sampled sampled format:Unknown + 77: TypePointer UniformConstant 76 +78(g_tTex2dmsu4a): 77(ptr) Variable UniformConstant + 101(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) + 102: TypePointer Function 101(PS_OUTPUT) + 104: 11(int) Constant 0 + 105: 6(float) Constant 1065353216 + 106: 23(fvec4) ConstantComposite 105 105 105 105 + 107: TypePointer Function 23(fvec4) + 109: TypePointer Function 6(float) + 111: TypePointer Output 23(fvec4) + 112(Color): 111(ptr) Variable Output + 115: TypePointer Output 6(float) + 116(Depth): 115(ptr) Variable Output + 120: TypeSampler + 121: TypePointer UniformConstant 120 + 122(g_sSamp): 121(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 82(psout): 81(ptr) Variable Function + 103(psout): 102(ptr) Variable Function 10: 7 Load 9(g_tTex2dmsf4) - 15: 12(ivec2) Load 14(c2) - 18: 17(fvec4) ImageFetch 10 15 Sample 16 - 22: 19 Load 21(g_tTex2dmsi4) - 23: 12(ivec2) Load 14(c2) - 25: 24(ivec4) ImageFetch 22 23 Sample 16 - 30: 27 Load 29(g_tTex2dmsu4) - 31: 12(ivec2) Load 14(c2) - 33: 32(ivec4) ImageFetch 30 31 Sample 16 - 34: 7 Load 9(g_tTex2dmsf4) - 35: 12(ivec2) Load 14(c2) - 37: 12(ivec2) Load 36(o2) - 38: 17(fvec4) ImageFetch 34 35 Offset Sample 37 16 - 39: 19 Load 21(g_tTex2dmsi4) - 40: 12(ivec2) Load 14(c2) - 41: 12(ivec2) Load 36(o2) - 42: 24(ivec4) ImageFetch 39 40 Offset Sample 41 16 - 43: 27 Load 29(g_tTex2dmsu4) - 44: 12(ivec2) Load 14(c2) - 45: 12(ivec2) Load 36(o2) - 46: 32(ivec4) ImageFetch 43 44 Offset Sample 45 16 - 50: 47 Load 49(g_tTex2dmsf4a) - 54: 51(ivec3) Load 53(c3) - 55: 17(fvec4) ImageFetch 50 54 Sample 16 - 59: 56 Load 58(g_tTex2dmsi4a) - 60: 51(ivec3) Load 53(c3) - 61: 24(ivec4) ImageFetch 59 60 Sample 16 - 65: 62 Load 64(g_tTex2dmsu4a) - 66: 51(ivec3) Load 53(c3) - 67: 32(ivec4) ImageFetch 65 66 Sample 16 - 68: 47 Load 49(g_tTex2dmsf4a) - 69: 51(ivec3) Load 53(c3) - 70: 12(ivec2) Load 36(o2) - 71: 17(fvec4) ImageFetch 68 69 Offset Sample 70 16 - 72: 56 Load 58(g_tTex2dmsi4a) - 73: 51(ivec3) Load 53(c3) - 74: 12(ivec2) Load 36(o2) - 75: 24(ivec4) ImageFetch 72 73 Offset Sample 74 16 - 76: 62 Load 64(g_tTex2dmsu4a) - 77: 51(ivec3) Load 53(c3) - 78: 12(ivec2) Load 36(o2) - 79: 32(ivec4) ImageFetch 76 77 Offset Sample 78 16 - 87: 86(ptr) AccessChain 82(psout) 83 - Store 87 85 - 90: 89(ptr) AccessChain 82(psout) 88 - Store 90 84 - 93: 86(ptr) AccessChain 82(psout) 83 - 94: 17(fvec4) Load 93 - Store 92(Color) 94 - 97: 89(ptr) AccessChain 82(psout) 88 - 98: 6(float) Load 97 - Store 96(Depth) 98 + 20: 19(ptr) AccessChain 17 18 + 21: 12(ivec2) Load 20 + 24: 23(fvec4) ImageFetch 10 21 Sample 22 + 28: 25 Load 27(g_tTex2dmsi4) + 29: 19(ptr) AccessChain 17 18 + 30: 12(ivec2) Load 29 + 31: 14(ivec4) ImageFetch 28 30 Sample 22 + 36: 33 Load 35(g_tTex2dmsu4) + 37: 19(ptr) AccessChain 17 18 + 38: 12(ivec2) Load 37 + 40: 39(ivec4) ImageFetch 36 38 Sample 22 + 41: 7 Load 9(g_tTex2dmsf4) + 42: 19(ptr) AccessChain 17 18 + 43: 12(ivec2) Load 42 + 45: 19(ptr) AccessChain 17 44 + 46: 12(ivec2) Load 45 + 47: 23(fvec4) ImageFetch 41 43 Offset Sample 46 22 + 48: 25 Load 27(g_tTex2dmsi4) + 49: 19(ptr) AccessChain 17 18 + 50: 12(ivec2) Load 49 + 51: 19(ptr) AccessChain 17 44 + 52: 12(ivec2) Load 51 + 53: 14(ivec4) ImageFetch 48 50 Offset Sample 52 22 + 54: 33 Load 35(g_tTex2dmsu4) + 55: 19(ptr) AccessChain 17 18 + 56: 12(ivec2) Load 55 + 57: 19(ptr) AccessChain 17 44 + 58: 12(ivec2) Load 57 + 59: 39(ivec4) ImageFetch 54 56 Offset Sample 58 22 + 63: 60 Load 62(g_tTex2dmsf4a) + 66: 65(ptr) AccessChain 17 64 + 67: 13(ivec3) Load 66 + 68: 23(fvec4) ImageFetch 63 67 Sample 22 + 72: 69 Load 71(g_tTex2dmsi4a) + 73: 65(ptr) AccessChain 17 64 + 74: 13(ivec3) Load 73 + 75: 14(ivec4) ImageFetch 72 74 Sample 22 + 79: 76 Load 78(g_tTex2dmsu4a) + 80: 65(ptr) AccessChain 17 64 + 81: 13(ivec3) Load 80 + 82: 39(ivec4) ImageFetch 79 81 Sample 22 + 83: 60 Load 62(g_tTex2dmsf4a) + 84: 65(ptr) AccessChain 17 64 + 85: 13(ivec3) Load 84 + 86: 19(ptr) AccessChain 17 44 + 87: 12(ivec2) Load 86 + 88: 23(fvec4) ImageFetch 83 85 Offset Sample 87 22 + 89: 69 Load 71(g_tTex2dmsi4a) + 90: 65(ptr) AccessChain 17 64 + 91: 13(ivec3) Load 90 + 92: 19(ptr) AccessChain 17 44 + 93: 12(ivec2) Load 92 + 94: 14(ivec4) ImageFetch 89 91 Offset Sample 93 22 + 95: 76 Load 78(g_tTex2dmsu4a) + 96: 65(ptr) AccessChain 17 64 + 97: 13(ivec3) Load 96 + 98: 19(ptr) AccessChain 17 44 + 99: 12(ivec2) Load 98 + 100: 39(ivec4) ImageFetch 95 97 Offset Sample 99 22 + 108: 107(ptr) AccessChain 103(psout) 104 + Store 108 106 + 110: 109(ptr) AccessChain 103(psout) 18 + Store 110 105 + 113: 107(ptr) AccessChain 103(psout) 104 + 114: 23(fvec4) Load 113 + Store 112(Color) 114 + 117: 109(ptr) AccessChain 103(psout) 18 + 118: 6(float) Load 117 + Store 116(Depth) 118 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.array.dx10.frag.out b/Test/baseResults/hlsl.load.array.dx10.frag.out index 372388376c893234dbca696b4ffa5a9b37bb510c..8c4f7c8d0559a6937421bcb005359f242f1d3f2a 100644 --- a/Test/baseResults/hlsl.load.array.dx10.frag.out +++ b/Test/baseResults/hlsl.load.array.dx10.frag.out @@ -2,52 +2,73 @@ hlsl.load.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetch (global 4-component vector of float) +0:52 textureFetch (temp 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index (temp int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) -0:53 textureFetch (global 4-component vector of int) +0:53 textureFetch (temp 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index (temp int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) -0:54 textureFetch (global 4-component vector of uint) +0:54 textureFetch (temp 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index (temp int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) -0:57 textureFetch (global 4-component vector of float) +0:57 textureFetch (temp 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) @@ -56,13 +77,19 @@ gl_FragCoord origin is upper left 0:57 Constant: 0:57 2 (const int) 0:57 direct index (temp int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) -0:58 textureFetch (global 4-component vector of int) +0:58 textureFetch (temp 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) @@ -71,13 +98,19 @@ gl_FragCoord origin is upper left 0:58 Constant: 0:58 2 (const int) 0:58 direct index (temp int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) -0:59 textureFetch (global 4-component vector of uint) +0:59 textureFetch (temp 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) @@ -86,7 +119,10 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 2 (const int) 0:59 direct index (temp int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -106,8 +142,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:? Sequence -0:? Sequence +0:70 Sequence +0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) @@ -122,6 +158,8 @@ gl_FragCoord origin is upper left 0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -144,16 +182,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -162,52 +191,73 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetch (global 4-component vector of float) +0:52 textureFetch (temp 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index (temp int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) -0:53 textureFetch (global 4-component vector of int) +0:53 textureFetch (temp 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index (temp int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) -0:54 textureFetch (global 4-component vector of uint) +0:54 textureFetch (temp 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index (temp int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) -0:57 textureFetch (global 4-component vector of float) +0:57 textureFetch (temp 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) @@ -216,13 +266,19 @@ gl_FragCoord origin is upper left 0:57 Constant: 0:57 2 (const int) 0:57 direct index (temp int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) -0:58 textureFetch (global 4-component vector of int) +0:58 textureFetch (temp 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) @@ -231,13 +287,19 @@ gl_FragCoord origin is upper left 0:58 Constant: 0:58 2 (const int) 0:58 direct index (temp int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) -0:59 textureFetch (global 4-component vector of uint) +0:59 textureFetch (temp 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) @@ -246,7 +308,10 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 2 (const int) 0:59 direct index (temp int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -266,8 +331,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Constant: 0:68 1.000000 -0:? Sequence -0:? Sequence +0:70 Sequence +0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:70 Color: direct index for structure (temp 4-component vector of float) @@ -282,6 +347,8 @@ gl_FragCoord origin is upper left 0:70 1 (const int) 0:70 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -304,91 +371,94 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 150 +// Id's are bound by 152 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 87 91 + EntryPoint Fragment 4 "main" 96 100 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" - Name 14 "c3" - Name 27 "g_tTex1di4a" - Name 37 "g_tTex1du4a" - Name 47 "g_tTex2df4a" - Name 50 "c4" - Name 59 "g_tTex2di4a" - Name 68 "g_tTex2du4a" - Name 75 "PS_OUTPUT" - MemberName 75(PS_OUTPUT) 0 "Color" - MemberName 75(PS_OUTPUT) 1 "Depth" - Name 77 "psout" - Name 87 "Color" - Name 91 "Depth" - Name 97 "g_sSamp" - Name 100 "g_tTex1df4" - Name 103 "g_tTex1di4" - Name 106 "g_tTex1du4" - Name 109 "g_tTex2df4" - Name 112 "g_tTex2di4" - Name 115 "g_tTex2du4" - Name 118 "g_tTex3df4" - Name 121 "g_tTex3di4" - Name 124 "g_tTex3du4" - Name 127 "g_tTexcdf4" - Name 130 "g_tTexcdi4" - Name 133 "g_tTexcdu4" - Name 136 "g_tTexcdf4a" - Name 139 "g_tTexcdi4a" - Name 142 "g_tTexcdu4a" - Name 143 "c1" - Name 145 "c2" - Name 146 "o1" - Name 147 "o2" - Name 148 "o3" - Name 149 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 32 "g_tTex1di4a" + Name 42 "g_tTex1du4a" + Name 53 "g_tTex2df4a" + Name 66 "g_tTex2di4a" + Name 76 "g_tTex2du4a" + Name 84 "PS_OUTPUT" + MemberName 84(PS_OUTPUT) 0 "Color" + MemberName 84(PS_OUTPUT) 1 "Depth" + Name 86 "psout" + Name 96 "Color" + Name 100 "Depth" + Name 106 "g_sSamp" + Name 109 "g_tTex1df4" + Name 112 "g_tTex1di4" + Name 115 "g_tTex1du4" + Name 118 "g_tTex2df4" + Name 121 "g_tTex2di4" + Name 124 "g_tTex2du4" + Name 127 "g_tTex3df4" + Name 130 "g_tTex3di4" + Name 133 "g_tTex3du4" + Name 136 "g_tTexcdf4" + Name 139 "g_tTexcdi4" + Name 142 "g_tTexcdu4" + Name 145 "g_tTexcdf4a" + Name 148 "g_tTexcdi4a" + Name 151 "g_tTexcdu4a" Decorate 9(g_tTex1df4a) DescriptorSet 0 - Decorate 27(g_tTex1di4a) DescriptorSet 0 - Decorate 37(g_tTex1du4a) DescriptorSet 0 - Decorate 47(g_tTex2df4a) DescriptorSet 0 - Decorate 59(g_tTex2di4a) DescriptorSet 0 - Decorate 68(g_tTex2du4a) DescriptorSet 0 - Decorate 87(Color) Location 0 - Decorate 91(Depth) BuiltIn FragDepth - Decorate 97(g_sSamp) DescriptorSet 0 - Decorate 97(g_sSamp) Binding 0 - Decorate 100(g_tTex1df4) DescriptorSet 0 - Decorate 100(g_tTex1df4) Binding 0 - Decorate 103(g_tTex1di4) DescriptorSet 0 - Decorate 106(g_tTex1du4) DescriptorSet 0 - Decorate 109(g_tTex2df4) DescriptorSet 0 - Decorate 112(g_tTex2di4) DescriptorSet 0 - Decorate 115(g_tTex2du4) DescriptorSet 0 - Decorate 118(g_tTex3df4) DescriptorSet 0 - Decorate 121(g_tTex3di4) DescriptorSet 0 - Decorate 124(g_tTex3du4) DescriptorSet 0 - Decorate 127(g_tTexcdf4) DescriptorSet 0 - Decorate 130(g_tTexcdi4) DescriptorSet 0 - Decorate 133(g_tTexcdu4) DescriptorSet 0 - Decorate 136(g_tTexcdf4a) DescriptorSet 0 - Decorate 139(g_tTexcdi4a) DescriptorSet 0 - Decorate 142(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 32(g_tTex1di4a) DescriptorSet 0 + Decorate 42(g_tTex1du4a) DescriptorSet 0 + Decorate 53(g_tTex2df4a) DescriptorSet 0 + Decorate 66(g_tTex2di4a) DescriptorSet 0 + Decorate 76(g_tTex2du4a) DescriptorSet 0 + Decorate 96(Color) Location 0 + Decorate 100(Depth) BuiltIn FragDepth + Decorate 106(g_sSamp) DescriptorSet 0 + Decorate 106(g_sSamp) Binding 0 + Decorate 109(g_tTex1df4) DescriptorSet 0 + Decorate 109(g_tTex1df4) Binding 0 + Decorate 112(g_tTex1di4) DescriptorSet 0 + Decorate 115(g_tTex1du4) DescriptorSet 0 + Decorate 118(g_tTex2df4) DescriptorSet 0 + Decorate 121(g_tTex2di4) DescriptorSet 0 + Decorate 124(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 130(g_tTex3di4) DescriptorSet 0 + Decorate 133(g_tTex3du4) DescriptorSet 0 + Decorate 136(g_tTexcdf4) DescriptorSet 0 + Decorate 139(g_tTexcdi4) DescriptorSet 0 + Decorate 142(g_tTexcdu4) DescriptorSet 0 + Decorate 145(g_tTexcdf4a) DescriptorSet 0 + Decorate 148(g_tTexcdi4a) DescriptorSet 0 + Decorate 151(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -396,149 +466,151 @@ gl_FragCoord origin is upper left 8: TypePointer UniformConstant 7 9(g_tTex1df4a): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 - 12: TypeVector 11(int) 3 - 13: TypePointer UniformConstant 12(ivec3) - 14(c3): 13(ptr) Variable UniformConstant - 15: TypeVector 11(int) 2 - 18: TypeInt 32 0 - 19: 18(int) Constant 2 - 20: TypePointer UniformConstant 11(int) - 23: TypeVector 6(float) 4 - 25: TypeImage 11(int) 1D array sampled format:Unknown - 26: TypePointer UniformConstant 25 - 27(g_tTex1di4a): 26(ptr) Variable UniformConstant - 33: TypeVector 11(int) 4 - 35: TypeImage 18(int) 1D array sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex1du4a): 36(ptr) Variable UniformConstant - 43: TypeVector 18(int) 4 - 45: TypeImage 6(float) 2D array sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex2df4a): 46(ptr) Variable UniformConstant - 49: TypePointer UniformConstant 33(ivec4) - 50(c4): 49(ptr) Variable UniformConstant - 53: 18(int) Constant 3 - 57: TypeImage 11(int) 2D array sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTex2di4a): 58(ptr) Variable UniformConstant - 66: TypeImage 18(int) 2D array sampled format:Unknown - 67: TypePointer UniformConstant 66 - 68(g_tTex2du4a): 67(ptr) Variable UniformConstant - 75(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) - 76: TypePointer Function 75(PS_OUTPUT) - 78: 11(int) Constant 0 - 79: 6(float) Constant 1065353216 - 80: 23(fvec4) ConstantComposite 79 79 79 79 - 81: TypePointer Function 23(fvec4) - 83: 11(int) Constant 1 - 84: TypePointer Function 6(float) - 86: TypePointer Output 23(fvec4) - 87(Color): 86(ptr) Variable Output - 90: TypePointer Output 6(float) - 91(Depth): 90(ptr) Variable Output - 95: TypeSampler - 96: TypePointer UniformConstant 95 - 97(g_sSamp): 96(ptr) Variable UniformConstant - 98: TypeImage 6(float) 1D sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTex1df4): 99(ptr) Variable UniformConstant - 101: TypeImage 11(int) 1D sampled format:Unknown - 102: TypePointer UniformConstant 101 - 103(g_tTex1di4): 102(ptr) Variable UniformConstant - 104: TypeImage 18(int) 1D sampled format:Unknown + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 2 + 19: TypePointer Uniform 13(ivec3) + 23: TypeInt 32 0 + 24: 23(int) Constant 2 + 25: TypePointer Uniform 11(int) + 28: TypeVector 6(float) 4 + 30: TypeImage 11(int) 1D array sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4a): 31(ptr) Variable UniformConstant + 40: TypeImage 23(int) 1D array sampled format:Unknown + 41: TypePointer UniformConstant 40 + 42(g_tTex1du4a): 41(ptr) Variable UniformConstant + 49: TypeVector 23(int) 4 + 51: TypeImage 6(float) 2D array sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex2df4a): 52(ptr) Variable UniformConstant + 55: 11(int) Constant 3 + 56: TypePointer Uniform 14(ivec4) + 60: 23(int) Constant 3 + 64: TypeImage 11(int) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2di4a): 65(ptr) Variable UniformConstant + 74: TypeImage 23(int) 2D array sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2du4a): 75(ptr) Variable UniformConstant + 84(PS_OUTPUT): TypeStruct 28(fvec4) 6(float) + 85: TypePointer Function 84(PS_OUTPUT) + 87: 11(int) Constant 0 + 88: 6(float) Constant 1065353216 + 89: 28(fvec4) ConstantComposite 88 88 88 88 + 90: TypePointer Function 28(fvec4) + 92: 11(int) Constant 1 + 93: TypePointer Function 6(float) + 95: TypePointer Output 28(fvec4) + 96(Color): 95(ptr) Variable Output + 99: TypePointer Output 6(float) + 100(Depth): 99(ptr) Variable Output + 104: TypeSampler 105: TypePointer UniformConstant 104 - 106(g_tTex1du4): 105(ptr) Variable UniformConstant - 107: TypeImage 6(float) 2D sampled format:Unknown + 106(g_sSamp): 105(ptr) Variable UniformConstant + 107: TypeImage 6(float) 1D sampled format:Unknown 108: TypePointer UniformConstant 107 - 109(g_tTex2df4): 108(ptr) Variable UniformConstant - 110: TypeImage 11(int) 2D sampled format:Unknown + 109(g_tTex1df4): 108(ptr) Variable UniformConstant + 110: TypeImage 11(int) 1D sampled format:Unknown 111: TypePointer UniformConstant 110 - 112(g_tTex2di4): 111(ptr) Variable UniformConstant - 113: TypeImage 18(int) 2D sampled format:Unknown + 112(g_tTex1di4): 111(ptr) Variable UniformConstant + 113: TypeImage 23(int) 1D sampled format:Unknown 114: TypePointer UniformConstant 113 - 115(g_tTex2du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) 3D sampled format:Unknown + 115(g_tTex1du4): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D sampled format:Unknown 117: TypePointer UniformConstant 116 - 118(g_tTex3df4): 117(ptr) Variable UniformConstant - 119: TypeImage 11(int) 3D sampled format:Unknown + 118(g_tTex2df4): 117(ptr) Variable UniformConstant + 119: TypeImage 11(int) 2D sampled format:Unknown 120: TypePointer UniformConstant 119 - 121(g_tTex3di4): 120(ptr) Variable UniformConstant - 122: TypeImage 18(int) 3D sampled format:Unknown + 121(g_tTex2di4): 120(ptr) Variable UniformConstant + 122: TypeImage 23(int) 2D sampled format:Unknown 123: TypePointer UniformConstant 122 - 124(g_tTex3du4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) Cube sampled format:Unknown + 124(g_tTex2du4): 123(ptr) Variable UniformConstant + 125: TypeImage 6(float) 3D sampled format:Unknown 126: TypePointer UniformConstant 125 - 127(g_tTexcdf4): 126(ptr) Variable UniformConstant - 128: TypeImage 11(int) Cube sampled format:Unknown + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 128: TypeImage 11(int) 3D sampled format:Unknown 129: TypePointer UniformConstant 128 - 130(g_tTexcdi4): 129(ptr) Variable UniformConstant - 131: TypeImage 18(int) Cube sampled format:Unknown + 130(g_tTex3di4): 129(ptr) Variable UniformConstant + 131: TypeImage 23(int) 3D sampled format:Unknown 132: TypePointer UniformConstant 131 - 133(g_tTexcdu4): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) Cube array sampled format:Unknown + 133(g_tTex3du4): 132(ptr) Variable UniformConstant + 134: TypeImage 6(float) Cube sampled format:Unknown 135: TypePointer UniformConstant 134 -136(g_tTexcdf4a): 135(ptr) Variable UniformConstant - 137: TypeImage 11(int) Cube array sampled format:Unknown + 136(g_tTexcdf4): 135(ptr) Variable UniformConstant + 137: TypeImage 11(int) Cube sampled format:Unknown 138: TypePointer UniformConstant 137 -139(g_tTexcdi4a): 138(ptr) Variable UniformConstant - 140: TypeImage 18(int) Cube array sampled format:Unknown + 139(g_tTexcdi4): 138(ptr) Variable UniformConstant + 140: TypeImage 23(int) Cube sampled format:Unknown 141: TypePointer UniformConstant 140 -142(g_tTexcdu4a): 141(ptr) Variable UniformConstant - 143(c1): 20(ptr) Variable UniformConstant - 144: TypePointer UniformConstant 15(ivec2) - 145(c2): 144(ptr) Variable UniformConstant - 146(o1): 20(ptr) Variable UniformConstant - 147(o2): 144(ptr) Variable UniformConstant - 148(o3): 13(ptr) Variable UniformConstant - 149(o4): 49(ptr) Variable UniformConstant + 142(g_tTexcdu4): 141(ptr) Variable UniformConstant + 143: TypeImage 6(float) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdf4a): 144(ptr) Variable UniformConstant + 146: TypeImage 11(int) Cube array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTexcdi4a): 147(ptr) Variable UniformConstant + 149: TypeImage 23(int) Cube array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTexcdu4a): 150(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 77(psout): 76(ptr) Variable Function + 86(psout): 85(ptr) Variable Function 10: 7 Load 9(g_tTex1df4a) - 16: 12(ivec3) Load 14(c3) - 17: 15(ivec2) VectorShuffle 16 16 0 1 - 21: 20(ptr) AccessChain 14(c3) 19 - 22: 11(int) Load 21 - 24: 23(fvec4) ImageFetch 10 17 Lod 22 - 28: 25 Load 27(g_tTex1di4a) - 29: 12(ivec3) Load 14(c3) - 30: 15(ivec2) VectorShuffle 29 29 0 1 - 31: 20(ptr) AccessChain 14(c3) 19 - 32: 11(int) Load 31 - 34: 33(ivec4) ImageFetch 28 30 Lod 32 - 38: 35 Load 37(g_tTex1du4a) - 39: 12(ivec3) Load 14(c3) - 40: 15(ivec2) VectorShuffle 39 39 0 1 - 41: 20(ptr) AccessChain 14(c3) 19 - 42: 11(int) Load 41 - 44: 43(ivec4) ImageFetch 38 40 Lod 42 - 48: 45 Load 47(g_tTex2df4a) - 51: 33(ivec4) Load 50(c4) - 52: 12(ivec3) VectorShuffle 51 51 0 1 2 - 54: 20(ptr) AccessChain 50(c4) 53 - 55: 11(int) Load 54 - 56: 23(fvec4) ImageFetch 48 52 Lod 55 - 60: 57 Load 59(g_tTex2di4a) - 61: 33(ivec4) Load 50(c4) - 62: 12(ivec3) VectorShuffle 61 61 0 1 2 - 63: 20(ptr) AccessChain 50(c4) 53 - 64: 11(int) Load 63 - 65: 33(ivec4) ImageFetch 60 62 Lod 64 - 69: 66 Load 68(g_tTex2du4a) - 70: 33(ivec4) Load 50(c4) - 71: 12(ivec3) VectorShuffle 70 70 0 1 2 - 72: 20(ptr) AccessChain 50(c4) 53 - 73: 11(int) Load 72 - 74: 43(ivec4) ImageFetch 69 71 Lod 73 - 82: 81(ptr) AccessChain 77(psout) 78 - Store 82 80 - 85: 84(ptr) AccessChain 77(psout) 83 - Store 85 79 - 88: 81(ptr) AccessChain 77(psout) 78 - 89: 23(fvec4) Load 88 - Store 87(Color) 89 - 92: 84(ptr) AccessChain 77(psout) 83 - 93: 6(float) Load 92 - Store 91(Depth) 93 + 20: 19(ptr) AccessChain 17 18 + 21: 13(ivec3) Load 20 + 22: 12(ivec2) VectorShuffle 21 21 0 1 + 26: 25(ptr) AccessChain 17 18 24 + 27: 11(int) Load 26 + 29: 28(fvec4) ImageFetch 10 22 Lod 27 + 33: 30 Load 32(g_tTex1di4a) + 34: 19(ptr) AccessChain 17 18 + 35: 13(ivec3) Load 34 + 36: 12(ivec2) VectorShuffle 35 35 0 1 + 37: 25(ptr) AccessChain 17 18 24 + 38: 11(int) Load 37 + 39: 14(ivec4) ImageFetch 33 36 Lod 38 + 43: 40 Load 42(g_tTex1du4a) + 44: 19(ptr) AccessChain 17 18 + 45: 13(ivec3) Load 44 + 46: 12(ivec2) VectorShuffle 45 45 0 1 + 47: 25(ptr) AccessChain 17 18 24 + 48: 11(int) Load 47 + 50: 49(ivec4) ImageFetch 43 46 Lod 48 + 54: 51 Load 53(g_tTex2df4a) + 57: 56(ptr) AccessChain 17 55 + 58: 14(ivec4) Load 57 + 59: 13(ivec3) VectorShuffle 58 58 0 1 2 + 61: 25(ptr) AccessChain 17 55 60 + 62: 11(int) Load 61 + 63: 28(fvec4) ImageFetch 54 59 Lod 62 + 67: 64 Load 66(g_tTex2di4a) + 68: 56(ptr) AccessChain 17 55 + 69: 14(ivec4) Load 68 + 70: 13(ivec3) VectorShuffle 69 69 0 1 2 + 71: 25(ptr) AccessChain 17 55 60 + 72: 11(int) Load 71 + 73: 14(ivec4) ImageFetch 67 70 Lod 72 + 77: 74 Load 76(g_tTex2du4a) + 78: 56(ptr) AccessChain 17 55 + 79: 14(ivec4) Load 78 + 80: 13(ivec3) VectorShuffle 79 79 0 1 2 + 81: 25(ptr) AccessChain 17 55 60 + 82: 11(int) Load 81 + 83: 49(ivec4) ImageFetch 77 80 Lod 82 + 91: 90(ptr) AccessChain 86(psout) 87 + Store 91 89 + 94: 93(ptr) AccessChain 86(psout) 92 + Store 94 88 + 97: 90(ptr) AccessChain 86(psout) 87 + 98: 28(fvec4) Load 97 + Store 96(Color) 98 + 101: 93(ptr) AccessChain 86(psout) 92 + 102: 6(float) Load 101 + Store 100(Depth) 102 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.frag.out b/Test/baseResults/hlsl.load.basic.dx10.frag.out index 41d44eee8c24a99abffe8f6c06ec28c360516391..c8e8eb63073ef6e2d238188405390f6ab55ef7e7 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.load.basic.dx10.frag.out @@ -2,85 +2,124 @@ hlsl.load.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetch (global 4-component vector of float) +0:52 textureFetch (temp 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:53 textureFetch (global 4-component vector of int) +0:53 textureFetch (temp 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:54 textureFetch (global 4-component vector of uint) +0:54 textureFetch (temp 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) -0:57 textureFetch (global 4-component vector of float) +0:57 textureFetch (temp 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:58 textureFetch (global 4-component vector of int) +0:58 textureFetch (temp 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:59 textureFetch (global 4-component vector of uint) +0:59 textureFetch (temp 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index (temp int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) -0:62 textureFetch (global 4-component vector of float) +0:62 textureFetch (temp 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -89,13 +128,19 @@ gl_FragCoord origin is upper left 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:63 textureFetch (global 4-component vector of int) +0:63 textureFetch (temp 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -104,13 +149,19 @@ gl_FragCoord origin is upper left 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) -0:64 textureFetch (global 4-component vector of uint) +0:64 textureFetch (temp 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) @@ -119,7 +170,10 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 2 (const int) 0:64 direct index (temp int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) @@ -139,8 +193,8 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:? Sequence -0:? Sequence +0:75 Sequence +0:75 Sequence 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) @@ -155,6 +209,8 @@ gl_FragCoord origin is upper left 0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -177,16 +233,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -195,85 +242,124 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetch (global 4-component vector of float) +0:52 textureFetch (temp 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:53 textureFetch (global 4-component vector of int) +0:53 textureFetch (temp 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:54 textureFetch (global 4-component vector of uint) +0:54 textureFetch (temp 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) -0:57 textureFetch (global 4-component vector of float) +0:57 textureFetch (temp 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:58 textureFetch (global 4-component vector of int) +0:58 textureFetch (temp 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:59 textureFetch (global 4-component vector of uint) +0:59 textureFetch (temp 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index (temp int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) -0:62 textureFetch (global 4-component vector of float) +0:62 textureFetch (temp 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -282,13 +368,19 @@ gl_FragCoord origin is upper left 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:63 textureFetch (global 4-component vector of int) +0:63 textureFetch (temp 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -297,13 +389,19 @@ gl_FragCoord origin is upper left 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) -0:64 textureFetch (global 4-component vector of uint) +0:64 textureFetch (temp 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) @@ -312,7 +410,10 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 2 (const int) 0:64 direct index (temp int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) 0:72 move second child to first child (temp 4-component vector of float) @@ -332,8 +433,8 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:? Sequence -0:? Sequence +0:75 Sequence +0:75 Sequence 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) @@ -348,6 +449,8 @@ gl_FragCoord origin is upper left 0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -370,91 +473,94 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 170 +// Id's are bound by 172 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 118 122 + EntryPoint Fragment 4 "main" 125 129 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" - Name 14 "c2" - Name 27 "g_tTex1di4" - Name 37 "g_tTex1du4" - Name 47 "g_tTex2df4" - Name 51 "c3" - Name 60 "g_tTex2di4" - Name 69 "g_tTex2du4" - Name 78 "g_tTex3df4" - Name 81 "c4" - Name 90 "g_tTex3di4" - Name 99 "g_tTex3du4" - Name 106 "PS_OUTPUT" - MemberName 106(PS_OUTPUT) 0 "Color" - MemberName 106(PS_OUTPUT) 1 "Depth" - Name 108 "psout" - Name 118 "Color" - Name 122 "Depth" - Name 128 "g_sSamp" - Name 131 "g_tTexcdf4" - Name 134 "g_tTexcdi4" - Name 137 "g_tTexcdu4" - Name 140 "g_tTex1df4a" - Name 143 "g_tTex1di4a" - Name 146 "g_tTex1du4a" - Name 149 "g_tTex2df4a" - Name 152 "g_tTex2di4a" - Name 155 "g_tTex2du4a" - Name 158 "g_tTexcdf4a" - Name 161 "g_tTexcdi4a" - Name 164 "g_tTexcdu4a" - Name 165 "c1" - Name 166 "o1" - Name 167 "o2" - Name 168 "o3" - Name 169 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 31 "g_tTex1di4" + Name 40 "g_tTex1du4" + Name 50 "g_tTex2df4" + Name 63 "g_tTex2di4" + Name 73 "g_tTex2du4" + Name 83 "g_tTex3df4" + Name 96 "g_tTex3di4" + Name 106 "g_tTex3du4" + Name 114 "PS_OUTPUT" + MemberName 114(PS_OUTPUT) 0 "Color" + MemberName 114(PS_OUTPUT) 1 "Depth" + Name 116 "psout" + Name 125 "Color" + Name 129 "Depth" + Name 135 "g_sSamp" + Name 138 "g_tTexcdf4" + Name 141 "g_tTexcdi4" + Name 144 "g_tTexcdu4" + Name 147 "g_tTex1df4a" + Name 150 "g_tTex1di4a" + Name 153 "g_tTex1du4a" + Name 156 "g_tTex2df4a" + Name 159 "g_tTex2di4a" + Name 162 "g_tTex2du4a" + Name 165 "g_tTexcdf4a" + Name 168 "g_tTexcdi4a" + Name 171 "g_tTexcdu4a" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 - Decorate 27(g_tTex1di4) DescriptorSet 0 - Decorate 37(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex2df4) DescriptorSet 0 - Decorate 60(g_tTex2di4) DescriptorSet 0 - Decorate 69(g_tTex2du4) DescriptorSet 0 - Decorate 78(g_tTex3df4) DescriptorSet 0 - Decorate 90(g_tTex3di4) DescriptorSet 0 - Decorate 99(g_tTex3du4) DescriptorSet 0 - Decorate 118(Color) Location 0 - Decorate 122(Depth) BuiltIn FragDepth - Decorate 128(g_sSamp) DescriptorSet 0 - Decorate 128(g_sSamp) Binding 0 - Decorate 131(g_tTexcdf4) DescriptorSet 0 - Decorate 134(g_tTexcdi4) DescriptorSet 0 - Decorate 137(g_tTexcdu4) DescriptorSet 0 - Decorate 140(g_tTex1df4a) DescriptorSet 0 - Decorate 143(g_tTex1di4a) DescriptorSet 0 - Decorate 146(g_tTex1du4a) DescriptorSet 0 - Decorate 149(g_tTex2df4a) DescriptorSet 0 - Decorate 152(g_tTex2di4a) DescriptorSet 0 - Decorate 155(g_tTex2du4a) DescriptorSet 0 - Decorate 158(g_tTexcdf4a) DescriptorSet 0 - Decorate 161(g_tTexcdi4a) DescriptorSet 0 - Decorate 164(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 50(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 73(g_tTex2du4) DescriptorSet 0 + Decorate 83(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 125(Color) Location 0 + Decorate 129(Depth) BuiltIn FragDepth + Decorate 135(g_sSamp) DescriptorSet 0 + Decorate 135(g_sSamp) Binding 0 + Decorate 138(g_tTexcdf4) DescriptorSet 0 + Decorate 141(g_tTexcdi4) DescriptorSet 0 + Decorate 144(g_tTexcdu4) DescriptorSet 0 + Decorate 147(g_tTex1df4a) DescriptorSet 0 + Decorate 150(g_tTex1di4a) DescriptorSet 0 + Decorate 153(g_tTex1du4a) DescriptorSet 0 + Decorate 156(g_tTex2df4a) DescriptorSet 0 + Decorate 159(g_tTex2di4a) DescriptorSet 0 + Decorate 162(g_tTex2du4a) DescriptorSet 0 + Decorate 165(g_tTexcdf4a) DescriptorSet 0 + Decorate 168(g_tTexcdi4a) DescriptorSet 0 + Decorate 171(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -463,168 +569,170 @@ gl_FragCoord origin is upper left 9(g_tTex1df4): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 12: TypeVector 11(int) 2 - 13: TypePointer UniformConstant 12(ivec2) - 14(c2): 13(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: 15(int) Constant 0 - 17: TypePointer UniformConstant 11(int) - 20: 15(int) Constant 1 - 23: TypeVector 6(float) 4 - 25: TypeImage 11(int) 1D sampled format:Unknown - 26: TypePointer UniformConstant 25 - 27(g_tTex1di4): 26(ptr) Variable UniformConstant - 33: TypeVector 11(int) 4 - 35: TypeImage 15(int) 1D sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex1du4): 36(ptr) Variable UniformConstant - 43: TypeVector 15(int) 4 - 45: TypeImage 6(float) 2D sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex2df4): 46(ptr) Variable UniformConstant - 49: TypeVector 11(int) 3 - 50: TypePointer UniformConstant 49(ivec3) - 51(c3): 50(ptr) Variable UniformConstant - 54: 15(int) Constant 2 - 58: TypeImage 11(int) 2D sampled format:Unknown - 59: TypePointer UniformConstant 58 - 60(g_tTex2di4): 59(ptr) Variable UniformConstant - 67: TypeImage 15(int) 2D sampled format:Unknown - 68: TypePointer UniformConstant 67 - 69(g_tTex2du4): 68(ptr) Variable UniformConstant - 76: TypeImage 6(float) 3D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex3df4): 77(ptr) Variable UniformConstant - 80: TypePointer UniformConstant 33(ivec4) - 81(c4): 80(ptr) Variable UniformConstant - 84: 15(int) Constant 3 - 88: TypeImage 11(int) 3D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex3di4): 89(ptr) Variable UniformConstant - 97: TypeImage 15(int) 3D sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex3du4): 98(ptr) Variable UniformConstant - 106(PS_OUTPUT): TypeStruct 23(fvec4) 6(float) - 107: TypePointer Function 106(PS_OUTPUT) - 109: 11(int) Constant 0 - 110: 6(float) Constant 1065353216 - 111: 23(fvec4) ConstantComposite 110 110 110 110 - 112: TypePointer Function 23(fvec4) - 114: 11(int) Constant 1 - 115: TypePointer Function 6(float) - 117: TypePointer Output 23(fvec4) - 118(Color): 117(ptr) Variable Output - 121: TypePointer Output 6(float) - 122(Depth): 121(ptr) Variable Output - 126: TypeSampler - 127: TypePointer UniformConstant 126 - 128(g_sSamp): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) Cube sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTexcdf4): 130(ptr) Variable UniformConstant - 132: TypeImage 11(int) Cube sampled format:Unknown - 133: TypePointer UniformConstant 132 - 134(g_tTexcdi4): 133(ptr) Variable UniformConstant - 135: TypeImage 15(int) Cube sampled format:Unknown - 136: TypePointer UniformConstant 135 - 137(g_tTexcdu4): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) 1D array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTex1df4a): 139(ptr) Variable UniformConstant - 141: TypeImage 11(int) 1D array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTex1di4a): 142(ptr) Variable UniformConstant - 144: TypeImage 15(int) 1D array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTex1du4a): 145(ptr) Variable UniformConstant - 147: TypeImage 6(float) 2D array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTex2df4a): 148(ptr) Variable UniformConstant - 150: TypeImage 11(int) 2D array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTex2di4a): 151(ptr) Variable UniformConstant - 153: TypeImage 15(int) 2D array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTex2du4a): 154(ptr) Variable UniformConstant - 156: TypeImage 6(float) Cube array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTexcdf4a): 157(ptr) Variable UniformConstant - 159: TypeImage 11(int) Cube array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTexcdi4a): 160(ptr) Variable UniformConstant - 162: TypeImage 15(int) Cube array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTexcdu4a): 163(ptr) Variable UniformConstant - 165(c1): 17(ptr) Variable UniformConstant - 166(o1): 17(ptr) Variable UniformConstant - 167(o2): 13(ptr) Variable UniformConstant - 168(o3): 50(ptr) Variable UniformConstant - 169(o4): 80(ptr) Variable UniformConstant + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: TypeVector 6(float) 4 + 29: TypeImage 11(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 38: TypeImage 19(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 46: TypeVector 19(int) 4 + 48: TypeImage 6(float) 2D sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2df4): 49(ptr) Variable UniformConstant + 52: 11(int) Constant 2 + 53: TypePointer Uniform 13(ivec3) + 57: 19(int) Constant 2 + 61: TypeImage 11(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 71: TypeImage 19(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2du4): 72(ptr) Variable UniformConstant + 81: TypeImage 6(float) 3D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex3df4): 82(ptr) Variable UniformConstant + 85: 11(int) Constant 3 + 86: TypePointer Uniform 14(ivec4) + 90: 19(int) Constant 3 + 94: TypeImage 11(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 104: TypeImage 19(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 114(PS_OUTPUT): TypeStruct 27(fvec4) 6(float) + 115: TypePointer Function 114(PS_OUTPUT) + 117: 11(int) Constant 0 + 118: 6(float) Constant 1065353216 + 119: 27(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 27(fvec4) + 122: TypePointer Function 6(float) + 124: TypePointer Output 27(fvec4) + 125(Color): 124(ptr) Variable Output + 128: TypePointer Output 6(float) + 129(Depth): 128(ptr) Variable Output + 133: TypeSampler + 134: TypePointer UniformConstant 133 + 135(g_sSamp): 134(ptr) Variable UniformConstant + 136: TypeImage 6(float) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdf4): 137(ptr) Variable UniformConstant + 139: TypeImage 11(int) Cube sampled format:Unknown + 140: TypePointer UniformConstant 139 + 141(g_tTexcdi4): 140(ptr) Variable UniformConstant + 142: TypeImage 19(int) Cube sampled format:Unknown + 143: TypePointer UniformConstant 142 + 144(g_tTexcdu4): 143(ptr) Variable UniformConstant + 145: TypeImage 6(float) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1df4a): 146(ptr) Variable UniformConstant + 148: TypeImage 11(int) 1D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex1di4a): 149(ptr) Variable UniformConstant + 151: TypeImage 19(int) 1D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex1du4a): 152(ptr) Variable UniformConstant + 154: TypeImage 6(float) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2df4a): 155(ptr) Variable UniformConstant + 157: TypeImage 11(int) 2D array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTex2di4a): 158(ptr) Variable UniformConstant + 160: TypeImage 19(int) 2D array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTex2du4a): 161(ptr) Variable UniformConstant + 163: TypeImage 6(float) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdf4a): 164(ptr) Variable UniformConstant + 166: TypeImage 11(int) Cube array sampled format:Unknown + 167: TypePointer UniformConstant 166 +168(g_tTexcdi4a): 167(ptr) Variable UniformConstant + 169: TypeImage 19(int) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdu4a): 170(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 108(psout): 107(ptr) Variable Function + 116(psout): 115(ptr) Variable Function 10: 7 Load 9(g_tTex1df4) - 18: 17(ptr) AccessChain 14(c2) 16 - 19: 11(int) Load 18 - 21: 17(ptr) AccessChain 14(c2) 20 - 22: 11(int) Load 21 - 24: 23(fvec4) ImageFetch 10 19 Lod 22 - 28: 25 Load 27(g_tTex1di4) - 29: 17(ptr) AccessChain 14(c2) 16 - 30: 11(int) Load 29 - 31: 17(ptr) AccessChain 14(c2) 20 - 32: 11(int) Load 31 - 34: 33(ivec4) ImageFetch 28 30 Lod 32 - 38: 35 Load 37(g_tTex1du4) - 39: 17(ptr) AccessChain 14(c2) 16 - 40: 11(int) Load 39 - 41: 17(ptr) AccessChain 14(c2) 20 - 42: 11(int) Load 41 - 44: 43(ivec4) ImageFetch 38 40 Lod 42 - 48: 45 Load 47(g_tTex2df4) - 52: 49(ivec3) Load 51(c3) - 53: 12(ivec2) VectorShuffle 52 52 0 1 - 55: 17(ptr) AccessChain 51(c3) 54 - 56: 11(int) Load 55 - 57: 23(fvec4) ImageFetch 48 53 Lod 56 - 61: 58 Load 60(g_tTex2di4) - 62: 49(ivec3) Load 51(c3) - 63: 12(ivec2) VectorShuffle 62 62 0 1 - 64: 17(ptr) AccessChain 51(c3) 54 - 65: 11(int) Load 64 - 66: 33(ivec4) ImageFetch 61 63 Lod 65 - 70: 67 Load 69(g_tTex2du4) - 71: 49(ivec3) Load 51(c3) - 72: 12(ivec2) VectorShuffle 71 71 0 1 - 73: 17(ptr) AccessChain 51(c3) 54 - 74: 11(int) Load 73 - 75: 43(ivec4) ImageFetch 70 72 Lod 74 - 79: 76 Load 78(g_tTex3df4) - 82: 33(ivec4) Load 81(c4) - 83: 49(ivec3) VectorShuffle 82 82 0 1 2 - 85: 17(ptr) AccessChain 81(c4) 84 - 86: 11(int) Load 85 - 87: 23(fvec4) ImageFetch 79 83 Lod 86 - 91: 88 Load 90(g_tTex3di4) - 92: 33(ivec4) Load 81(c4) - 93: 49(ivec3) VectorShuffle 92 92 0 1 2 - 94: 17(ptr) AccessChain 81(c4) 84 - 95: 11(int) Load 94 - 96: 33(ivec4) ImageFetch 91 93 Lod 95 - 100: 97 Load 99(g_tTex3du4) - 101: 33(ivec4) Load 81(c4) - 102: 49(ivec3) VectorShuffle 101 101 0 1 2 - 103: 17(ptr) AccessChain 81(c4) 84 - 104: 11(int) Load 103 - 105: 43(ivec4) ImageFetch 100 102 Lod 104 - 113: 112(ptr) AccessChain 108(psout) 109 - Store 113 111 - 116: 115(ptr) AccessChain 108(psout) 114 - Store 116 110 - 119: 112(ptr) AccessChain 108(psout) 109 - 120: 23(fvec4) Load 119 - Store 118(Color) 120 - 123: 115(ptr) AccessChain 108(psout) 114 - 124: 6(float) Load 123 - Store 122(Depth) 124 + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 27(fvec4) ImageFetch 10 23 Lod 26 + 32: 29 Load 31(g_tTex1di4) + 33: 21(ptr) AccessChain 17 18 20 + 34: 11(int) Load 33 + 35: 21(ptr) AccessChain 17 18 24 + 36: 11(int) Load 35 + 37: 14(ivec4) ImageFetch 32 34 Lod 36 + 41: 38 Load 40(g_tTex1du4) + 42: 21(ptr) AccessChain 17 18 20 + 43: 11(int) Load 42 + 44: 21(ptr) AccessChain 17 18 24 + 45: 11(int) Load 44 + 47: 46(ivec4) ImageFetch 41 43 Lod 45 + 51: 48 Load 50(g_tTex2df4) + 54: 53(ptr) AccessChain 17 52 + 55: 13(ivec3) Load 54 + 56: 12(ivec2) VectorShuffle 55 55 0 1 + 58: 21(ptr) AccessChain 17 52 57 + 59: 11(int) Load 58 + 60: 27(fvec4) ImageFetch 51 56 Lod 59 + 64: 61 Load 63(g_tTex2di4) + 65: 53(ptr) AccessChain 17 52 + 66: 13(ivec3) Load 65 + 67: 12(ivec2) VectorShuffle 66 66 0 1 + 68: 21(ptr) AccessChain 17 52 57 + 69: 11(int) Load 68 + 70: 14(ivec4) ImageFetch 64 67 Lod 69 + 74: 71 Load 73(g_tTex2du4) + 75: 53(ptr) AccessChain 17 52 + 76: 13(ivec3) Load 75 + 77: 12(ivec2) VectorShuffle 76 76 0 1 + 78: 21(ptr) AccessChain 17 52 57 + 79: 11(int) Load 78 + 80: 46(ivec4) ImageFetch 74 77 Lod 79 + 84: 81 Load 83(g_tTex3df4) + 87: 86(ptr) AccessChain 17 85 + 88: 14(ivec4) Load 87 + 89: 13(ivec3) VectorShuffle 88 88 0 1 2 + 91: 21(ptr) AccessChain 17 85 90 + 92: 11(int) Load 91 + 93: 27(fvec4) ImageFetch 84 89 Lod 92 + 97: 94 Load 96(g_tTex3di4) + 98: 86(ptr) AccessChain 17 85 + 99: 14(ivec4) Load 98 + 100: 13(ivec3) VectorShuffle 99 99 0 1 2 + 101: 21(ptr) AccessChain 17 85 90 + 102: 11(int) Load 101 + 103: 14(ivec4) ImageFetch 97 100 Lod 102 + 107: 104 Load 106(g_tTex3du4) + 108: 86(ptr) AccessChain 17 85 + 109: 14(ivec4) Load 108 + 110: 13(ivec3) VectorShuffle 109 109 0 1 2 + 111: 21(ptr) AccessChain 17 85 90 + 112: 11(int) Load 111 + 113: 46(ivec4) ImageFetch 107 110 Lod 112 + 121: 120(ptr) AccessChain 116(psout) 117 + Store 121 119 + 123: 122(ptr) AccessChain 116(psout) 18 + Store 123 118 + 126: 120(ptr) AccessChain 116(psout) 117 + 127: 27(fvec4) Load 126 + Store 125(Color) 127 + 130: 122(ptr) AccessChain 116(psout) 18 + 131: 6(float) Load 130 + Store 129(Depth) 131 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.basic.dx10.vert.out b/Test/baseResults/hlsl.load.basic.dx10.vert.out index 62e6128d128f75129ac279d0d801e514842f44b2..a86f0aea977f17ac06a3c25b43781fac84e5183c 100644 --- a/Test/baseResults/hlsl.load.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.load.basic.dx10.vert.out @@ -1,85 +1,124 @@ hlsl.load.basic.dx10.vert Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:47 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence -0:51 textureFetch (global 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) 0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:51 vector swizzle (temp int) -0:51 'c2' (uniform 2-component vector of int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Sequence 0:51 Constant: 0:51 0 (const int) 0:51 direct index (temp int) -0:51 'c2' (uniform 2-component vector of int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Constant: 0:51 1 (const int) -0:52 textureFetch (global 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) 0:52 'g_tTex1di4' (uniform itexture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:53 textureFetch (global 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) 0:53 'g_tTex1du4' (uniform utexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:56 textureFetch (global 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) 0:56 'g_tTex2df4' (uniform texture2D) 0:56 vector swizzle (temp 2-component vector of int) -0:56 'c3' (uniform 3-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) 0:56 Sequence 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1 (const int) 0:56 direct index (temp int) -0:56 'c3' (uniform 3-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) 0:56 Constant: 0:56 2 (const int) -0:57 textureFetch (global 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) 0:57 'g_tTex2di4' (uniform itexture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:58 textureFetch (global 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) 0:58 'g_tTex2du4' (uniform utexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:61 textureFetch (global 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) 0:61 'g_tTex3df4' (uniform texture3D) 0:61 vector swizzle (temp 3-component vector of int) -0:61 'c4' (uniform 4-component vector of int) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Sequence 0:61 Constant: 0:61 0 (const int) @@ -88,13 +127,19 @@ Shader version: 450 0:61 Constant: 0:61 2 (const int) 0:61 direct index (temp int) -0:61 'c4' (uniform 4-component vector of int) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Constant: 0:61 3 (const int) -0:62 textureFetch (global 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) 0:62 'g_tTex3di4' (uniform itexture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -103,13 +148,19 @@ Shader version: 450 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:63 textureFetch (global 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) 0:63 'g_tTex3du4' (uniform utexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -118,7 +169,10 @@ Shader version: 450 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -131,8 +185,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:69 Sequence +0:69 Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:69 Pos: direct index for structure (temp 4-component vector of float) @@ -141,6 +195,7 @@ Shader version: 450 0:69 0 (const int) 0:69 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -163,15 +218,7 @@ Shader version: 450 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Pos' (out 4-component vector of float Position) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked vertex stage: @@ -179,85 +226,124 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:47 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:47 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:47 Function Parameters: 0:? Sequence -0:51 textureFetch (global 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) 0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:51 vector swizzle (temp int) -0:51 'c2' (uniform 2-component vector of int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Sequence 0:51 Constant: 0:51 0 (const int) 0:51 direct index (temp int) -0:51 'c2' (uniform 2-component vector of int) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) 0:51 Constant: 0:51 1 (const int) -0:52 textureFetch (global 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) 0:52 'g_tTex1di4' (uniform itexture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:53 textureFetch (global 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) 0:53 'g_tTex1du4' (uniform utexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:56 textureFetch (global 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) 0:56 'g_tTex2df4' (uniform texture2D) 0:56 vector swizzle (temp 2-component vector of int) -0:56 'c3' (uniform 3-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) 0:56 Sequence 0:56 Constant: 0:56 0 (const int) 0:56 Constant: 0:56 1 (const int) 0:56 direct index (temp int) -0:56 'c3' (uniform 3-component vector of int) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) 0:56 Constant: 0:56 2 (const int) -0:57 textureFetch (global 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) 0:57 'g_tTex2di4' (uniform itexture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:58 textureFetch (global 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) 0:58 'g_tTex2du4' (uniform utexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:61 textureFetch (global 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) 0:61 'g_tTex3df4' (uniform texture3D) 0:61 vector swizzle (temp 3-component vector of int) -0:61 'c4' (uniform 4-component vector of int) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Sequence 0:61 Constant: 0:61 0 (const int) @@ -266,13 +352,19 @@ Shader version: 450 0:61 Constant: 0:61 2 (const int) 0:61 direct index (temp int) -0:61 'c4' (uniform 4-component vector of int) +0:61 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 3 (const uint) 0:61 Constant: 0:61 3 (const int) -0:62 textureFetch (global 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) 0:62 'g_tTex3di4' (uniform itexture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -281,13 +373,19 @@ Shader version: 450 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:63 textureFetch (global 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) 0:63 'g_tTex3du4' (uniform utexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -296,7 +394,10 @@ Shader version: 450 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) 0:67 move second child to first child (temp 4-component vector of float) @@ -309,8 +410,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:69 Sequence +0:69 Sequence 0:69 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:69 Pos: direct index for structure (temp 4-component vector of float) @@ -319,6 +420,7 @@ Shader version: 450 0:69 0 (const int) 0:69 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -341,86 +443,90 @@ Shader version: 450 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Pos' (out 4-component vector of float Position) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 166 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 115 + EntryPoint Vertex 4 "main" 123 Name 4 "main" Name 9 "g_tTex1df4" - Name 14 "c2" - Name 27 "g_tTex1di4" - Name 37 "g_tTex1du4" - Name 47 "g_tTex2df4" - Name 51 "c3" - Name 60 "g_tTex2di4" - Name 69 "g_tTex2du4" - Name 78 "g_tTex3df4" - Name 81 "c4" - Name 90 "g_tTex3di4" - Name 99 "g_tTex3du4" - Name 106 "VS_OUTPUT" - MemberName 106(VS_OUTPUT) 0 "Pos" - Name 108 "vsout" - Name 115 "Pos" - Name 121 "g_sSamp" - Name 124 "g_tTexcdf4" - Name 127 "g_tTexcdi4" - Name 130 "g_tTexcdu4" - Name 133 "g_tTex1df4a" - Name 136 "g_tTex1di4a" - Name 139 "g_tTex1du4a" - Name 142 "g_tTex2df4a" - Name 145 "g_tTex2di4a" - Name 148 "g_tTex2du4a" - Name 151 "g_tTexcdf4a" - Name 154 "g_tTexcdi4a" - Name 157 "g_tTexcdu4a" - Name 158 "c1" - Name 159 "o1" - Name 160 "o2" - Name 161 "o3" - Name 162 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 31 "g_tTex1di4" + Name 40 "g_tTex1du4" + Name 50 "g_tTex2df4" + Name 63 "g_tTex2di4" + Name 73 "g_tTex2du4" + Name 83 "g_tTex3df4" + Name 96 "g_tTex3di4" + Name 106 "g_tTex3du4" + Name 114 "VS_OUTPUT" + MemberName 114(VS_OUTPUT) 0 "Pos" + Name 116 "vsout" + Name 123 "Pos" + Name 129 "g_sSamp" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTex1df4a" + Name 144 "g_tTex1di4a" + Name 147 "g_tTex1du4a" + Name 150 "g_tTex2df4a" + Name 153 "g_tTex2di4a" + Name 156 "g_tTex2du4a" + Name 159 "g_tTexcdf4a" + Name 162 "g_tTexcdi4a" + Name 165 "g_tTexcdu4a" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 - Decorate 27(g_tTex1di4) DescriptorSet 0 - Decorate 37(g_tTex1du4) DescriptorSet 0 - Decorate 47(g_tTex2df4) DescriptorSet 0 - Decorate 60(g_tTex2di4) DescriptorSet 0 - Decorate 69(g_tTex2du4) DescriptorSet 0 - Decorate 78(g_tTex3df4) DescriptorSet 0 - Decorate 90(g_tTex3di4) DescriptorSet 0 - Decorate 99(g_tTex3du4) DescriptorSet 0 - Decorate 115(Pos) BuiltIn Position - Decorate 121(g_sSamp) DescriptorSet 0 - Decorate 121(g_sSamp) Binding 0 - Decorate 124(g_tTexcdf4) DescriptorSet 0 - Decorate 127(g_tTexcdi4) DescriptorSet 0 - Decorate 130(g_tTexcdu4) DescriptorSet 0 - Decorate 133(g_tTex1df4a) DescriptorSet 0 - Decorate 136(g_tTex1di4a) DescriptorSet 0 - Decorate 139(g_tTex1du4a) DescriptorSet 0 - Decorate 142(g_tTex2df4a) DescriptorSet 0 - Decorate 145(g_tTex2di4a) DescriptorSet 0 - Decorate 148(g_tTex2du4a) DescriptorSet 0 - Decorate 151(g_tTexcdf4a) DescriptorSet 0 - Decorate 154(g_tTexcdi4a) DescriptorSet 0 - Decorate 157(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 40(g_tTex1du4) DescriptorSet 0 + Decorate 50(g_tTex2df4) DescriptorSet 0 + Decorate 63(g_tTex2di4) DescriptorSet 0 + Decorate 73(g_tTex2du4) DescriptorSet 0 + Decorate 83(g_tTex3df4) DescriptorSet 0 + Decorate 96(g_tTex3di4) DescriptorSet 0 + Decorate 106(g_tTex3du4) DescriptorSet 0 + Decorate 123(Pos) BuiltIn Position + Decorate 129(g_sSamp) DescriptorSet 0 + Decorate 129(g_sSamp) Binding 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1di4a) DescriptorSet 0 + Decorate 147(g_tTex1du4a) DescriptorSet 0 + Decorate 150(g_tTex2df4a) DescriptorSet 0 + Decorate 153(g_tTex2di4a) DescriptorSet 0 + Decorate 156(g_tTex2du4a) DescriptorSet 0 + Decorate 159(g_tTexcdf4a) DescriptorSet 0 + Decorate 162(g_tTexcdi4a) DescriptorSet 0 + Decorate 165(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -429,159 +535,162 @@ Shader version: 450 9(g_tTex1df4): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 12: TypeVector 11(int) 2 - 13: TypePointer UniformConstant 12(ivec2) - 14(c2): 13(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: 15(int) Constant 0 - 17: TypePointer UniformConstant 11(int) - 20: 15(int) Constant 1 - 23: TypeVector 6(float) 4 - 25: TypeImage 11(int) 1D sampled format:Unknown - 26: TypePointer UniformConstant 25 - 27(g_tTex1di4): 26(ptr) Variable UniformConstant - 33: TypeVector 11(int) 4 - 35: TypeImage 15(int) 1D sampled format:Unknown - 36: TypePointer UniformConstant 35 - 37(g_tTex1du4): 36(ptr) Variable UniformConstant - 43: TypeVector 15(int) 4 - 45: TypeImage 6(float) 2D sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex2df4): 46(ptr) Variable UniformConstant - 49: TypeVector 11(int) 3 - 50: TypePointer UniformConstant 49(ivec3) - 51(c3): 50(ptr) Variable UniformConstant - 54: 15(int) Constant 2 - 58: TypeImage 11(int) 2D sampled format:Unknown - 59: TypePointer UniformConstant 58 - 60(g_tTex2di4): 59(ptr) Variable UniformConstant - 67: TypeImage 15(int) 2D sampled format:Unknown - 68: TypePointer UniformConstant 67 - 69(g_tTex2du4): 68(ptr) Variable UniformConstant - 76: TypeImage 6(float) 3D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex3df4): 77(ptr) Variable UniformConstant - 80: TypePointer UniformConstant 33(ivec4) - 81(c4): 80(ptr) Variable UniformConstant - 84: 15(int) Constant 3 - 88: TypeImage 11(int) 3D sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTex3di4): 89(ptr) Variable UniformConstant - 97: TypeImage 15(int) 3D sampled format:Unknown - 98: TypePointer UniformConstant 97 - 99(g_tTex3du4): 98(ptr) Variable UniformConstant - 106(VS_OUTPUT): TypeStruct 23(fvec4) - 107: TypePointer Function 106(VS_OUTPUT) - 109: 11(int) Constant 0 - 110: 6(float) Constant 0 - 111: 23(fvec4) ConstantComposite 110 110 110 110 - 112: TypePointer Function 23(fvec4) - 114: TypePointer Output 23(fvec4) - 115(Pos): 114(ptr) Variable Output - 119: TypeSampler - 120: TypePointer UniformConstant 119 - 121(g_sSamp): 120(ptr) Variable UniformConstant - 122: TypeImage 6(float) Cube sampled format:Unknown - 123: TypePointer UniformConstant 122 - 124(g_tTexcdf4): 123(ptr) Variable UniformConstant - 125: TypeImage 11(int) Cube sampled format:Unknown - 126: TypePointer UniformConstant 125 - 127(g_tTexcdi4): 126(ptr) Variable UniformConstant - 128: TypeImage 15(int) Cube sampled format:Unknown - 129: TypePointer UniformConstant 128 - 130(g_tTexcdu4): 129(ptr) Variable UniformConstant - 131: TypeImage 6(float) 1D array sampled format:Unknown - 132: TypePointer UniformConstant 131 -133(g_tTex1df4a): 132(ptr) Variable UniformConstant - 134: TypeImage 11(int) 1D array sampled format:Unknown - 135: TypePointer UniformConstant 134 -136(g_tTex1di4a): 135(ptr) Variable UniformConstant - 137: TypeImage 15(int) 1D array sampled format:Unknown - 138: TypePointer UniformConstant 137 -139(g_tTex1du4a): 138(ptr) Variable UniformConstant - 140: TypeImage 6(float) 2D array sampled format:Unknown - 141: TypePointer UniformConstant 140 -142(g_tTex2df4a): 141(ptr) Variable UniformConstant - 143: TypeImage 11(int) 2D array sampled format:Unknown - 144: TypePointer UniformConstant 143 -145(g_tTex2di4a): 144(ptr) Variable UniformConstant - 146: TypeImage 15(int) 2D array sampled format:Unknown - 147: TypePointer UniformConstant 146 -148(g_tTex2du4a): 147(ptr) Variable UniformConstant - 149: TypeImage 6(float) Cube array sampled format:Unknown - 150: TypePointer UniformConstant 149 -151(g_tTexcdf4a): 150(ptr) Variable UniformConstant - 152: TypeImage 11(int) Cube array sampled format:Unknown - 153: TypePointer UniformConstant 152 -154(g_tTexcdi4a): 153(ptr) Variable UniformConstant - 155: TypeImage 15(int) Cube array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTexcdu4a): 156(ptr) Variable UniformConstant - 158(c1): 17(ptr) Variable UniformConstant - 159(o1): 17(ptr) Variable UniformConstant - 160(o2): 13(ptr) Variable UniformConstant - 161(o3): 50(ptr) Variable UniformConstant - 162(o4): 80(ptr) Variable UniformConstant + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: TypeVector 6(float) 4 + 29: TypeImage 11(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 38: TypeImage 19(int) 1D sampled format:Unknown + 39: TypePointer UniformConstant 38 + 40(g_tTex1du4): 39(ptr) Variable UniformConstant + 46: TypeVector 19(int) 4 + 48: TypeImage 6(float) 2D sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex2df4): 49(ptr) Variable UniformConstant + 52: 11(int) Constant 2 + 53: TypePointer Uniform 13(ivec3) + 57: 19(int) Constant 2 + 61: TypeImage 11(int) 2D sampled format:Unknown + 62: TypePointer UniformConstant 61 + 63(g_tTex2di4): 62(ptr) Variable UniformConstant + 71: TypeImage 19(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2du4): 72(ptr) Variable UniformConstant + 81: TypeImage 6(float) 3D sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex3df4): 82(ptr) Variable UniformConstant + 85: 11(int) Constant 3 + 86: TypePointer Uniform 14(ivec4) + 90: 19(int) Constant 3 + 94: TypeImage 11(int) 3D sampled format:Unknown + 95: TypePointer UniformConstant 94 + 96(g_tTex3di4): 95(ptr) Variable UniformConstant + 104: TypeImage 19(int) 3D sampled format:Unknown + 105: TypePointer UniformConstant 104 + 106(g_tTex3du4): 105(ptr) Variable UniformConstant + 114(VS_OUTPUT): TypeStruct 27(fvec4) + 115: TypePointer Function 114(VS_OUTPUT) + 117: 11(int) Constant 0 + 118: 6(float) Constant 0 + 119: 27(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 27(fvec4) + 122: TypePointer Output 27(fvec4) + 123(Pos): 122(ptr) Variable Output + 127: TypeSampler + 128: TypePointer UniformConstant 127 + 129(g_sSamp): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 11(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 19(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 11(int) 1D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex1di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 19(int) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 11(int) 2D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex2di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 19(int) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdf4a): 158(ptr) Variable UniformConstant + 160: TypeImage 11(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdi4a): 161(ptr) Variable UniformConstant + 163: TypeImage 19(int) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdu4a): 164(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 108(vsout): 107(ptr) Variable Function + 116(vsout): 115(ptr) Variable Function 10: 7 Load 9(g_tTex1df4) - 18: 17(ptr) AccessChain 14(c2) 16 - 19: 11(int) Load 18 - 21: 17(ptr) AccessChain 14(c2) 20 - 22: 11(int) Load 21 - 24: 23(fvec4) ImageFetch 10 19 Lod 22 - 28: 25 Load 27(g_tTex1di4) - 29: 17(ptr) AccessChain 14(c2) 16 - 30: 11(int) Load 29 - 31: 17(ptr) AccessChain 14(c2) 20 - 32: 11(int) Load 31 - 34: 33(ivec4) ImageFetch 28 30 Lod 32 - 38: 35 Load 37(g_tTex1du4) - 39: 17(ptr) AccessChain 14(c2) 16 - 40: 11(int) Load 39 - 41: 17(ptr) AccessChain 14(c2) 20 - 42: 11(int) Load 41 - 44: 43(ivec4) ImageFetch 38 40 Lod 42 - 48: 45 Load 47(g_tTex2df4) - 52: 49(ivec3) Load 51(c3) - 53: 12(ivec2) VectorShuffle 52 52 0 1 - 55: 17(ptr) AccessChain 51(c3) 54 - 56: 11(int) Load 55 - 57: 23(fvec4) ImageFetch 48 53 Lod 56 - 61: 58 Load 60(g_tTex2di4) - 62: 49(ivec3) Load 51(c3) - 63: 12(ivec2) VectorShuffle 62 62 0 1 - 64: 17(ptr) AccessChain 51(c3) 54 - 65: 11(int) Load 64 - 66: 33(ivec4) ImageFetch 61 63 Lod 65 - 70: 67 Load 69(g_tTex2du4) - 71: 49(ivec3) Load 51(c3) - 72: 12(ivec2) VectorShuffle 71 71 0 1 - 73: 17(ptr) AccessChain 51(c3) 54 - 74: 11(int) Load 73 - 75: 43(ivec4) ImageFetch 70 72 Lod 74 - 79: 76 Load 78(g_tTex3df4) - 82: 33(ivec4) Load 81(c4) - 83: 49(ivec3) VectorShuffle 82 82 0 1 2 - 85: 17(ptr) AccessChain 81(c4) 84 - 86: 11(int) Load 85 - 87: 23(fvec4) ImageFetch 79 83 Lod 86 - 91: 88 Load 90(g_tTex3di4) - 92: 33(ivec4) Load 81(c4) - 93: 49(ivec3) VectorShuffle 92 92 0 1 2 - 94: 17(ptr) AccessChain 81(c4) 84 - 95: 11(int) Load 94 - 96: 33(ivec4) ImageFetch 91 93 Lod 95 - 100: 97 Load 99(g_tTex3du4) - 101: 33(ivec4) Load 81(c4) - 102: 49(ivec3) VectorShuffle 101 101 0 1 2 - 103: 17(ptr) AccessChain 81(c4) 84 - 104: 11(int) Load 103 - 105: 43(ivec4) ImageFetch 100 102 Lod 104 - 113: 112(ptr) AccessChain 108(vsout) 109 - Store 113 111 - 116: 112(ptr) AccessChain 108(vsout) 109 - 117: 23(fvec4) Load 116 - Store 115(Pos) 117 + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 27(fvec4) ImageFetch 10 23 Lod 26 + 32: 29 Load 31(g_tTex1di4) + 33: 21(ptr) AccessChain 17 18 20 + 34: 11(int) Load 33 + 35: 21(ptr) AccessChain 17 18 24 + 36: 11(int) Load 35 + 37: 14(ivec4) ImageFetch 32 34 Lod 36 + 41: 38 Load 40(g_tTex1du4) + 42: 21(ptr) AccessChain 17 18 20 + 43: 11(int) Load 42 + 44: 21(ptr) AccessChain 17 18 24 + 45: 11(int) Load 44 + 47: 46(ivec4) ImageFetch 41 43 Lod 45 + 51: 48 Load 50(g_tTex2df4) + 54: 53(ptr) AccessChain 17 52 + 55: 13(ivec3) Load 54 + 56: 12(ivec2) VectorShuffle 55 55 0 1 + 58: 21(ptr) AccessChain 17 52 57 + 59: 11(int) Load 58 + 60: 27(fvec4) ImageFetch 51 56 Lod 59 + 64: 61 Load 63(g_tTex2di4) + 65: 53(ptr) AccessChain 17 52 + 66: 13(ivec3) Load 65 + 67: 12(ivec2) VectorShuffle 66 66 0 1 + 68: 21(ptr) AccessChain 17 52 57 + 69: 11(int) Load 68 + 70: 14(ivec4) ImageFetch 64 67 Lod 69 + 74: 71 Load 73(g_tTex2du4) + 75: 53(ptr) AccessChain 17 52 + 76: 13(ivec3) Load 75 + 77: 12(ivec2) VectorShuffle 76 76 0 1 + 78: 21(ptr) AccessChain 17 52 57 + 79: 11(int) Load 78 + 80: 46(ivec4) ImageFetch 74 77 Lod 79 + 84: 81 Load 83(g_tTex3df4) + 87: 86(ptr) AccessChain 17 85 + 88: 14(ivec4) Load 87 + 89: 13(ivec3) VectorShuffle 88 88 0 1 2 + 91: 21(ptr) AccessChain 17 85 90 + 92: 11(int) Load 91 + 93: 27(fvec4) ImageFetch 84 89 Lod 92 + 97: 94 Load 96(g_tTex3di4) + 98: 86(ptr) AccessChain 17 85 + 99: 14(ivec4) Load 98 + 100: 13(ivec3) VectorShuffle 99 99 0 1 2 + 101: 21(ptr) AccessChain 17 85 90 + 102: 11(int) Load 101 + 103: 14(ivec4) ImageFetch 97 100 Lod 102 + 107: 104 Load 106(g_tTex3du4) + 108: 86(ptr) AccessChain 17 85 + 109: 14(ivec4) Load 108 + 110: 13(ivec3) VectorShuffle 109 109 0 1 2 + 111: 21(ptr) AccessChain 17 85 90 + 112: 11(int) Load 111 + 113: 46(ivec4) ImageFetch 107 110 Lod 112 + 121: 120(ptr) AccessChain 116(vsout) 117 + Store 121 119 + 124: 120(ptr) AccessChain 116(vsout) 117 + 125: 27(fvec4) Load 124 + Store 123(Pos) 125 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.dx10.frag.out index 012af868758b99e9a44aa79c42f28014580366f8..c80ddcfe91ed8e27c2d3fbd94453f6616fcfb447 100644 --- a/Test/baseResults/hlsl.load.buffer.dx10.frag.out +++ b/Test/baseResults/hlsl.load.buffer.dx10.frag.out @@ -2,27 +2,36 @@ hlsl.load.buffer.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of float) 0:28 'r00' (temp 4-component vector of float) -0:28 textureFetch (global 4-component vector of float) -0:28 'g_tTexbf4' (uniform samplerBuffer) -0:28 'c1' (uniform int) +0:28 textureFetch (temp 4-component vector of float) +0:28 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of int) 0:29 'r01' (temp 4-component vector of int) -0:29 textureFetch (global 4-component vector of int) -0:29 'g_tTexbi4' (uniform isamplerBuffer) -0:29 'c1' (uniform int) +0:29 textureFetch (temp 4-component vector of int) +0:29 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of uint) 0:30 'r02' (temp 4-component vector of uint) -0:30 textureFetch (global 4-component vector of uint) -0:30 'g_tTexbu4' (uniform usamplerBuffer) -0:30 'c1' (uniform int) +0:30 textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) 0:34 move second child to first child (temp 4-component vector of float) 0:34 Color: direct index for structure (temp 4-component vector of float) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -40,8 +49,8 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:? Sequence -0:? Sequence +0:37 Sequence +0:37 Sequence 0:37 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:37 Color: direct index for structure (temp 4-component vector of float) @@ -56,20 +65,13 @@ gl_FragCoord origin is upper left 0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects -0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) -0:? 'g_tTexbf4' (uniform samplerBuffer) -0:? 'g_tTexbi4' (uniform isamplerBuffer) -0:? 'g_tTexbu4' (uniform usamplerBuffer) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -78,27 +80,36 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of float) 0:28 'r00' (temp 4-component vector of float) -0:28 textureFetch (global 4-component vector of float) -0:28 'g_tTexbf4' (uniform samplerBuffer) -0:28 'c1' (uniform int) +0:28 textureFetch (temp 4-component vector of float) +0:28 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of int) 0:29 'r01' (temp 4-component vector of int) -0:29 textureFetch (global 4-component vector of int) -0:29 'g_tTexbi4' (uniform isamplerBuffer) -0:29 'c1' (uniform int) +0:29 textureFetch (temp 4-component vector of int) +0:29 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of uint) 0:30 'r02' (temp 4-component vector of uint) -0:30 textureFetch (global 4-component vector of uint) -0:30 'g_tTexbu4' (uniform usamplerBuffer) -0:30 'c1' (uniform int) +0:30 textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) 0:34 move second child to first child (temp 4-component vector of float) 0:34 Color: direct index for structure (temp 4-component vector of float) 0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -116,8 +127,8 @@ gl_FragCoord origin is upper left 0:35 1 (const int) 0:35 Constant: 0:35 1.000000 -0:? Sequence -0:? Sequence +0:37 Sequence +0:37 Sequence 0:37 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:37 Color: direct index for structure (temp 4-component vector of float) @@ -132,139 +143,139 @@ gl_FragCoord origin is upper left 0:37 1 (const int) 0:37 Branch: Return 0:? Linker Objects -0:? 'g_tTexbf4_test' (layout(binding=0 ) uniform samplerBuffer) -0:? 'g_tTexbf4' (uniform samplerBuffer) -0:? 'g_tTexbi4' (uniform isamplerBuffer) -0:? 'g_tTexbu4' (uniform usamplerBuffer) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:? 'Depth' (out float FragDepth) +0:? 'g_tTexbf4_test' (layout(binding=0 rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbf4' (layout(rgba32f ) uniform samplerBuffer) +0:? 'g_tTexbi4' (layout(rgba32i ) uniform isamplerBuffer) +0:? 'g_tTexbu4' (layout(rgba32ui ) uniform usamplerBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 76 +// Id's are bound by 71 Capability Shader Capability SampledBuffer 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 55 59 + EntryPoint Fragment 4 "main" 62 66 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" Name 13 "g_tTexbf4" - Name 17 "c1" - Name 23 "r01" - Name 27 "g_tTexbi4" - Name 35 "r02" - Name 39 "g_tTexbu4" - Name 44 "PS_OUTPUT" - MemberName 44(PS_OUTPUT) 0 "Color" - MemberName 44(PS_OUTPUT) 1 "Depth" - Name 46 "psout" - Name 55 "Color" - Name 59 "Depth" - Name 63 "g_tTexbf4_test" - Name 66 "c2" - Name 69 "c3" - Name 71 "c4" - Name 72 "o1" - Name 73 "o2" - Name 74 "o3" - Name 75 "o4" + Name 19 "$Global" + MemberName 19($Global) 0 "c1" + MemberName 19($Global) 1 "c2" + MemberName 19($Global) 2 "c3" + MemberName 19($Global) 3 "c4" + MemberName 19($Global) 4 "o1" + MemberName 19($Global) 5 "o2" + MemberName 19($Global) 6 "o3" + MemberName 19($Global) 7 "o4" + Name 21 "" + Name 29 "r01" + Name 33 "g_tTexbi4" + Name 42 "r02" + Name 46 "g_tTexbu4" + Name 52 "PS_OUTPUT" + MemberName 52(PS_OUTPUT) 0 "Color" + MemberName 52(PS_OUTPUT) 1 "Depth" + Name 54 "psout" + Name 62 "Color" + Name 66 "Depth" + Name 70 "g_tTexbf4_test" Decorate 13(g_tTexbf4) DescriptorSet 0 - Decorate 27(g_tTexbi4) DescriptorSet 0 - Decorate 39(g_tTexbu4) DescriptorSet 0 - Decorate 55(Color) Location 0 - Decorate 59(Depth) BuiltIn FragDepth - Decorate 63(g_tTexbf4_test) DescriptorSet 0 - Decorate 63(g_tTexbf4_test) Binding 0 + MemberDecorate 19($Global) 0 Offset 0 + MemberDecorate 19($Global) 1 Offset 8 + MemberDecorate 19($Global) 2 Offset 16 + MemberDecorate 19($Global) 3 Offset 32 + MemberDecorate 19($Global) 4 Offset 48 + MemberDecorate 19($Global) 5 Offset 56 + MemberDecorate 19($Global) 6 Offset 64 + MemberDecorate 19($Global) 7 Offset 80 + Decorate 19($Global) Block + Decorate 21 DescriptorSet 0 + Decorate 33(g_tTexbi4) DescriptorSet 0 + Decorate 46(g_tTexbu4) DescriptorSet 0 + Decorate 62(Color) Location 0 + Decorate 66(Depth) BuiltIn FragDepth + Decorate 70(g_tTexbf4_test) DescriptorSet 0 + Decorate 70(g_tTexbf4_test) Binding 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 4 8: TypePointer Function 7(fvec4) - 10: TypeImage 6(float) Buffer sampled format:Unknown + 10: TypeImage 6(float) Buffer sampled format:Rgba32f 11: TypeSampledImage 10 12: TypePointer UniformConstant 11 13(g_tTexbf4): 12(ptr) Variable UniformConstant 15: TypeInt 32 1 - 16: TypePointer UniformConstant 15(int) - 17(c1): 16(ptr) Variable UniformConstant - 21: TypeVector 15(int) 4 - 22: TypePointer Function 21(ivec4) - 24: TypeImage 15(int) Buffer sampled format:Unknown - 25: TypeSampledImage 24 - 26: TypePointer UniformConstant 25 - 27(g_tTexbi4): 26(ptr) Variable UniformConstant - 32: TypeInt 32 0 - 33: TypeVector 32(int) 4 - 34: TypePointer Function 33(ivec4) - 36: TypeImage 32(int) Buffer sampled format:Unknown - 37: TypeSampledImage 36 - 38: TypePointer UniformConstant 37 - 39(g_tTexbu4): 38(ptr) Variable UniformConstant - 44(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) - 45: TypePointer Function 44(PS_OUTPUT) - 47: 15(int) Constant 0 - 48: 6(float) Constant 1065353216 - 49: 7(fvec4) ConstantComposite 48 48 48 48 - 51: 15(int) Constant 1 - 52: TypePointer Function 6(float) - 54: TypePointer Output 7(fvec4) - 55(Color): 54(ptr) Variable Output - 58: TypePointer Output 6(float) - 59(Depth): 58(ptr) Variable Output -63(g_tTexbf4_test): 12(ptr) Variable UniformConstant - 64: TypeVector 15(int) 2 - 65: TypePointer UniformConstant 64(ivec2) - 66(c2): 65(ptr) Variable UniformConstant - 67: TypeVector 15(int) 3 - 68: TypePointer UniformConstant 67(ivec3) - 69(c3): 68(ptr) Variable UniformConstant - 70: TypePointer UniformConstant 21(ivec4) - 71(c4): 70(ptr) Variable UniformConstant - 72(o1): 16(ptr) Variable UniformConstant - 73(o2): 65(ptr) Variable UniformConstant - 74(o3): 68(ptr) Variable UniformConstant - 75(o4): 70(ptr) Variable UniformConstant + 16: TypeVector 15(int) 2 + 17: TypeVector 15(int) 3 + 18: TypeVector 15(int) 4 + 19($Global): TypeStruct 15(int) 16(ivec2) 17(ivec3) 18(ivec4) 15(int) 16(ivec2) 17(ivec3) 18(ivec4) + 20: TypePointer Uniform 19($Global) + 21: 20(ptr) Variable Uniform + 22: 15(int) Constant 0 + 23: TypePointer Uniform 15(int) + 28: TypePointer Function 18(ivec4) + 30: TypeImage 15(int) Buffer sampled format:Rgba32i + 31: TypeSampledImage 30 + 32: TypePointer UniformConstant 31 + 33(g_tTexbi4): 32(ptr) Variable UniformConstant + 39: TypeInt 32 0 + 40: TypeVector 39(int) 4 + 41: TypePointer Function 40(ivec4) + 43: TypeImage 39(int) Buffer sampled format:Rgba32ui + 44: TypeSampledImage 43 + 45: TypePointer UniformConstant 44 + 46(g_tTexbu4): 45(ptr) Variable UniformConstant + 52(PS_OUTPUT): TypeStruct 7(fvec4) 6(float) + 53: TypePointer Function 52(PS_OUTPUT) + 55: 6(float) Constant 1065353216 + 56: 7(fvec4) ConstantComposite 55 55 55 55 + 58: 15(int) Constant 1 + 59: TypePointer Function 6(float) + 61: TypePointer Output 7(fvec4) + 62(Color): 61(ptr) Variable Output + 65: TypePointer Output 6(float) + 66(Depth): 65(ptr) Variable Output +70(g_tTexbf4_test): 12(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function - 23(r01): 22(ptr) Variable Function - 35(r02): 34(ptr) Variable Function - 46(psout): 45(ptr) Variable Function + 29(r01): 28(ptr) Variable Function + 42(r02): 41(ptr) Variable Function + 54(psout): 53(ptr) Variable Function 14: 11 Load 13(g_tTexbf4) - 18: 15(int) Load 17(c1) - 19: 10 Image 14 - 20: 7(fvec4) ImageFetch 19 18 - Store 9(r00) 20 - 28: 25 Load 27(g_tTexbi4) - 29: 15(int) Load 17(c1) - 30: 24 Image 28 - 31: 21(ivec4) ImageFetch 30 29 - Store 23(r01) 31 - 40: 37 Load 39(g_tTexbu4) - 41: 15(int) Load 17(c1) - 42: 36 Image 40 - 43: 33(ivec4) ImageFetch 42 41 - Store 35(r02) 43 - 50: 8(ptr) AccessChain 46(psout) 47 - Store 50 49 - 53: 52(ptr) AccessChain 46(psout) 51 - Store 53 48 - 56: 8(ptr) AccessChain 46(psout) 47 - 57: 7(fvec4) Load 56 - Store 55(Color) 57 - 60: 52(ptr) AccessChain 46(psout) 51 - 61: 6(float) Load 60 - Store 59(Depth) 61 + 24: 23(ptr) AccessChain 21 22 + 25: 15(int) Load 24 + 26: 10 Image 14 + 27: 7(fvec4) ImageFetch 26 25 + Store 9(r00) 27 + 34: 31 Load 33(g_tTexbi4) + 35: 23(ptr) AccessChain 21 22 + 36: 15(int) Load 35 + 37: 30 Image 34 + 38: 18(ivec4) ImageFetch 37 36 + Store 29(r01) 38 + 47: 44 Load 46(g_tTexbu4) + 48: 23(ptr) AccessChain 21 22 + 49: 15(int) Load 48 + 50: 43 Image 47 + 51: 40(ivec4) ImageFetch 50 49 + Store 42(r02) 51 + 57: 8(ptr) AccessChain 54(psout) 22 + Store 57 56 + 60: 59(ptr) AccessChain 54(psout) 58 + Store 60 55 + 63: 8(ptr) AccessChain 54(psout) 22 + 64: 7(fvec4) Load 63 + Store 62(Color) 64 + 67: 59(ptr) AccessChain 54(psout) 58 + 68: 6(float) Load 67 + Store 66(Depth) 68 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..c0cd15284396d9f7e33056f49ea9fb8fa4745a38 --- /dev/null +++ b/Test/baseResults/hlsl.load.buffer.float.dx10.frag.out @@ -0,0 +1,290 @@ +hlsl.load.buffer.float.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'r00' (temp float) +0:28 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child (temp int) +0:29 'r01' (temp int) +0:29 Construct int (temp int) +0:? textureFetch (temp 4-component vector of int) +0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child (temp uint) +0:30 'r02' (temp uint) +0:30 Construct uint (temp uint) +0:? textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Sequence +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 1 (const int) +0:37 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Parameters: +0:? Sequence +0:28 Sequence +0:28 move second child to first child (temp float) +0:28 'r00' (temp float) +0:28 Construct float (temp float) +0:? textureFetch (temp 4-component vector of float) +0:28 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:28 c1: direct index for structure (layout(offset=0 ) uniform int) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:28 Constant: +0:28 0 (const uint) +0:29 Sequence +0:29 move second child to first child (temp int) +0:29 'r01' (temp int) +0:29 Construct int (temp int) +0:? textureFetch (temp 4-component vector of int) +0:29 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:29 c1: direct index for structure (layout(offset=0 ) uniform int) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:29 Constant: +0:29 0 (const uint) +0:30 Sequence +0:30 move second child to first child (temp uint) +0:30 'r02' (temp uint) +0:30 Construct uint (temp uint) +0:? textureFetch (temp 4-component vector of uint) +0:30 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:30 c1: direct index for structure (layout(offset=0 ) uniform int) +0:30 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:30 Constant: +0:30 0 (const uint) +0:34 move second child to first child (temp 4-component vector of float) +0:34 Color: direct index for structure (temp 4-component vector of float) +0:34 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:34 Constant: +0:34 0 (const int) +0:34 Constant: +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:34 1.000000 +0:35 move second child to first child (temp float) +0:35 Depth: direct index for structure (temp float) +0:35 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:35 Constant: +0:35 1 (const int) +0:35 Constant: +0:35 1.000000 +0:37 Sequence +0:37 Sequence +0:37 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:37 Color: direct index for structure (temp 4-component vector of float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 0 (const int) +0:37 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:37 Depth: direct index for structure (temp float) +0:37 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:37 Constant: +0:37 1 (const int) +0:37 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_tTexbfs_test' (layout(binding=0 r32f ) uniform samplerBuffer) +0:? 'g_tTexbfs' (layout(r32f ) uniform samplerBuffer) +0:? 'g_tTexbis' (layout(r32i ) uniform isamplerBuffer) +0:? 'g_tTexbus' (layout(r32ui ) uniform usamplerBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 74 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 65 69 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 12 "g_tTexbfs" + Name 18 "$Global" + MemberName 18($Global) 0 "c1" + MemberName 18($Global) 1 "c2" + MemberName 18($Global) 2 "c3" + MemberName 18($Global) 3 "c4" + MemberName 18($Global) 4 "o1" + MemberName 18($Global) 5 "o2" + MemberName 18($Global) 6 "o3" + MemberName 18($Global) 7 "o4" + Name 20 "" + Name 30 "r01" + Name 34 "g_tTexbis" + Name 43 "r02" + Name 47 "g_tTexbus" + Name 55 "PS_OUTPUT" + MemberName 55(PS_OUTPUT) 0 "Color" + MemberName 55(PS_OUTPUT) 1 "Depth" + Name 57 "psout" + Name 65 "Color" + Name 69 "Depth" + Name 73 "g_tTexbfs_test" + Decorate 12(g_tTexbfs) DescriptorSet 0 + MemberDecorate 18($Global) 0 Offset 0 + MemberDecorate 18($Global) 1 Offset 8 + MemberDecorate 18($Global) 2 Offset 16 + MemberDecorate 18($Global) 3 Offset 32 + MemberDecorate 18($Global) 4 Offset 48 + MemberDecorate 18($Global) 5 Offset 56 + MemberDecorate 18($Global) 6 Offset 64 + MemberDecorate 18($Global) 7 Offset 80 + Decorate 18($Global) Block + Decorate 20 DescriptorSet 0 + Decorate 34(g_tTexbis) DescriptorSet 0 + Decorate 47(g_tTexbus) DescriptorSet 0 + Decorate 65(Color) Location 0 + Decorate 69(Depth) BuiltIn FragDepth + Decorate 73(g_tTexbfs_test) DescriptorSet 0 + Decorate 73(g_tTexbfs_test) Binding 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) Buffer sampled format:R32f + 10: TypeSampledImage 9 + 11: TypePointer UniformConstant 10 + 12(g_tTexbfs): 11(ptr) Variable UniformConstant + 14: TypeInt 32 1 + 15: TypeVector 14(int) 2 + 16: TypeVector 14(int) 3 + 17: TypeVector 14(int) 4 + 18($Global): TypeStruct 14(int) 15(ivec2) 16(ivec3) 17(ivec4) 14(int) 15(ivec2) 16(ivec3) 17(ivec4) + 19: TypePointer Uniform 18($Global) + 20: 19(ptr) Variable Uniform + 21: 14(int) Constant 0 + 22: TypePointer Uniform 14(int) + 26: TypeVector 6(float) 4 + 29: TypePointer Function 14(int) + 31: TypeImage 14(int) Buffer sampled format:R32i + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 + 34(g_tTexbis): 33(ptr) Variable UniformConstant + 41: TypeInt 32 0 + 42: TypePointer Function 41(int) + 44: TypeImage 41(int) Buffer sampled format:R32ui + 45: TypeSampledImage 44 + 46: TypePointer UniformConstant 45 + 47(g_tTexbus): 46(ptr) Variable UniformConstant + 52: TypeVector 41(int) 4 + 55(PS_OUTPUT): TypeStruct 26(fvec4) 6(float) + 56: TypePointer Function 55(PS_OUTPUT) + 58: 6(float) Constant 1065353216 + 59: 26(fvec4) ConstantComposite 58 58 58 58 + 60: TypePointer Function 26(fvec4) + 62: 14(int) Constant 1 + 64: TypePointer Output 26(fvec4) + 65(Color): 64(ptr) Variable Output + 68: TypePointer Output 6(float) + 69(Depth): 68(ptr) Variable Output +73(g_tTexbfs_test): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 30(r01): 29(ptr) Variable Function + 43(r02): 42(ptr) Variable Function + 57(psout): 56(ptr) Variable Function + 13: 10 Load 12(g_tTexbfs) + 23: 22(ptr) AccessChain 20 21 + 24: 14(int) Load 23 + 25: 9 Image 13 + 27: 26(fvec4) ImageFetch 25 24 + 28: 6(float) CompositeExtract 27 0 + Store 8(r00) 28 + 35: 32 Load 34(g_tTexbis) + 36: 22(ptr) AccessChain 20 21 + 37: 14(int) Load 36 + 38: 31 Image 35 + 39: 17(ivec4) ImageFetch 38 37 + 40: 14(int) CompositeExtract 39 0 + Store 30(r01) 40 + 48: 45 Load 47(g_tTexbus) + 49: 22(ptr) AccessChain 20 21 + 50: 14(int) Load 49 + 51: 44 Image 48 + 53: 52(ivec4) ImageFetch 51 50 + 54: 41(int) CompositeExtract 53 0 + Store 43(r02) 54 + 61: 60(ptr) AccessChain 57(psout) 21 + Store 61 59 + 63: 7(ptr) AccessChain 57(psout) 62 + Store 63 58 + 66: 60(ptr) AccessChain 57(psout) 21 + 67: 26(fvec4) Load 66 + Store 65(Color) 67 + 70: 7(ptr) AccessChain 57(psout) 62 + 71: 6(float) Load 70 + Store 69(Depth) 71 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.load.offset.dx10.frag.out b/Test/baseResults/hlsl.load.offset.dx10.frag.out index 2110e6f4e31da91c5efd5007b9aa296e89bf8d7e..9a14b658e6991a658ba794c7d8352137fe128d6d 100644 --- a/Test/baseResults/hlsl.load.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offset.dx10.frag.out @@ -2,91 +2,148 @@ hlsl.load.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetchOffset (global 4-component vector of float) +0:52 textureFetchOffset (temp 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:52 'o1' (uniform int) -0:53 textureFetchOffset (global 4-component vector of int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset (temp 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:53 'o1' (uniform int) -0:54 textureFetchOffset (global 4-component vector of uint) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset (temp 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) -0:54 'o1' (uniform int) -0:57 textureFetchOffset (global 4-component vector of float) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset (temp 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:57 'o2' (uniform 2-component vector of int) -0:58 textureFetchOffset (global 4-component vector of int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset (temp 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:58 'o2' (uniform 2-component vector of int) -0:59 textureFetchOffset (global 4-component vector of uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset (temp 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index (temp int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) -0:59 'o2' (uniform 2-component vector of int) -0:62 textureFetchOffset (global 4-component vector of float) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:62 textureFetchOffset (temp 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -95,14 +152,23 @@ gl_FragCoord origin is upper left 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:62 'o3' (uniform 3-component vector of int) -0:63 textureFetchOffset (global 4-component vector of int) +0:62 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 6 (const uint) +0:63 textureFetchOffset (temp 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -111,14 +177,23 @@ gl_FragCoord origin is upper left 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) -0:63 'o3' (uniform 3-component vector of int) -0:64 textureFetchOffset (global 4-component vector of uint) +0:63 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 6 (const uint) +0:64 textureFetchOffset (temp 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) @@ -127,10 +202,16 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 2 (const int) 0:64 direct index (temp int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) -0:64 'o3' (uniform 3-component vector of int) +0:64 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 6 (const uint) 0:72 move second child to first child (temp 4-component vector of float) 0:72 Color: direct index for structure (temp 4-component vector of float) 0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -148,8 +229,8 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:? Sequence -0:? Sequence +0:75 Sequence +0:75 Sequence 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) @@ -164,6 +245,8 @@ gl_FragCoord origin is upper left 0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -186,16 +269,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -204,91 +278,148 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetchOffset (global 4-component vector of float) +0:52 textureFetchOffset (temp 4-component vector of float) 0:52 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:52 vector swizzle (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 direct index (temp int) -0:52 'c2' (uniform 2-component vector of int) +0:52 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 1 (const uint) 0:52 Constant: 0:52 1 (const int) -0:52 'o1' (uniform int) -0:53 textureFetchOffset (global 4-component vector of int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset (temp 4-component vector of int) 0:53 'g_tTex1di4' (uniform itexture1D) 0:53 vector swizzle (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 direct index (temp int) -0:53 'c2' (uniform 2-component vector of int) +0:53 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 1 (const uint) 0:53 Constant: 0:53 1 (const int) -0:53 'o1' (uniform int) -0:54 textureFetchOffset (global 4-component vector of uint) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset (temp 4-component vector of uint) 0:54 'g_tTex1du4' (uniform utexture1D) 0:54 vector swizzle (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 direct index (temp int) -0:54 'c2' (uniform 2-component vector of int) +0:54 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 1 (const uint) 0:54 Constant: 0:54 1 (const int) -0:54 'o1' (uniform int) -0:57 textureFetchOffset (global 4-component vector of float) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset (temp 4-component vector of float) 0:57 'g_tTex2df4' (uniform texture2D) 0:57 vector swizzle (temp 2-component vector of int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) 0:57 Constant: 0:57 1 (const int) 0:57 direct index (temp int) -0:57 'c3' (uniform 3-component vector of int) +0:57 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 2 (const uint) 0:57 Constant: 0:57 2 (const int) -0:57 'o2' (uniform 2-component vector of int) -0:58 textureFetchOffset (global 4-component vector of int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset (temp 4-component vector of int) 0:58 'g_tTex2di4' (uniform itexture2D) 0:58 vector swizzle (temp 2-component vector of int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) 0:58 Constant: 0:58 1 (const int) 0:58 direct index (temp int) -0:58 'c3' (uniform 3-component vector of int) +0:58 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 2 (const uint) 0:58 Constant: 0:58 2 (const int) -0:58 'o2' (uniform 2-component vector of int) -0:59 textureFetchOffset (global 4-component vector of uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset (temp 4-component vector of uint) 0:59 'g_tTex2du4' (uniform utexture2D) 0:59 vector swizzle (temp 2-component vector of int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) 0:59 Constant: 0:59 1 (const int) 0:59 direct index (temp int) -0:59 'c3' (uniform 3-component vector of int) +0:59 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 2 (const uint) 0:59 Constant: 0:59 2 (const int) -0:59 'o2' (uniform 2-component vector of int) -0:62 textureFetchOffset (global 4-component vector of float) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) +0:62 textureFetchOffset (temp 4-component vector of float) 0:62 'g_tTex3df4' (uniform texture3D) 0:62 vector swizzle (temp 3-component vector of int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Sequence 0:62 Constant: 0:62 0 (const int) @@ -297,14 +428,23 @@ gl_FragCoord origin is upper left 0:62 Constant: 0:62 2 (const int) 0:62 direct index (temp int) -0:62 'c4' (uniform 4-component vector of int) +0:62 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 3 (const uint) 0:62 Constant: 0:62 3 (const int) -0:62 'o3' (uniform 3-component vector of int) -0:63 textureFetchOffset (global 4-component vector of int) +0:62 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 6 (const uint) +0:63 textureFetchOffset (temp 4-component vector of int) 0:63 'g_tTex3di4' (uniform itexture3D) 0:63 vector swizzle (temp 3-component vector of int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Sequence 0:63 Constant: 0:63 0 (const int) @@ -313,14 +453,23 @@ gl_FragCoord origin is upper left 0:63 Constant: 0:63 2 (const int) 0:63 direct index (temp int) -0:63 'c4' (uniform 4-component vector of int) +0:63 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 3 (const uint) 0:63 Constant: 0:63 3 (const int) -0:63 'o3' (uniform 3-component vector of int) -0:64 textureFetchOffset (global 4-component vector of uint) +0:63 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 6 (const uint) +0:64 textureFetchOffset (temp 4-component vector of uint) 0:64 'g_tTex3du4' (uniform utexture3D) 0:64 vector swizzle (temp 3-component vector of int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Sequence 0:64 Constant: 0:64 0 (const int) @@ -329,10 +478,16 @@ gl_FragCoord origin is upper left 0:64 Constant: 0:64 2 (const int) 0:64 direct index (temp int) -0:64 'c4' (uniform 4-component vector of int) +0:64 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 3 (const uint) 0:64 Constant: 0:64 3 (const int) -0:64 'o3' (uniform 3-component vector of int) +0:64 o3: direct index for structure (layout(offset=64 ) uniform 3-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:64 Constant: +0:64 6 (const uint) 0:72 move second child to first child (temp 4-component vector of float) 0:72 Color: direct index for structure (temp 4-component vector of float) 0:72 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -350,8 +505,8 @@ gl_FragCoord origin is upper left 0:73 1 (const int) 0:73 Constant: 0:73 1.000000 -0:? Sequence -0:? Sequence +0:75 Sequence +0:75 Sequence 0:75 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:75 Color: direct index for structure (temp 4-component vector of float) @@ -366,6 +521,8 @@ gl_FragCoord origin is upper left 0:75 1 (const int) 0:75 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -388,20 +545,11 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 179 +// Id's are bound by 194 Capability Shader Capability ImageGatherExtended @@ -409,71 +557,83 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 130 134 + EntryPoint Fragment 4 "main" 147 151 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4" - Name 14 "c2" - Name 23 "o1" - Name 29 "g_tTex1di4" - Name 40 "g_tTex1du4" - Name 51 "g_tTex2df4" - Name 55 "c3" - Name 61 "o2" - Name 66 "g_tTex2di4" - Name 76 "g_tTex2du4" - Name 86 "g_tTex3df4" - Name 89 "c4" - Name 95 "o3" - Name 100 "g_tTex3di4" - Name 110 "g_tTex3du4" - Name 118 "PS_OUTPUT" - MemberName 118(PS_OUTPUT) 0 "Color" - MemberName 118(PS_OUTPUT) 1 "Depth" - Name 120 "psout" - Name 130 "Color" - Name 134 "Depth" - Name 140 "g_sSamp" - Name 143 "g_tTexcdf4" - Name 146 "g_tTexcdi4" - Name 149 "g_tTexcdu4" - Name 152 "g_tTex1df4a" - Name 155 "g_tTex1di4a" - Name 158 "g_tTex1du4a" - Name 161 "g_tTex2df4a" - Name 164 "g_tTex2di4a" - Name 167 "g_tTex2du4a" - Name 170 "g_tTexcdf4a" - Name 173 "g_tTexcdi4a" - Name 176 "g_tTexcdu4a" - Name 177 "c1" - Name 178 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 34 "g_tTex1di4" + Name 45 "g_tTex1du4" + Name 57 "g_tTex2df4" + Name 74 "g_tTex2di4" + Name 86 "g_tTex2du4" + Name 98 "g_tTex3df4" + Name 114 "g_tTex3di4" + Name 126 "g_tTex3du4" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + MemberName 136(PS_OUTPUT) 1 "Depth" + Name 138 "psout" + Name 147 "Color" + Name 151 "Depth" + Name 157 "g_sSamp" + Name 160 "g_tTexcdf4" + Name 163 "g_tTexcdi4" + Name 166 "g_tTexcdu4" + Name 169 "g_tTex1df4a" + Name 172 "g_tTex1di4a" + Name 175 "g_tTex1du4a" + Name 178 "g_tTex2df4a" + Name 181 "g_tTex2di4a" + Name 184 "g_tTex2du4a" + Name 187 "g_tTexcdf4a" + Name 190 "g_tTexcdi4a" + Name 193 "g_tTexcdu4a" Decorate 9(g_tTex1df4) DescriptorSet 0 Decorate 9(g_tTex1df4) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 40(g_tTex1du4) DescriptorSet 0 - Decorate 51(g_tTex2df4) DescriptorSet 0 - Decorate 66(g_tTex2di4) DescriptorSet 0 - Decorate 76(g_tTex2du4) DescriptorSet 0 - Decorate 86(g_tTex3df4) DescriptorSet 0 - Decorate 100(g_tTex3di4) DescriptorSet 0 - Decorate 110(g_tTex3du4) DescriptorSet 0 - Decorate 130(Color) Location 0 - Decorate 134(Depth) BuiltIn FragDepth - Decorate 140(g_sSamp) DescriptorSet 0 - Decorate 140(g_sSamp) Binding 0 - Decorate 143(g_tTexcdf4) DescriptorSet 0 - Decorate 146(g_tTexcdi4) DescriptorSet 0 - Decorate 149(g_tTexcdu4) DescriptorSet 0 - Decorate 152(g_tTex1df4a) DescriptorSet 0 - Decorate 155(g_tTex1di4a) DescriptorSet 0 - Decorate 158(g_tTex1du4a) DescriptorSet 0 - Decorate 161(g_tTex2df4a) DescriptorSet 0 - Decorate 164(g_tTex2di4a) DescriptorSet 0 - Decorate 167(g_tTex2du4a) DescriptorSet 0 - Decorate 170(g_tTexcdf4a) DescriptorSet 0 - Decorate 173(g_tTexcdi4a) DescriptorSet 0 - Decorate 176(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 34(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 74(g_tTex2di4) DescriptorSet 0 + Decorate 86(g_tTex2du4) DescriptorSet 0 + Decorate 98(g_tTex3df4) DescriptorSet 0 + Decorate 114(g_tTex3di4) DescriptorSet 0 + Decorate 126(g_tTex3du4) DescriptorSet 0 + Decorate 147(Color) Location 0 + Decorate 151(Depth) BuiltIn FragDepth + Decorate 157(g_sSamp) DescriptorSet 0 + Decorate 157(g_sSamp) Binding 0 + Decorate 160(g_tTexcdf4) DescriptorSet 0 + Decorate 163(g_tTexcdi4) DescriptorSet 0 + Decorate 166(g_tTexcdu4) DescriptorSet 0 + Decorate 169(g_tTex1df4a) DescriptorSet 0 + Decorate 172(g_tTex1di4a) DescriptorSet 0 + Decorate 175(g_tTex1du4a) DescriptorSet 0 + Decorate 178(g_tTex2df4a) DescriptorSet 0 + Decorate 181(g_tTex2di4a) DescriptorSet 0 + Decorate 184(g_tTex2du4a) DescriptorSet 0 + Decorate 187(g_tTexcdf4a) DescriptorSet 0 + Decorate 190(g_tTexcdi4a) DescriptorSet 0 + Decorate 193(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -482,177 +642,192 @@ gl_FragCoord origin is upper left 9(g_tTex1df4): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 12: TypeVector 11(int) 2 - 13: TypePointer UniformConstant 12(ivec2) - 14(c2): 13(ptr) Variable UniformConstant - 15: TypeInt 32 0 - 16: 15(int) Constant 0 - 17: TypePointer UniformConstant 11(int) - 20: 15(int) Constant 1 - 23(o1): 17(ptr) Variable UniformConstant - 25: TypeVector 6(float) 4 - 27: TypeImage 11(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 36: TypeVector 11(int) 4 - 38: TypeImage 15(int) 1D sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4): 39(ptr) Variable UniformConstant - 47: TypeVector 15(int) 4 - 49: TypeImage 6(float) 2D sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4): 50(ptr) Variable UniformConstant - 53: TypeVector 11(int) 3 - 54: TypePointer UniformConstant 53(ivec3) - 55(c3): 54(ptr) Variable UniformConstant - 58: 15(int) Constant 2 - 61(o2): 13(ptr) Variable UniformConstant - 64: TypeImage 11(int) 2D sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4): 65(ptr) Variable UniformConstant - 74: TypeImage 15(int) 2D sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2du4): 75(ptr) Variable UniformConstant - 84: TypeImage 6(float) 3D sampled format:Unknown + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypeInt 32 0 + 20: 19(int) Constant 0 + 21: TypePointer Uniform 11(int) + 24: 19(int) Constant 1 + 27: 11(int) Constant 4 + 30: TypeVector 6(float) 4 + 32: TypeImage 11(int) 1D sampled format:Unknown + 33: TypePointer UniformConstant 32 + 34(g_tTex1di4): 33(ptr) Variable UniformConstant + 43: TypeImage 19(int) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 53: TypeVector 19(int) 4 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 59: 11(int) Constant 2 + 60: TypePointer Uniform 13(ivec3) + 64: 19(int) Constant 2 + 67: 11(int) Constant 5 + 68: TypePointer Uniform 12(ivec2) + 72: TypeImage 11(int) 2D sampled format:Unknown + 73: TypePointer UniformConstant 72 + 74(g_tTex2di4): 73(ptr) Variable UniformConstant + 84: TypeImage 19(int) 2D sampled format:Unknown 85: TypePointer UniformConstant 84 - 86(g_tTex3df4): 85(ptr) Variable UniformConstant - 88: TypePointer UniformConstant 36(ivec4) - 89(c4): 88(ptr) Variable UniformConstant - 92: 15(int) Constant 3 - 95(o3): 54(ptr) Variable UniformConstant - 98: TypeImage 11(int) 3D sampled format:Unknown - 99: TypePointer UniformConstant 98 - 100(g_tTex3di4): 99(ptr) Variable UniformConstant - 108: TypeImage 15(int) 3D sampled format:Unknown - 109: TypePointer UniformConstant 108 - 110(g_tTex3du4): 109(ptr) Variable UniformConstant - 118(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) - 119: TypePointer Function 118(PS_OUTPUT) - 121: 11(int) Constant 0 - 122: 6(float) Constant 1065353216 - 123: 25(fvec4) ConstantComposite 122 122 122 122 - 124: TypePointer Function 25(fvec4) - 126: 11(int) Constant 1 - 127: TypePointer Function 6(float) - 129: TypePointer Output 25(fvec4) - 130(Color): 129(ptr) Variable Output - 133: TypePointer Output 6(float) - 134(Depth): 133(ptr) Variable Output - 138: TypeSampler - 139: TypePointer UniformConstant 138 - 140(g_sSamp): 139(ptr) Variable UniformConstant - 141: TypeImage 6(float) Cube sampled format:Unknown - 142: TypePointer UniformConstant 141 - 143(g_tTexcdf4): 142(ptr) Variable UniformConstant - 144: TypeImage 11(int) Cube sampled format:Unknown - 145: TypePointer UniformConstant 144 - 146(g_tTexcdi4): 145(ptr) Variable UniformConstant - 147: TypeImage 15(int) Cube sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTexcdu4): 148(ptr) Variable UniformConstant - 150: TypeImage 6(float) 1D array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTex1df4a): 151(ptr) Variable UniformConstant - 153: TypeImage 11(int) 1D array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTex1di4a): 154(ptr) Variable UniformConstant - 156: TypeImage 15(int) 1D array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTex1du4a): 157(ptr) Variable UniformConstant - 159: TypeImage 6(float) 2D array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTex2df4a): 160(ptr) Variable UniformConstant - 162: TypeImage 11(int) 2D array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTex2di4a): 163(ptr) Variable UniformConstant - 165: TypeImage 15(int) 2D array sampled format:Unknown - 166: TypePointer UniformConstant 165 -167(g_tTex2du4a): 166(ptr) Variable UniformConstant - 168: TypeImage 6(float) Cube array sampled format:Unknown - 169: TypePointer UniformConstant 168 -170(g_tTexcdf4a): 169(ptr) Variable UniformConstant - 171: TypeImage 11(int) Cube array sampled format:Unknown - 172: TypePointer UniformConstant 171 -173(g_tTexcdi4a): 172(ptr) Variable UniformConstant - 174: TypeImage 15(int) Cube array sampled format:Unknown - 175: TypePointer UniformConstant 174 -176(g_tTexcdu4a): 175(ptr) Variable UniformConstant - 177(c1): 17(ptr) Variable UniformConstant - 178(o4): 88(ptr) Variable UniformConstant + 86(g_tTex2du4): 85(ptr) Variable UniformConstant + 96: TypeImage 6(float) 3D sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex3df4): 97(ptr) Variable UniformConstant + 100: 11(int) Constant 3 + 101: TypePointer Uniform 14(ivec4) + 105: 19(int) Constant 3 + 108: 11(int) Constant 6 + 112: TypeImage 11(int) 3D sampled format:Unknown + 113: TypePointer UniformConstant 112 + 114(g_tTex3di4): 113(ptr) Variable UniformConstant + 124: TypeImage 19(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3du4): 125(ptr) Variable UniformConstant + 136(PS_OUTPUT): TypeStruct 30(fvec4) 6(float) + 137: TypePointer Function 136(PS_OUTPUT) + 139: 11(int) Constant 0 + 140: 6(float) Constant 1065353216 + 141: 30(fvec4) ConstantComposite 140 140 140 140 + 142: TypePointer Function 30(fvec4) + 144: TypePointer Function 6(float) + 146: TypePointer Output 30(fvec4) + 147(Color): 146(ptr) Variable Output + 150: TypePointer Output 6(float) + 151(Depth): 150(ptr) Variable Output + 155: TypeSampler + 156: TypePointer UniformConstant 155 + 157(g_sSamp): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube sampled format:Unknown + 159: TypePointer UniformConstant 158 + 160(g_tTexcdf4): 159(ptr) Variable UniformConstant + 161: TypeImage 11(int) Cube sampled format:Unknown + 162: TypePointer UniformConstant 161 + 163(g_tTexcdi4): 162(ptr) Variable UniformConstant + 164: TypeImage 19(int) Cube sampled format:Unknown + 165: TypePointer UniformConstant 164 + 166(g_tTexcdu4): 165(ptr) Variable UniformConstant + 167: TypeImage 6(float) 1D array sampled format:Unknown + 168: TypePointer UniformConstant 167 +169(g_tTex1df4a): 168(ptr) Variable UniformConstant + 170: TypeImage 11(int) 1D array sampled format:Unknown + 171: TypePointer UniformConstant 170 +172(g_tTex1di4a): 171(ptr) Variable UniformConstant + 173: TypeImage 19(int) 1D array sampled format:Unknown + 174: TypePointer UniformConstant 173 +175(g_tTex1du4a): 174(ptr) Variable UniformConstant + 176: TypeImage 6(float) 2D array sampled format:Unknown + 177: TypePointer UniformConstant 176 +178(g_tTex2df4a): 177(ptr) Variable UniformConstant + 179: TypeImage 11(int) 2D array sampled format:Unknown + 180: TypePointer UniformConstant 179 +181(g_tTex2di4a): 180(ptr) Variable UniformConstant + 182: TypeImage 19(int) 2D array sampled format:Unknown + 183: TypePointer UniformConstant 182 +184(g_tTex2du4a): 183(ptr) Variable UniformConstant + 185: TypeImage 6(float) Cube array sampled format:Unknown + 186: TypePointer UniformConstant 185 +187(g_tTexcdf4a): 186(ptr) Variable UniformConstant + 188: TypeImage 11(int) Cube array sampled format:Unknown + 189: TypePointer UniformConstant 188 +190(g_tTexcdi4a): 189(ptr) Variable UniformConstant + 191: TypeImage 19(int) Cube array sampled format:Unknown + 192: TypePointer UniformConstant 191 +193(g_tTexcdu4a): 192(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 120(psout): 119(ptr) Variable Function + 138(psout): 137(ptr) Variable Function 10: 7 Load 9(g_tTex1df4) - 18: 17(ptr) AccessChain 14(c2) 16 - 19: 11(int) Load 18 - 21: 17(ptr) AccessChain 14(c2) 20 - 22: 11(int) Load 21 - 24: 11(int) Load 23(o1) - 26: 25(fvec4) ImageFetch 10 19 Lod Offset 22 24 - 30: 27 Load 29(g_tTex1di4) - 31: 17(ptr) AccessChain 14(c2) 16 - 32: 11(int) Load 31 - 33: 17(ptr) AccessChain 14(c2) 20 - 34: 11(int) Load 33 - 35: 11(int) Load 23(o1) - 37: 36(ivec4) ImageFetch 30 32 Lod Offset 34 35 - 41: 38 Load 40(g_tTex1du4) - 42: 17(ptr) AccessChain 14(c2) 16 - 43: 11(int) Load 42 - 44: 17(ptr) AccessChain 14(c2) 20 - 45: 11(int) Load 44 - 46: 11(int) Load 23(o1) - 48: 47(ivec4) ImageFetch 41 43 Lod Offset 45 46 - 52: 49 Load 51(g_tTex2df4) - 56: 53(ivec3) Load 55(c3) - 57: 12(ivec2) VectorShuffle 56 56 0 1 - 59: 17(ptr) AccessChain 55(c3) 58 - 60: 11(int) Load 59 - 62: 12(ivec2) Load 61(o2) - 63: 25(fvec4) ImageFetch 52 57 Lod Offset 60 62 - 67: 64 Load 66(g_tTex2di4) - 68: 53(ivec3) Load 55(c3) - 69: 12(ivec2) VectorShuffle 68 68 0 1 - 70: 17(ptr) AccessChain 55(c3) 58 - 71: 11(int) Load 70 - 72: 12(ivec2) Load 61(o2) - 73: 36(ivec4) ImageFetch 67 69 Lod Offset 71 72 - 77: 74 Load 76(g_tTex2du4) - 78: 53(ivec3) Load 55(c3) - 79: 12(ivec2) VectorShuffle 78 78 0 1 - 80: 17(ptr) AccessChain 55(c3) 58 - 81: 11(int) Load 80 - 82: 12(ivec2) Load 61(o2) - 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82 - 87: 84 Load 86(g_tTex3df4) - 90: 36(ivec4) Load 89(c4) - 91: 53(ivec3) VectorShuffle 90 90 0 1 2 - 93: 17(ptr) AccessChain 89(c4) 92 - 94: 11(int) Load 93 - 96: 53(ivec3) Load 95(o3) - 97: 25(fvec4) ImageFetch 87 91 Lod Offset 94 96 - 101: 98 Load 100(g_tTex3di4) - 102: 36(ivec4) Load 89(c4) - 103: 53(ivec3) VectorShuffle 102 102 0 1 2 - 104: 17(ptr) AccessChain 89(c4) 92 - 105: 11(int) Load 104 - 106: 53(ivec3) Load 95(o3) - 107: 36(ivec4) ImageFetch 101 103 Lod Offset 105 106 - 111: 108 Load 110(g_tTex3du4) - 112: 36(ivec4) Load 89(c4) - 113: 53(ivec3) VectorShuffle 112 112 0 1 2 - 114: 17(ptr) AccessChain 89(c4) 92 - 115: 11(int) Load 114 - 116: 53(ivec3) Load 95(o3) - 117: 47(ivec4) ImageFetch 111 113 Lod Offset 115 116 - 125: 124(ptr) AccessChain 120(psout) 121 - Store 125 123 - 128: 127(ptr) AccessChain 120(psout) 126 - Store 128 122 - 131: 124(ptr) AccessChain 120(psout) 121 - 132: 25(fvec4) Load 131 - Store 130(Color) 132 - 135: 127(ptr) AccessChain 120(psout) 126 - 136: 6(float) Load 135 - Store 134(Depth) 136 + 22: 21(ptr) AccessChain 17 18 20 + 23: 11(int) Load 22 + 25: 21(ptr) AccessChain 17 18 24 + 26: 11(int) Load 25 + 28: 21(ptr) AccessChain 17 27 + 29: 11(int) Load 28 + 31: 30(fvec4) ImageFetch 10 23 Lod Offset 26 29 + 35: 32 Load 34(g_tTex1di4) + 36: 21(ptr) AccessChain 17 18 20 + 37: 11(int) Load 36 + 38: 21(ptr) AccessChain 17 18 24 + 39: 11(int) Load 38 + 40: 21(ptr) AccessChain 17 27 + 41: 11(int) Load 40 + 42: 14(ivec4) ImageFetch 35 37 Lod Offset 39 41 + 46: 43 Load 45(g_tTex1du4) + 47: 21(ptr) AccessChain 17 18 20 + 48: 11(int) Load 47 + 49: 21(ptr) AccessChain 17 18 24 + 50: 11(int) Load 49 + 51: 21(ptr) AccessChain 17 27 + 52: 11(int) Load 51 + 54: 53(ivec4) ImageFetch 46 48 Lod Offset 50 52 + 58: 55 Load 57(g_tTex2df4) + 61: 60(ptr) AccessChain 17 59 + 62: 13(ivec3) Load 61 + 63: 12(ivec2) VectorShuffle 62 62 0 1 + 65: 21(ptr) AccessChain 17 59 64 + 66: 11(int) Load 65 + 69: 68(ptr) AccessChain 17 67 + 70: 12(ivec2) Load 69 + 71: 30(fvec4) ImageFetch 58 63 Lod Offset 66 70 + 75: 72 Load 74(g_tTex2di4) + 76: 60(ptr) AccessChain 17 59 + 77: 13(ivec3) Load 76 + 78: 12(ivec2) VectorShuffle 77 77 0 1 + 79: 21(ptr) AccessChain 17 59 64 + 80: 11(int) Load 79 + 81: 68(ptr) AccessChain 17 67 + 82: 12(ivec2) Load 81 + 83: 14(ivec4) ImageFetch 75 78 Lod Offset 80 82 + 87: 84 Load 86(g_tTex2du4) + 88: 60(ptr) AccessChain 17 59 + 89: 13(ivec3) Load 88 + 90: 12(ivec2) VectorShuffle 89 89 0 1 + 91: 21(ptr) AccessChain 17 59 64 + 92: 11(int) Load 91 + 93: 68(ptr) AccessChain 17 67 + 94: 12(ivec2) Load 93 + 95: 53(ivec4) ImageFetch 87 90 Lod Offset 92 94 + 99: 96 Load 98(g_tTex3df4) + 102: 101(ptr) AccessChain 17 100 + 103: 14(ivec4) Load 102 + 104: 13(ivec3) VectorShuffle 103 103 0 1 2 + 106: 21(ptr) AccessChain 17 100 105 + 107: 11(int) Load 106 + 109: 60(ptr) AccessChain 17 108 + 110: 13(ivec3) Load 109 + 111: 30(fvec4) ImageFetch 99 104 Lod Offset 107 110 + 115: 112 Load 114(g_tTex3di4) + 116: 101(ptr) AccessChain 17 100 + 117: 14(ivec4) Load 116 + 118: 13(ivec3) VectorShuffle 117 117 0 1 2 + 119: 21(ptr) AccessChain 17 100 105 + 120: 11(int) Load 119 + 121: 60(ptr) AccessChain 17 108 + 122: 13(ivec3) Load 121 + 123: 14(ivec4) ImageFetch 115 118 Lod Offset 120 122 + 127: 124 Load 126(g_tTex3du4) + 128: 101(ptr) AccessChain 17 100 + 129: 14(ivec4) Load 128 + 130: 13(ivec3) VectorShuffle 129 129 0 1 2 + 131: 21(ptr) AccessChain 17 100 105 + 132: 11(int) Load 131 + 133: 60(ptr) AccessChain 17 108 + 134: 13(ivec3) Load 133 + 135: 53(ivec4) ImageFetch 127 130 Lod Offset 132 134 + 143: 142(ptr) AccessChain 138(psout) 139 + Store 143 141 + 145: 144(ptr) AccessChain 138(psout) 18 + Store 145 140 + 148: 142(ptr) AccessChain 138(psout) 139 + 149: 30(fvec4) Load 148 + Store 147(Color) 149 + 152: 144(ptr) AccessChain 138(psout) 18 + 153: 6(float) Load 152 + Store 151(Depth) 153 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out index d5f667165b0e59ae4df07f5dfd63a3bd3634c582..fb58eff35ad2a4e201a140f01dbac8cd88929fac 100644 --- a/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.load.offsetarray.dx10.frag.out @@ -2,55 +2,85 @@ hlsl.load.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetchOffset (global 4-component vector of float) +0:52 textureFetchOffset (temp 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index (temp int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) -0:52 'o1' (uniform int) -0:53 textureFetchOffset (global 4-component vector of int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset (temp 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index (temp int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) -0:53 'o1' (uniform int) -0:54 textureFetchOffset (global 4-component vector of uint) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset (temp 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index (temp int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) -0:54 'o1' (uniform int) -0:57 textureFetchOffset (global 4-component vector of float) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset (temp 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) @@ -59,14 +89,23 @@ gl_FragCoord origin is upper left 0:57 Constant: 0:57 2 (const int) 0:57 direct index (temp int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) -0:57 'o2' (uniform 2-component vector of int) -0:58 textureFetchOffset (global 4-component vector of int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset (temp 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) @@ -75,14 +114,23 @@ gl_FragCoord origin is upper left 0:58 Constant: 0:58 2 (const int) 0:58 direct index (temp int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) -0:58 'o2' (uniform 2-component vector of int) -0:59 textureFetchOffset (global 4-component vector of uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset (temp 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) @@ -91,10 +139,16 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 2 (const int) 0:59 direct index (temp int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) -0:59 'o2' (uniform 2-component vector of int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) 0:65 move second child to first child (temp 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -112,8 +166,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:? Sequence -0:? Sequence +0:68 Sequence +0:68 Sequence 0:68 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:68 Color: direct index for structure (temp 4-component vector of float) @@ -128,6 +182,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -150,16 +206,7 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) Linked fragment stage: @@ -168,55 +215,85 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:48 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:48 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:48 Function Parameters: 0:? Sequence -0:52 textureFetchOffset (global 4-component vector of float) +0:52 textureFetchOffset (temp 4-component vector of float) 0:52 'g_tTex1df4a' (uniform texture1DArray) 0:52 vector swizzle (temp 2-component vector of int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Sequence 0:52 Constant: 0:52 0 (const int) 0:52 Constant: 0:52 1 (const int) 0:52 direct index (temp int) -0:52 'c3' (uniform 3-component vector of int) +0:52 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 2 (const uint) 0:52 Constant: 0:52 2 (const int) -0:52 'o1' (uniform int) -0:53 textureFetchOffset (global 4-component vector of int) +0:52 o1: direct index for structure (layout(offset=48 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 4 (const uint) +0:53 textureFetchOffset (temp 4-component vector of int) 0:53 'g_tTex1di4a' (uniform itexture1DArray) 0:53 vector swizzle (temp 2-component vector of int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Sequence 0:53 Constant: 0:53 0 (const int) 0:53 Constant: 0:53 1 (const int) 0:53 direct index (temp int) -0:53 'c3' (uniform 3-component vector of int) +0:53 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 2 (const uint) 0:53 Constant: 0:53 2 (const int) -0:53 'o1' (uniform int) -0:54 textureFetchOffset (global 4-component vector of uint) +0:53 o1: direct index for structure (layout(offset=48 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 4 (const uint) +0:54 textureFetchOffset (temp 4-component vector of uint) 0:54 'g_tTex1du4a' (uniform utexture1DArray) 0:54 vector swizzle (temp 2-component vector of int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Sequence 0:54 Constant: 0:54 0 (const int) 0:54 Constant: 0:54 1 (const int) 0:54 direct index (temp int) -0:54 'c3' (uniform 3-component vector of int) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) 0:54 Constant: 0:54 2 (const int) -0:54 'o1' (uniform int) -0:57 textureFetchOffset (global 4-component vector of float) +0:54 o1: direct index for structure (layout(offset=48 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 4 (const uint) +0:57 textureFetchOffset (temp 4-component vector of float) 0:57 'g_tTex2df4a' (uniform texture2DArray) 0:57 vector swizzle (temp 3-component vector of int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Sequence 0:57 Constant: 0:57 0 (const int) @@ -225,14 +302,23 @@ gl_FragCoord origin is upper left 0:57 Constant: 0:57 2 (const int) 0:57 direct index (temp int) -0:57 'c4' (uniform 4-component vector of int) +0:57 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 3 (const uint) 0:57 Constant: 0:57 3 (const int) -0:57 'o2' (uniform 2-component vector of int) -0:58 textureFetchOffset (global 4-component vector of int) +0:57 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 5 (const uint) +0:58 textureFetchOffset (temp 4-component vector of int) 0:58 'g_tTex2di4a' (uniform itexture2DArray) 0:58 vector swizzle (temp 3-component vector of int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Sequence 0:58 Constant: 0:58 0 (const int) @@ -241,14 +327,23 @@ gl_FragCoord origin is upper left 0:58 Constant: 0:58 2 (const int) 0:58 direct index (temp int) -0:58 'c4' (uniform 4-component vector of int) +0:58 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 3 (const uint) 0:58 Constant: 0:58 3 (const int) -0:58 'o2' (uniform 2-component vector of int) -0:59 textureFetchOffset (global 4-component vector of uint) +0:58 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 5 (const uint) +0:59 textureFetchOffset (temp 4-component vector of uint) 0:59 'g_tTex2du4a' (uniform utexture2DArray) 0:59 vector swizzle (temp 3-component vector of int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Sequence 0:59 Constant: 0:59 0 (const int) @@ -257,10 +352,16 @@ gl_FragCoord origin is upper left 0:59 Constant: 0:59 2 (const int) 0:59 direct index (temp int) -0:59 'c4' (uniform 4-component vector of int) +0:59 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 3 (const uint) 0:59 Constant: 0:59 3 (const int) -0:59 'o2' (uniform 2-component vector of int) +0:59 o2: direct index for structure (layout(offset=56 ) uniform 2-component vector of int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:59 Constant: +0:59 5 (const uint) 0:65 move second child to first child (temp 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) 0:65 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) @@ -278,8 +379,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Constant: 0:66 1.000000 -0:? Sequence -0:? Sequence +0:68 Sequence +0:68 Sequence 0:68 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:68 Color: direct index for structure (temp 4-component vector of float) @@ -294,6 +395,8 @@ gl_FragCoord origin is upper left 0:68 1 (const int) 0:68 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -316,20 +419,11 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'c1' (uniform int) -0:? 'c2' (uniform 2-component vector of int) -0:? 'c3' (uniform 3-component vector of int) -0:? 'c4' (uniform 4-component vector of int) -0:? 'o1' (uniform int) -0:? 'o2' (uniform 2-component vector of int) -0:? 'o3' (uniform 3-component vector of int) -0:? 'o4' (uniform 4-component vector of int) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 167 Capability Shader Capability ImageGatherExtended @@ -337,71 +431,83 @@ gl_FragCoord origin is upper left Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 96 100 + EntryPoint Fragment 4 "main" 111 115 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "g_tTex1df4a" - Name 14 "c3" - Name 23 "o1" - Name 29 "g_tTex1di4a" - Name 40 "g_tTex1du4a" - Name 51 "g_tTex2df4a" - Name 54 "c4" - Name 61 "o2" - Name 66 "g_tTex2di4a" - Name 76 "g_tTex2du4a" - Name 84 "PS_OUTPUT" - MemberName 84(PS_OUTPUT) 0 "Color" - MemberName 84(PS_OUTPUT) 1 "Depth" - Name 86 "psout" - Name 96 "Color" - Name 100 "Depth" - Name 106 "g_sSamp" - Name 109 "g_tTex1df4" - Name 112 "g_tTex1di4" - Name 115 "g_tTex1du4" - Name 118 "g_tTex2df4" - Name 121 "g_tTex2di4" - Name 124 "g_tTex2du4" - Name 127 "g_tTex3df4" - Name 130 "g_tTex3di4" - Name 133 "g_tTex3du4" - Name 136 "g_tTexcdf4" - Name 139 "g_tTexcdi4" - Name 142 "g_tTexcdu4" - Name 145 "g_tTexcdf4a" - Name 148 "g_tTexcdi4a" - Name 151 "g_tTexcdu4a" - Name 152 "c1" - Name 153 "c2" - Name 154 "o3" - Name 155 "o4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 35 "g_tTex1di4a" + Name 47 "g_tTex1du4a" + Name 60 "g_tTex2df4a" + Name 77 "g_tTex2di4a" + Name 89 "g_tTex2du4a" + Name 99 "PS_OUTPUT" + MemberName 99(PS_OUTPUT) 0 "Color" + MemberName 99(PS_OUTPUT) 1 "Depth" + Name 101 "psout" + Name 111 "Color" + Name 115 "Depth" + Name 121 "g_sSamp" + Name 124 "g_tTex1df4" + Name 127 "g_tTex1di4" + Name 130 "g_tTex1du4" + Name 133 "g_tTex2df4" + Name 136 "g_tTex2di4" + Name 139 "g_tTex2du4" + Name 142 "g_tTex3df4" + Name 145 "g_tTex3di4" + Name 148 "g_tTex3du4" + Name 151 "g_tTexcdf4" + Name 154 "g_tTexcdi4" + Name 157 "g_tTexcdu4" + Name 160 "g_tTexcdf4a" + Name 163 "g_tTexcdi4a" + Name 166 "g_tTexcdu4a" Decorate 9(g_tTex1df4a) DescriptorSet 0 - Decorate 29(g_tTex1di4a) DescriptorSet 0 - Decorate 40(g_tTex1du4a) DescriptorSet 0 - Decorate 51(g_tTex2df4a) DescriptorSet 0 - Decorate 66(g_tTex2di4a) DescriptorSet 0 - Decorate 76(g_tTex2du4a) DescriptorSet 0 - Decorate 96(Color) Location 0 - Decorate 100(Depth) BuiltIn FragDepth - Decorate 106(g_sSamp) DescriptorSet 0 - Decorate 106(g_sSamp) Binding 0 - Decorate 109(g_tTex1df4) DescriptorSet 0 - Decorate 109(g_tTex1df4) Binding 0 - Decorate 112(g_tTex1di4) DescriptorSet 0 - Decorate 115(g_tTex1du4) DescriptorSet 0 - Decorate 118(g_tTex2df4) DescriptorSet 0 - Decorate 121(g_tTex2di4) DescriptorSet 0 - Decorate 124(g_tTex2du4) DescriptorSet 0 - Decorate 127(g_tTex3df4) DescriptorSet 0 - Decorate 130(g_tTex3di4) DescriptorSet 0 - Decorate 133(g_tTex3du4) DescriptorSet 0 - Decorate 136(g_tTexcdf4) DescriptorSet 0 - Decorate 139(g_tTexcdi4) DescriptorSet 0 - Decorate 142(g_tTexcdu4) DescriptorSet 0 - Decorate 145(g_tTexcdf4a) DescriptorSet 0 - Decorate 148(g_tTexcdi4a) DescriptorSet 0 - Decorate 151(g_tTexcdu4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 35(g_tTex1di4a) DescriptorSet 0 + Decorate 47(g_tTex1du4a) DescriptorSet 0 + Decorate 60(g_tTex2df4a) DescriptorSet 0 + Decorate 77(g_tTex2di4a) DescriptorSet 0 + Decorate 89(g_tTex2du4a) DescriptorSet 0 + Decorate 111(Color) Location 0 + Decorate 115(Depth) BuiltIn FragDepth + Decorate 121(g_sSamp) DescriptorSet 0 + Decorate 121(g_sSamp) Binding 0 + Decorate 124(g_tTex1df4) DescriptorSet 0 + Decorate 124(g_tTex1df4) Binding 0 + Decorate 127(g_tTex1di4) DescriptorSet 0 + Decorate 130(g_tTex1du4) DescriptorSet 0 + Decorate 133(g_tTex2df4) DescriptorSet 0 + Decorate 136(g_tTex2di4) DescriptorSet 0 + Decorate 139(g_tTex2du4) DescriptorSet 0 + Decorate 142(g_tTex3df4) DescriptorSet 0 + Decorate 145(g_tTex3di4) DescriptorSet 0 + Decorate 148(g_tTex3du4) DescriptorSet 0 + Decorate 151(g_tTexcdf4) DescriptorSet 0 + Decorate 154(g_tTexcdi4) DescriptorSet 0 + Decorate 157(g_tTexcdu4) DescriptorSet 0 + Decorate 160(g_tTexcdf4a) DescriptorSet 0 + Decorate 163(g_tTexcdi4a) DescriptorSet 0 + Decorate 166(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -409,155 +515,166 @@ gl_FragCoord origin is upper left 8: TypePointer UniformConstant 7 9(g_tTex1df4a): 8(ptr) Variable UniformConstant 11: TypeInt 32 1 - 12: TypeVector 11(int) 3 - 13: TypePointer UniformConstant 12(ivec3) - 14(c3): 13(ptr) Variable UniformConstant - 15: TypeVector 11(int) 2 - 18: TypeInt 32 0 - 19: 18(int) Constant 2 - 20: TypePointer UniformConstant 11(int) - 23(o1): 20(ptr) Variable UniformConstant - 25: TypeVector 6(float) 4 - 27: TypeImage 11(int) 1D array sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4a): 28(ptr) Variable UniformConstant - 36: TypeVector 11(int) 4 - 38: TypeImage 18(int) 1D array sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4a): 39(ptr) Variable UniformConstant - 47: TypeVector 18(int) 4 - 49: TypeImage 6(float) 2D array sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4a): 50(ptr) Variable UniformConstant - 53: TypePointer UniformConstant 36(ivec4) - 54(c4): 53(ptr) Variable UniformConstant - 57: 18(int) Constant 3 - 60: TypePointer UniformConstant 15(ivec2) - 61(o2): 60(ptr) Variable UniformConstant - 64: TypeImage 11(int) 2D array sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4a): 65(ptr) Variable UniformConstant - 74: TypeImage 18(int) 2D array sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2du4a): 75(ptr) Variable UniformConstant - 84(PS_OUTPUT): TypeStruct 25(fvec4) 6(float) - 85: TypePointer Function 84(PS_OUTPUT) - 87: 11(int) Constant 0 - 88: 6(float) Constant 1065353216 - 89: 25(fvec4) ConstantComposite 88 88 88 88 - 90: TypePointer Function 25(fvec4) - 92: 11(int) Constant 1 - 93: TypePointer Function 6(float) - 95: TypePointer Output 25(fvec4) - 96(Color): 95(ptr) Variable Output - 99: TypePointer Output 6(float) - 100(Depth): 99(ptr) Variable Output - 104: TypeSampler - 105: TypePointer UniformConstant 104 - 106(g_sSamp): 105(ptr) Variable UniformConstant - 107: TypeImage 6(float) 1D sampled format:Unknown - 108: TypePointer UniformConstant 107 - 109(g_tTex1df4): 108(ptr) Variable UniformConstant - 110: TypeImage 11(int) 1D sampled format:Unknown - 111: TypePointer UniformConstant 110 - 112(g_tTex1di4): 111(ptr) Variable UniformConstant - 113: TypeImage 18(int) 1D sampled format:Unknown - 114: TypePointer UniformConstant 113 - 115(g_tTex1du4): 114(ptr) Variable UniformConstant - 116: TypeImage 6(float) 2D sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTex2df4): 117(ptr) Variable UniformConstant - 119: TypeImage 11(int) 2D sampled format:Unknown + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 2 + 19: TypePointer Uniform 13(ivec3) + 23: TypeInt 32 0 + 24: 23(int) Constant 2 + 25: TypePointer Uniform 11(int) + 28: 11(int) Constant 4 + 31: TypeVector 6(float) 4 + 33: TypeImage 11(int) 1D array sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4a): 34(ptr) Variable UniformConstant + 45: TypeImage 23(int) 1D array sampled format:Unknown + 46: TypePointer UniformConstant 45 + 47(g_tTex1du4a): 46(ptr) Variable UniformConstant + 56: TypeVector 23(int) 4 + 58: TypeImage 6(float) 2D array sampled format:Unknown + 59: TypePointer UniformConstant 58 + 60(g_tTex2df4a): 59(ptr) Variable UniformConstant + 62: 11(int) Constant 3 + 63: TypePointer Uniform 14(ivec4) + 67: 23(int) Constant 3 + 70: 11(int) Constant 5 + 71: TypePointer Uniform 12(ivec2) + 75: TypeImage 11(int) 2D array sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4a): 76(ptr) Variable UniformConstant + 87: TypeImage 23(int) 2D array sampled format:Unknown + 88: TypePointer UniformConstant 87 + 89(g_tTex2du4a): 88(ptr) Variable UniformConstant + 99(PS_OUTPUT): TypeStruct 31(fvec4) 6(float) + 100: TypePointer Function 99(PS_OUTPUT) + 102: 11(int) Constant 0 + 103: 6(float) Constant 1065353216 + 104: 31(fvec4) ConstantComposite 103 103 103 103 + 105: TypePointer Function 31(fvec4) + 107: 11(int) Constant 1 + 108: TypePointer Function 6(float) + 110: TypePointer Output 31(fvec4) + 111(Color): 110(ptr) Variable Output + 114: TypePointer Output 6(float) + 115(Depth): 114(ptr) Variable Output + 119: TypeSampler 120: TypePointer UniformConstant 119 - 121(g_tTex2di4): 120(ptr) Variable UniformConstant - 122: TypeImage 18(int) 2D sampled format:Unknown + 121(g_sSamp): 120(ptr) Variable UniformConstant + 122: TypeImage 6(float) 1D sampled format:Unknown 123: TypePointer UniformConstant 122 - 124(g_tTex2du4): 123(ptr) Variable UniformConstant - 125: TypeImage 6(float) 3D sampled format:Unknown + 124(g_tTex1df4): 123(ptr) Variable UniformConstant + 125: TypeImage 11(int) 1D sampled format:Unknown 126: TypePointer UniformConstant 125 - 127(g_tTex3df4): 126(ptr) Variable UniformConstant - 128: TypeImage 11(int) 3D sampled format:Unknown + 127(g_tTex1di4): 126(ptr) Variable UniformConstant + 128: TypeImage 23(int) 1D sampled format:Unknown 129: TypePointer UniformConstant 128 - 130(g_tTex3di4): 129(ptr) Variable UniformConstant - 131: TypeImage 18(int) 3D sampled format:Unknown + 130(g_tTex1du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) 2D sampled format:Unknown 132: TypePointer UniformConstant 131 - 133(g_tTex3du4): 132(ptr) Variable UniformConstant - 134: TypeImage 6(float) Cube sampled format:Unknown + 133(g_tTex2df4): 132(ptr) Variable UniformConstant + 134: TypeImage 11(int) 2D sampled format:Unknown 135: TypePointer UniformConstant 134 - 136(g_tTexcdf4): 135(ptr) Variable UniformConstant - 137: TypeImage 11(int) Cube sampled format:Unknown + 136(g_tTex2di4): 135(ptr) Variable UniformConstant + 137: TypeImage 23(int) 2D sampled format:Unknown 138: TypePointer UniformConstant 137 - 139(g_tTexcdi4): 138(ptr) Variable UniformConstant - 140: TypeImage 18(int) Cube sampled format:Unknown + 139(g_tTex2du4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 3D sampled format:Unknown 141: TypePointer UniformConstant 140 - 142(g_tTexcdu4): 141(ptr) Variable UniformConstant - 143: TypeImage 6(float) Cube array sampled format:Unknown + 142(g_tTex3df4): 141(ptr) Variable UniformConstant + 143: TypeImage 11(int) 3D sampled format:Unknown 144: TypePointer UniformConstant 143 -145(g_tTexcdf4a): 144(ptr) Variable UniformConstant - 146: TypeImage 11(int) Cube array sampled format:Unknown + 145(g_tTex3di4): 144(ptr) Variable UniformConstant + 146: TypeImage 23(int) 3D sampled format:Unknown 147: TypePointer UniformConstant 146 -148(g_tTexcdi4a): 147(ptr) Variable UniformConstant - 149: TypeImage 18(int) Cube array sampled format:Unknown + 148(g_tTex3du4): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) Cube sampled format:Unknown 150: TypePointer UniformConstant 149 -151(g_tTexcdu4a): 150(ptr) Variable UniformConstant - 152(c1): 20(ptr) Variable UniformConstant - 153(c2): 60(ptr) Variable UniformConstant - 154(o3): 13(ptr) Variable UniformConstant - 155(o4): 53(ptr) Variable UniformConstant + 151(g_tTexcdf4): 150(ptr) Variable UniformConstant + 152: TypeImage 11(int) Cube sampled format:Unknown + 153: TypePointer UniformConstant 152 + 154(g_tTexcdi4): 153(ptr) Variable UniformConstant + 155: TypeImage 23(int) Cube sampled format:Unknown + 156: TypePointer UniformConstant 155 + 157(g_tTexcdu4): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdf4a): 159(ptr) Variable UniformConstant + 161: TypeImage 11(int) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdi4a): 162(ptr) Variable UniformConstant + 164: TypeImage 23(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdu4a): 165(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label - 86(psout): 85(ptr) Variable Function + 101(psout): 100(ptr) Variable Function 10: 7 Load 9(g_tTex1df4a) - 16: 12(ivec3) Load 14(c3) - 17: 15(ivec2) VectorShuffle 16 16 0 1 - 21: 20(ptr) AccessChain 14(c3) 19 - 22: 11(int) Load 21 - 24: 11(int) Load 23(o1) - 26: 25(fvec4) ImageFetch 10 17 Lod Offset 22 24 - 30: 27 Load 29(g_tTex1di4a) - 31: 12(ivec3) Load 14(c3) - 32: 15(ivec2) VectorShuffle 31 31 0 1 - 33: 20(ptr) AccessChain 14(c3) 19 - 34: 11(int) Load 33 - 35: 11(int) Load 23(o1) - 37: 36(ivec4) ImageFetch 30 32 Lod Offset 34 35 - 41: 38 Load 40(g_tTex1du4a) - 42: 12(ivec3) Load 14(c3) - 43: 15(ivec2) VectorShuffle 42 42 0 1 - 44: 20(ptr) AccessChain 14(c3) 19 - 45: 11(int) Load 44 - 46: 11(int) Load 23(o1) - 48: 47(ivec4) ImageFetch 41 43 Lod Offset 45 46 - 52: 49 Load 51(g_tTex2df4a) - 55: 36(ivec4) Load 54(c4) - 56: 12(ivec3) VectorShuffle 55 55 0 1 2 - 58: 20(ptr) AccessChain 54(c4) 57 - 59: 11(int) Load 58 - 62: 15(ivec2) Load 61(o2) - 63: 25(fvec4) ImageFetch 52 56 Lod Offset 59 62 - 67: 64 Load 66(g_tTex2di4a) - 68: 36(ivec4) Load 54(c4) - 69: 12(ivec3) VectorShuffle 68 68 0 1 2 - 70: 20(ptr) AccessChain 54(c4) 57 - 71: 11(int) Load 70 - 72: 15(ivec2) Load 61(o2) - 73: 36(ivec4) ImageFetch 67 69 Lod Offset 71 72 - 77: 74 Load 76(g_tTex2du4a) - 78: 36(ivec4) Load 54(c4) - 79: 12(ivec3) VectorShuffle 78 78 0 1 2 - 80: 20(ptr) AccessChain 54(c4) 57 - 81: 11(int) Load 80 - 82: 15(ivec2) Load 61(o2) - 83: 47(ivec4) ImageFetch 77 79 Lod Offset 81 82 - 91: 90(ptr) AccessChain 86(psout) 87 - Store 91 89 - 94: 93(ptr) AccessChain 86(psout) 92 - Store 94 88 - 97: 90(ptr) AccessChain 86(psout) 87 - 98: 25(fvec4) Load 97 - Store 96(Color) 98 - 101: 93(ptr) AccessChain 86(psout) 92 - 102: 6(float) Load 101 - Store 100(Depth) 102 + 20: 19(ptr) AccessChain 17 18 + 21: 13(ivec3) Load 20 + 22: 12(ivec2) VectorShuffle 21 21 0 1 + 26: 25(ptr) AccessChain 17 18 24 + 27: 11(int) Load 26 + 29: 25(ptr) AccessChain 17 28 + 30: 11(int) Load 29 + 32: 31(fvec4) ImageFetch 10 22 Lod Offset 27 30 + 36: 33 Load 35(g_tTex1di4a) + 37: 19(ptr) AccessChain 17 18 + 38: 13(ivec3) Load 37 + 39: 12(ivec2) VectorShuffle 38 38 0 1 + 40: 25(ptr) AccessChain 17 18 24 + 41: 11(int) Load 40 + 42: 25(ptr) AccessChain 17 28 + 43: 11(int) Load 42 + 44: 14(ivec4) ImageFetch 36 39 Lod Offset 41 43 + 48: 45 Load 47(g_tTex1du4a) + 49: 19(ptr) AccessChain 17 18 + 50: 13(ivec3) Load 49 + 51: 12(ivec2) VectorShuffle 50 50 0 1 + 52: 25(ptr) AccessChain 17 18 24 + 53: 11(int) Load 52 + 54: 25(ptr) AccessChain 17 28 + 55: 11(int) Load 54 + 57: 56(ivec4) ImageFetch 48 51 Lod Offset 53 55 + 61: 58 Load 60(g_tTex2df4a) + 64: 63(ptr) AccessChain 17 62 + 65: 14(ivec4) Load 64 + 66: 13(ivec3) VectorShuffle 65 65 0 1 2 + 68: 25(ptr) AccessChain 17 62 67 + 69: 11(int) Load 68 + 72: 71(ptr) AccessChain 17 70 + 73: 12(ivec2) Load 72 + 74: 31(fvec4) ImageFetch 61 66 Lod Offset 69 73 + 78: 75 Load 77(g_tTex2di4a) + 79: 63(ptr) AccessChain 17 62 + 80: 14(ivec4) Load 79 + 81: 13(ivec3) VectorShuffle 80 80 0 1 2 + 82: 25(ptr) AccessChain 17 62 67 + 83: 11(int) Load 82 + 84: 71(ptr) AccessChain 17 70 + 85: 12(ivec2) Load 84 + 86: 14(ivec4) ImageFetch 78 81 Lod Offset 83 85 + 90: 87 Load 89(g_tTex2du4a) + 91: 63(ptr) AccessChain 17 62 + 92: 14(ivec4) Load 91 + 93: 13(ivec3) VectorShuffle 92 92 0 1 2 + 94: 25(ptr) AccessChain 17 62 67 + 95: 11(int) Load 94 + 96: 71(ptr) AccessChain 17 70 + 97: 12(ivec2) Load 96 + 98: 56(ivec4) ImageFetch 90 93 Lod Offset 95 97 + 106: 105(ptr) AccessChain 101(psout) 102 + Store 106 104 + 109: 108(ptr) AccessChain 101(psout) 107 + Store 109 103 + 112: 105(ptr) AccessChain 101(psout) 102 + 113: 31(fvec4) Load 112 + Store 111(Color) 113 + 116: 108(ptr) AccessChain 101(psout) 107 + 117: 6(float) Load 116 + Store 115(Depth) 117 Return FunctionEnd diff --git a/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..e9cc3940b4d04780b4c4199a9f96b7da550d9670 --- /dev/null +++ b/Test/baseResults/hlsl.load.rwbuffer.dx10.frag.out @@ -0,0 +1,200 @@ +hlsl.load.rwbuffer.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:22 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:22 Function Parameters: +0:? Sequence +0:25 imageLoad (temp 4-component vector of float) +0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:25 c1: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:25 Constant: +0:25 0 (const uint) +0:26 imageLoad (temp 4-component vector of uint) +0:26 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:26 c1: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:26 Constant: +0:26 0 (const uint) +0:27 imageLoad (temp 4-component vector of int) +0:27 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:27 c1: direct index for structure (layout(offset=0 ) uniform int) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child (temp 4-component vector of float) +0:29 Color: direct index for structure (temp 4-component vector of float) +0:29 'psout' (temp structure{temp 4-component vector of float Color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:31 Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:31 Color: direct index for structure (temp 4-component vector of float) +0:31 'psout' (temp structure{temp 4-component vector of float Color}) +0:31 Constant: +0:31 0 (const int) +0:31 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:22 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:22 Function Parameters: +0:? Sequence +0:25 imageLoad (temp 4-component vector of float) +0:25 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:25 c1: direct index for structure (layout(offset=0 ) uniform int) +0:25 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:25 Constant: +0:25 0 (const uint) +0:26 imageLoad (temp 4-component vector of uint) +0:26 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:26 c1: direct index for structure (layout(offset=0 ) uniform int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:26 Constant: +0:26 0 (const uint) +0:27 imageLoad (temp 4-component vector of int) +0:27 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:27 c1: direct index for structure (layout(offset=0 ) uniform int) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:27 Constant: +0:27 0 (const uint) +0:29 move second child to first child (temp 4-component vector of float) +0:29 Color: direct index for structure (temp 4-component vector of float) +0:29 'psout' (temp structure{temp 4-component vector of float Color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:31 Sequence +0:31 Sequence +0:31 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:31 Color: direct index for structure (temp 4-component vector of float) +0:31 'psout' (temp structure{temp 4-component vector of float Color}) +0:31 Constant: +0:31 0 (const int) +0:31 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tBuffF' (layout(rgba32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(rgba32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(rgba32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 52 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 48 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tBuffF" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 27 "g_tBuffU" + Name 35 "g_tBuffI" + Name 40 "PS_OUTPUT" + MemberName 40(PS_OUTPUT) 0 "Color" + Name 42 "psout" + Name 48 "Color" + Decorate 9(g_tBuffF) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 27(g_tBuffU) DescriptorSet 0 + Decorate 35(g_tBuffI) DescriptorSet 0 + Decorate 48(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) Buffer nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tBuffF): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 0 + 19: TypePointer Uniform 11(int) + 22: TypeVector 6(float) 4 + 24: TypeInt 32 0 + 25: TypeImage 24(int) Buffer nonsampled format:Rgba32ui + 26: TypePointer UniformConstant 25 + 27(g_tBuffU): 26(ptr) Variable UniformConstant + 31: TypeVector 24(int) 4 + 33: TypeImage 11(int) Buffer nonsampled format:Rgba32i + 34: TypePointer UniformConstant 33 + 35(g_tBuffI): 34(ptr) Variable UniformConstant + 40(PS_OUTPUT): TypeStruct 22(fvec4) + 41: TypePointer Function 40(PS_OUTPUT) + 43: 6(float) Constant 1065353216 + 44: 22(fvec4) ConstantComposite 43 43 43 43 + 45: TypePointer Function 22(fvec4) + 47: TypePointer Output 22(fvec4) + 48(Color): 47(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 42(psout): 41(ptr) Variable Function + 10: 7 Load 9(g_tBuffF) + 20: 19(ptr) AccessChain 17 18 + 21: 11(int) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 28: 25 Load 27(g_tBuffU) + 29: 19(ptr) AccessChain 17 18 + 30: 11(int) Load 29 + 32: 31(ivec4) ImageRead 28 30 + 36: 33 Load 35(g_tBuffI) + 37: 19(ptr) AccessChain 17 18 + 38: 11(int) Load 37 + 39: 14(ivec4) ImageRead 36 38 + 46: 45(ptr) AccessChain 42(psout) 18 + Store 46 44 + 49: 45(ptr) AccessChain 42(psout) 18 + 50: 22(fvec4) Load 49 + Store 48(Color) 50 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..a81ddf57de868380dd2996f68e596090d2e24cca --- /dev/null +++ b/Test/baseResults/hlsl.load.rwtexture.array.dx10.frag.out @@ -0,0 +1,383 @@ +hlsl.load.rwtexture.array.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (temp 4-component vector of float) +0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 1 (const uint) +0:45 imageLoad (temp 4-component vector of int) +0:45 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 1 (const uint) +0:46 imageLoad (temp 4-component vector of uint) +0:46 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:49 imageLoad (temp 4-component vector of float) +0:49 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:50 imageLoad (temp 4-component vector of int) +0:50 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:50 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 2 (const uint) +0:51 imageLoad (temp 4-component vector of uint) +0:51 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:51 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 2 (const uint) +0:53 move second child to first child (temp 4-component vector of float) +0:53 Color: direct index for structure (temp 4-component vector of float) +0:53 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:54 move second child to first child (temp float) +0:54 Depth: direct index for structure (temp float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 1.000000 +0:56 Sequence +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:56 Depth: direct index for structure (temp float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 1 (const int) +0:56 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (temp 4-component vector of float) +0:44 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:44 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 1 (const uint) +0:45 imageLoad (temp 4-component vector of int) +0:45 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:45 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 1 (const uint) +0:46 imageLoad (temp 4-component vector of uint) +0:46 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:46 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 1 (const uint) +0:49 imageLoad (temp 4-component vector of float) +0:49 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:49 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 2 (const uint) +0:50 imageLoad (temp 4-component vector of int) +0:50 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:50 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 2 (const uint) +0:51 imageLoad (temp 4-component vector of uint) +0:51 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:51 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 2 (const uint) +0:53 move second child to first child (temp 4-component vector of float) +0:53 Color: direct index for structure (temp 4-component vector of float) +0:53 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Constant: +0:53 0 (const int) +0:53 Constant: +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:53 1.000000 +0:54 move second child to first child (temp float) +0:54 Depth: direct index for structure (temp float) +0:54 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:54 Constant: +0:54 1 (const int) +0:54 Constant: +0:54 1.000000 +0:56 Sequence +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:56 Color: direct index for structure (temp 4-component vector of float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 0 (const int) +0:56 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:56 Depth: direct index for structure (temp float) +0:56 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:56 Constant: +0:56 1 (const int) +0:56 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 112 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 78 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4a" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 26 "g_tTex1di4a" + Name 34 "g_tTex1du4a" + Name 42 "g_tTex2df4a" + Name 51 "g_tTex2di4a" + Name 58 "g_tTex2du4a" + Name 63 "PS_OUTPUT" + MemberName 63(PS_OUTPUT) 0 "Color" + MemberName 63(PS_OUTPUT) 1 "Depth" + Name 65 "psout" + Name 74 "Color" + Name 78 "Depth" + Name 84 "g_sSamp" + Name 87 "g_tTex1df4" + Name 90 "g_tTex1di4" + Name 93 "g_tTex1du4" + Name 96 "g_tTex2df4" + Name 99 "g_tTex2di4" + Name 102 "g_tTex2du4" + Name 105 "g_tTex3df4" + Name 108 "g_tTex3di4" + Name 111 "g_tTex3du4" + Decorate 9(g_tTex1df4a) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 26(g_tTex1di4a) DescriptorSet 0 + Decorate 34(g_tTex1du4a) DescriptorSet 0 + Decorate 42(g_tTex2df4a) DescriptorSet 0 + Decorate 51(g_tTex2di4a) DescriptorSet 0 + Decorate 58(g_tTex2du4a) DescriptorSet 0 + Decorate 74(Color) Location 0 + Decorate 78(Depth) BuiltIn FragDepth + Decorate 84(g_sSamp) DescriptorSet 0 + Decorate 84(g_sSamp) Binding 0 + Decorate 87(g_tTex1df4) DescriptorSet 0 + Decorate 87(g_tTex1df4) Binding 0 + Decorate 90(g_tTex1di4) DescriptorSet 0 + Decorate 93(g_tTex1du4) DescriptorSet 0 + Decorate 96(g_tTex2df4) DescriptorSet 0 + Decorate 99(g_tTex2di4) DescriptorSet 0 + Decorate 102(g_tTex2du4) DescriptorSet 0 + Decorate 105(g_tTex3df4) DescriptorSet 0 + Decorate 108(g_tTex3di4) DescriptorSet 0 + Decorate 111(g_tTex3du4) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4a): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 1 + 19: TypePointer Uniform 12(ivec2) + 22: TypeVector 6(float) 4 + 24: TypeImage 11(int) 1D array nonsampled format:Rgba32i + 25: TypePointer UniformConstant 24 + 26(g_tTex1di4a): 25(ptr) Variable UniformConstant + 31: TypeInt 32 0 + 32: TypeImage 31(int) 1D array nonsampled format:Rgba32ui + 33: TypePointer UniformConstant 32 + 34(g_tTex1du4a): 33(ptr) Variable UniformConstant + 38: TypeVector 31(int) 4 + 40: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 41: TypePointer UniformConstant 40 + 42(g_tTex2df4a): 41(ptr) Variable UniformConstant + 44: 11(int) Constant 2 + 45: TypePointer Uniform 13(ivec3) + 49: TypeImage 11(int) 2D array nonsampled format:Rgba32i + 50: TypePointer UniformConstant 49 + 51(g_tTex2di4a): 50(ptr) Variable UniformConstant + 56: TypeImage 31(int) 2D array nonsampled format:Rgba32ui + 57: TypePointer UniformConstant 56 + 58(g_tTex2du4a): 57(ptr) Variable UniformConstant + 63(PS_OUTPUT): TypeStruct 22(fvec4) 6(float) + 64: TypePointer Function 63(PS_OUTPUT) + 66: 11(int) Constant 0 + 67: 6(float) Constant 1065353216 + 68: 22(fvec4) ConstantComposite 67 67 67 67 + 69: TypePointer Function 22(fvec4) + 71: TypePointer Function 6(float) + 73: TypePointer Output 22(fvec4) + 74(Color): 73(ptr) Variable Output + 77: TypePointer Output 6(float) + 78(Depth): 77(ptr) Variable Output + 82: TypeSampler + 83: TypePointer UniformConstant 82 + 84(g_sSamp): 83(ptr) Variable UniformConstant + 85: TypeImage 6(float) 1D nonsampled format:Rgba32f + 86: TypePointer UniformConstant 85 + 87(g_tTex1df4): 86(ptr) Variable UniformConstant + 88: TypeImage 11(int) 1D nonsampled format:Rgba32i + 89: TypePointer UniformConstant 88 + 90(g_tTex1di4): 89(ptr) Variable UniformConstant + 91: TypeImage 31(int) 1D nonsampled format:Rgba32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du4): 92(ptr) Variable UniformConstant + 94: TypeImage 6(float) 2D nonsampled format:Rgba32f + 95: TypePointer UniformConstant 94 + 96(g_tTex2df4): 95(ptr) Variable UniformConstant + 97: TypeImage 11(int) 2D nonsampled format:Rgba32i + 98: TypePointer UniformConstant 97 + 99(g_tTex2di4): 98(ptr) Variable UniformConstant + 100: TypeImage 31(int) 2D nonsampled format:Rgba32ui + 101: TypePointer UniformConstant 100 + 102(g_tTex2du4): 101(ptr) Variable UniformConstant + 103: TypeImage 6(float) 3D nonsampled format:Rgba32f + 104: TypePointer UniformConstant 103 + 105(g_tTex3df4): 104(ptr) Variable UniformConstant + 106: TypeImage 11(int) 3D nonsampled format:Rgba32i + 107: TypePointer UniformConstant 106 + 108(g_tTex3di4): 107(ptr) Variable UniformConstant + 109: TypeImage 31(int) 3D nonsampled format:Rgba32ui + 110: TypePointer UniformConstant 109 + 111(g_tTex3du4): 110(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 65(psout): 64(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4a) + 20: 19(ptr) AccessChain 17 18 + 21: 12(ivec2) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 27: 24 Load 26(g_tTex1di4a) + 28: 19(ptr) AccessChain 17 18 + 29: 12(ivec2) Load 28 + 30: 14(ivec4) ImageRead 27 29 + 35: 32 Load 34(g_tTex1du4a) + 36: 19(ptr) AccessChain 17 18 + 37: 12(ivec2) Load 36 + 39: 38(ivec4) ImageRead 35 37 + 43: 40 Load 42(g_tTex2df4a) + 46: 45(ptr) AccessChain 17 44 + 47: 13(ivec3) Load 46 + 48: 22(fvec4) ImageRead 43 47 + 52: 49 Load 51(g_tTex2di4a) + 53: 45(ptr) AccessChain 17 44 + 54: 13(ivec3) Load 53 + 55: 14(ivec4) ImageRead 52 54 + 59: 56 Load 58(g_tTex2du4a) + 60: 45(ptr) AccessChain 17 44 + 61: 13(ivec3) Load 60 + 62: 38(ivec4) ImageRead 59 61 + 70: 69(ptr) AccessChain 65(psout) 66 + Store 70 68 + 72: 71(ptr) AccessChain 65(psout) 18 + Store 72 67 + 75: 69(ptr) AccessChain 65(psout) 66 + 76: 22(fvec4) Load 75 + Store 74(Color) 76 + 79: 71(ptr) AccessChain 65(psout) 18 + 80: 6(float) Load 79 + Store 78(Depth) 80 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..b5435bac4b0ec318c3e11d7c233a295cbf32642a --- /dev/null +++ b/Test/baseResults/hlsl.load.rwtexture.dx10.frag.out @@ -0,0 +1,432 @@ +hlsl.load.rwtexture.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (temp 4-component vector of float) +0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:44 c1: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 0 (const uint) +0:45 imageLoad (temp 4-component vector of int) +0:45 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:45 c1: direct index for structure (layout(offset=0 ) uniform int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 0 (const uint) +0:46 imageLoad (temp 4-component vector of uint) +0:46 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:46 c1: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 0 (const uint) +0:49 imageLoad (temp 4-component vector of float) +0:49 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 1 (const uint) +0:50 imageLoad (temp 4-component vector of int) +0:50 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:51 imageLoad (temp 4-component vector of uint) +0:51 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:54 imageLoad (temp 4-component vector of float) +0:54 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:55 imageLoad (temp 4-component vector of int) +0:55 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:55 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 Constant: +0:55 2 (const uint) +0:56 imageLoad (temp 4-component vector of uint) +0:56 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:58 move second child to first child (temp 4-component vector of float) +0:58 Color: direct index for structure (temp 4-component vector of float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:59 move second child to first child (temp float) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 1.000000 +0:61 Sequence +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:61 Color: direct index for structure (temp 4-component vector of float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 0 (const int) +0:61 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:61 Depth: direct index for structure (temp float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 1 (const int) +0:61 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:40 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:40 Function Parameters: +0:? Sequence +0:44 imageLoad (temp 4-component vector of float) +0:44 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:44 c1: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:44 Constant: +0:44 0 (const uint) +0:45 imageLoad (temp 4-component vector of int) +0:45 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:45 c1: direct index for structure (layout(offset=0 ) uniform int) +0:45 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:45 Constant: +0:45 0 (const uint) +0:46 imageLoad (temp 4-component vector of uint) +0:46 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:46 c1: direct index for structure (layout(offset=0 ) uniform int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:46 Constant: +0:46 0 (const uint) +0:49 imageLoad (temp 4-component vector of float) +0:49 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:49 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 1 (const uint) +0:50 imageLoad (temp 4-component vector of int) +0:50 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:50 Constant: +0:50 1 (const uint) +0:51 imageLoad (temp 4-component vector of uint) +0:51 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:51 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 1 (const uint) +0:54 imageLoad (temp 4-component vector of float) +0:54 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:54 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:54 Constant: +0:54 2 (const uint) +0:55 imageLoad (temp 4-component vector of int) +0:55 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:55 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:55 Constant: +0:55 2 (const uint) +0:56 imageLoad (temp 4-component vector of uint) +0:56 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:56 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 2 (const uint) +0:58 move second child to first child (temp 4-component vector of float) +0:58 Color: direct index for structure (temp 4-component vector of float) +0:58 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:58 Constant: +0:58 0 (const int) +0:58 Constant: +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:58 1.000000 +0:59 move second child to first child (temp float) +0:59 Depth: direct index for structure (temp float) +0:59 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:59 Constant: +0:59 1 (const int) +0:59 Constant: +0:59 1.000000 +0:61 Sequence +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:61 Color: direct index for structure (temp 4-component vector of float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 0 (const int) +0:61 move second child to first child (temp float) +0:? 'Depth' (out float FragDepth) +0:61 Depth: direct index for structure (temp float) +0:61 'psout' (temp structure{temp 4-component vector of float Color, temp float Depth}) +0:61 Constant: +0:61 1 (const int) +0:61 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 125 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 96 100 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1df4" + Name 15 "$Global" + MemberName 15($Global) 0 "c1" + MemberName 15($Global) 1 "c2" + MemberName 15($Global) 2 "c3" + MemberName 15($Global) 3 "c4" + MemberName 15($Global) 4 "o1" + MemberName 15($Global) 5 "o2" + MemberName 15($Global) 6 "o3" + MemberName 15($Global) 7 "o4" + Name 17 "" + Name 26 "g_tTex1di4" + Name 34 "g_tTex1du4" + Name 42 "g_tTex2df4" + Name 51 "g_tTex2di4" + Name 58 "g_tTex2du4" + Name 65 "g_tTex3df4" + Name 74 "g_tTex3di4" + Name 81 "g_tTex3du4" + Name 86 "PS_OUTPUT" + MemberName 86(PS_OUTPUT) 0 "Color" + MemberName 86(PS_OUTPUT) 1 "Depth" + Name 88 "psout" + Name 96 "Color" + Name 100 "Depth" + Name 106 "g_sSamp" + Name 109 "g_tTex1df4a" + Name 112 "g_tTex1di4a" + Name 115 "g_tTex1du4a" + Name 118 "g_tTex2df4a" + Name 121 "g_tTex2di4a" + Name 124 "g_tTex2du4a" + Decorate 9(g_tTex1df4) DescriptorSet 0 + Decorate 9(g_tTex1df4) Binding 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 32 + MemberDecorate 15($Global) 4 Offset 48 + MemberDecorate 15($Global) 5 Offset 56 + MemberDecorate 15($Global) 6 Offset 64 + MemberDecorate 15($Global) 7 Offset 80 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 26(g_tTex1di4) DescriptorSet 0 + Decorate 34(g_tTex1du4) DescriptorSet 0 + Decorate 42(g_tTex2df4) DescriptorSet 0 + Decorate 51(g_tTex2di4) DescriptorSet 0 + Decorate 58(g_tTex2du4) DescriptorSet 0 + Decorate 65(g_tTex3df4) DescriptorSet 0 + Decorate 74(g_tTex3di4) DescriptorSet 0 + Decorate 81(g_tTex3du4) DescriptorSet 0 + Decorate 96(Color) Location 0 + Decorate 100(Depth) BuiltIn FragDepth + Decorate 106(g_sSamp) DescriptorSet 0 + Decorate 106(g_sSamp) Binding 0 + Decorate 109(g_tTex1df4a) DescriptorSet 0 + Decorate 112(g_tTex1di4a) DescriptorSet 0 + Decorate 115(g_tTex1du4a) DescriptorSet 0 + Decorate 118(g_tTex2df4a) DescriptorSet 0 + Decorate 121(g_tTex2di4a) DescriptorSet 0 + Decorate 124(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeImage 6(float) 1D nonsampled format:Rgba32f + 8: TypePointer UniformConstant 7 + 9(g_tTex1df4): 8(ptr) Variable UniformConstant + 11: TypeInt 32 1 + 12: TypeVector 11(int) 2 + 13: TypeVector 11(int) 3 + 14: TypeVector 11(int) 4 + 15($Global): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 11(int) Constant 0 + 19: TypePointer Uniform 11(int) + 22: TypeVector 6(float) 4 + 24: TypeImage 11(int) 1D nonsampled format:Rgba32i + 25: TypePointer UniformConstant 24 + 26(g_tTex1di4): 25(ptr) Variable UniformConstant + 31: TypeInt 32 0 + 32: TypeImage 31(int) 1D nonsampled format:Rgba32ui + 33: TypePointer UniformConstant 32 + 34(g_tTex1du4): 33(ptr) Variable UniformConstant + 38: TypeVector 31(int) 4 + 40: TypeImage 6(float) 2D nonsampled format:Rgba32f + 41: TypePointer UniformConstant 40 + 42(g_tTex2df4): 41(ptr) Variable UniformConstant + 44: 11(int) Constant 1 + 45: TypePointer Uniform 12(ivec2) + 49: TypeImage 11(int) 2D nonsampled format:Rgba32i + 50: TypePointer UniformConstant 49 + 51(g_tTex2di4): 50(ptr) Variable UniformConstant + 56: TypeImage 31(int) 2D nonsampled format:Rgba32ui + 57: TypePointer UniformConstant 56 + 58(g_tTex2du4): 57(ptr) Variable UniformConstant + 63: TypeImage 6(float) 3D nonsampled format:Rgba32f + 64: TypePointer UniformConstant 63 + 65(g_tTex3df4): 64(ptr) Variable UniformConstant + 67: 11(int) Constant 2 + 68: TypePointer Uniform 13(ivec3) + 72: TypeImage 11(int) 3D nonsampled format:Rgba32i + 73: TypePointer UniformConstant 72 + 74(g_tTex3di4): 73(ptr) Variable UniformConstant + 79: TypeImage 31(int) 3D nonsampled format:Rgba32ui + 80: TypePointer UniformConstant 79 + 81(g_tTex3du4): 80(ptr) Variable UniformConstant + 86(PS_OUTPUT): TypeStruct 22(fvec4) 6(float) + 87: TypePointer Function 86(PS_OUTPUT) + 89: 6(float) Constant 1065353216 + 90: 22(fvec4) ConstantComposite 89 89 89 89 + 91: TypePointer Function 22(fvec4) + 93: TypePointer Function 6(float) + 95: TypePointer Output 22(fvec4) + 96(Color): 95(ptr) Variable Output + 99: TypePointer Output 6(float) + 100(Depth): 99(ptr) Variable Output + 104: TypeSampler + 105: TypePointer UniformConstant 104 + 106(g_sSamp): 105(ptr) Variable UniformConstant + 107: TypeImage 6(float) 1D array nonsampled format:Rgba32f + 108: TypePointer UniformConstant 107 +109(g_tTex1df4a): 108(ptr) Variable UniformConstant + 110: TypeImage 11(int) 1D array nonsampled format:Rgba32i + 111: TypePointer UniformConstant 110 +112(g_tTex1di4a): 111(ptr) Variable UniformConstant + 113: TypeImage 31(int) 1D array nonsampled format:Rgba32ui + 114: TypePointer UniformConstant 113 +115(g_tTex1du4a): 114(ptr) Variable UniformConstant + 116: TypeImage 6(float) 2D array nonsampled format:Rgba32f + 117: TypePointer UniformConstant 116 +118(g_tTex2df4a): 117(ptr) Variable UniformConstant + 119: TypeImage 11(int) 2D array nonsampled format:Rgba32i + 120: TypePointer UniformConstant 119 +121(g_tTex2di4a): 120(ptr) Variable UniformConstant + 122: TypeImage 31(int) 2D array nonsampled format:Rgba32ui + 123: TypePointer UniformConstant 122 +124(g_tTex2du4a): 123(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 88(psout): 87(ptr) Variable Function + 10: 7 Load 9(g_tTex1df4) + 20: 19(ptr) AccessChain 17 18 + 21: 11(int) Load 20 + 23: 22(fvec4) ImageRead 10 21 + 27: 24 Load 26(g_tTex1di4) + 28: 19(ptr) AccessChain 17 18 + 29: 11(int) Load 28 + 30: 14(ivec4) ImageRead 27 29 + 35: 32 Load 34(g_tTex1du4) + 36: 19(ptr) AccessChain 17 18 + 37: 11(int) Load 36 + 39: 38(ivec4) ImageRead 35 37 + 43: 40 Load 42(g_tTex2df4) + 46: 45(ptr) AccessChain 17 44 + 47: 12(ivec2) Load 46 + 48: 22(fvec4) ImageRead 43 47 + 52: 49 Load 51(g_tTex2di4) + 53: 45(ptr) AccessChain 17 44 + 54: 12(ivec2) Load 53 + 55: 14(ivec4) ImageRead 52 54 + 59: 56 Load 58(g_tTex2du4) + 60: 45(ptr) AccessChain 17 44 + 61: 12(ivec2) Load 60 + 62: 38(ivec4) ImageRead 59 61 + 66: 63 Load 65(g_tTex3df4) + 69: 68(ptr) AccessChain 17 67 + 70: 13(ivec3) Load 69 + 71: 22(fvec4) ImageRead 66 70 + 75: 72 Load 74(g_tTex3di4) + 76: 68(ptr) AccessChain 17 67 + 77: 13(ivec3) Load 76 + 78: 14(ivec4) ImageRead 75 77 + 82: 79 Load 81(g_tTex3du4) + 83: 68(ptr) AccessChain 17 67 + 84: 13(ivec3) Load 83 + 85: 38(ivec4) ImageRead 82 84 + 92: 91(ptr) AccessChain 88(psout) 18 + Store 92 90 + 94: 93(ptr) AccessChain 88(psout) 44 + Store 94 89 + 97: 91(ptr) AccessChain 88(psout) 18 + 98: 22(fvec4) Load 97 + Store 96(Color) 98 + 101: 93(ptr) AccessChain 88(psout) 44 + 102: 6(float) Load 101 + Store 100(Depth) 102 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.logical.binary.frag.out b/Test/baseResults/hlsl.logical.binary.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..d9ae7d5b70325a96238d19dba844b34f18d6429d --- /dev/null +++ b/Test/baseResults/hlsl.logical.binary.frag.out @@ -0,0 +1,220 @@ +hlsl.logical.binary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select (temp void) +0:13 Condition +0:13 logical-and (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert int to bool (temp bool) +0:13 Convert float to int (temp int) +0:13 fval: direct index for structure (layout(offset=32 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 logical-or (temp bool) +0:14 Convert int to bool (temp bool) +0:14 ival: direct index for structure (layout(offset=0 ) uniform int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert int to bool (temp bool) +0:14 Convert float to int (temp int) +0:14 fval: direct index for structure (layout(offset=32 ) uniform float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child (temp 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Sequence +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Test condition and select (temp void) +0:13 Condition +0:13 logical-and (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:13 Convert int to bool (temp bool) +0:13 Convert float to int (temp int) +0:13 fval: direct index for structure (layout(offset=32 ) uniform float) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 2 (const uint) +0:13 true case is null +0:14 Test condition and select (temp void) +0:14 Condition +0:14 logical-or (temp bool) +0:14 Convert int to bool (temp bool) +0:14 ival: direct index for structure (layout(offset=0 ) uniform int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 0 (const uint) +0:14 Convert int to bool (temp bool) +0:14 Convert float to int (temp int) +0:14 fval: direct index for structure (layout(offset=32 ) uniform float) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 2 (const uint) +0:14 true case is null +0:17 move second child to first child (temp 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Constant: +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:17 1.000000 +0:18 Sequence +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:18 Color: direct index for structure (temp 4-component vector of float) +0:18 'psout' (temp structure{temp 4-component vector of float Color}) +0:18 Constant: +0:18 0 (const int) +0:18 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 57 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 53 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "$Global" + MemberName 11($Global) 0 "ival" + MemberName 11($Global) 1 "ival4" + MemberName 11($Global) 2 "fval" + MemberName 11($Global) 3 "fval4" + Name 13 "" + Name 45 "PS_OUTPUT" + MemberName 45(PS_OUTPUT) 0 "Color" + Name 47 "psout" + Name 53 "Color" + MemberDecorate 11($Global) 0 Offset 0 + MemberDecorate 11($Global) 1 Offset 16 + MemberDecorate 11($Global) 2 Offset 32 + MemberDecorate 11($Global) 3 Offset 48 + Decorate 11($Global) Block + Decorate 13 DescriptorSet 0 + Decorate 53(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeInt 32 1 + 8: TypeVector 7(int) 4 + 9: TypeFloat 32 + 10: TypeVector 9(float) 4 + 11($Global): TypeStruct 7(int) 8(ivec4) 9(float) 10(fvec4) + 12: TypePointer Uniform 11($Global) + 13: 12(ptr) Variable Uniform + 14: 7(int) Constant 0 + 15: TypePointer Uniform 7(int) + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 23: 7(int) Constant 2 + 24: TypePointer Uniform 9(float) + 45(PS_OUTPUT): TypeStruct 10(fvec4) + 46: TypePointer Function 45(PS_OUTPUT) + 48: 9(float) Constant 1065353216 + 49: 10(fvec4) ConstantComposite 48 48 48 48 + 50: TypePointer Function 10(fvec4) + 52: TypePointer Output 10(fvec4) + 53(Color): 52(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 47(psout): 46(ptr) Variable Function + 16: 15(ptr) AccessChain 13 14 + 17: 7(int) Load 16 + 20: 6(bool) INotEqual 17 19 + SelectionMerge 22 None + BranchConditional 20 21 22 + 21: Label + 25: 24(ptr) AccessChain 13 23 + 26: 9(float) Load 25 + 27: 7(int) ConvertFToS 26 + 28: 6(bool) INotEqual 27 19 + Branch 22 + 22: Label + 29: 6(bool) Phi 20 5 28 21 + SelectionMerge 31 None + BranchConditional 29 30 31 + 30: Label + Branch 31 + 31: Label + 32: 15(ptr) AccessChain 13 14 + 33: 7(int) Load 32 + 34: 6(bool) INotEqual 33 19 + 35: 6(bool) LogicalNot 34 + SelectionMerge 37 None + BranchConditional 35 36 37 + 36: Label + 38: 24(ptr) AccessChain 13 23 + 39: 9(float) Load 38 + 40: 7(int) ConvertFToS 39 + 41: 6(bool) INotEqual 40 19 + Branch 37 + 37: Label + 42: 6(bool) Phi 34 31 41 36 + SelectionMerge 44 None + BranchConditional 42 43 44 + 43: Label + Branch 44 + 44: Label + 51: 50(ptr) AccessChain 47(psout) 14 + Store 51 49 + 54: 50(ptr) AccessChain 47(psout) 14 + 55: 10(fvec4) Load 54 + Store 53(Color) 55 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.logical.binary.vec.frag.out b/Test/baseResults/hlsl.logical.binary.vec.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..32b5a3859757278dcc6aad74713dc4314c5cef87 --- /dev/null +++ b/Test/baseResults/hlsl.logical.binary.vec.frag.out @@ -0,0 +1,412 @@ +hlsl.logical.binary.vec.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r00' (temp 4-component vector of bool) +0:11 Negate conditional (temp 4-component vector of bool) +0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:11 Constant: +0:11 0 (const uint) +0:12 Sequence +0:12 move second child to first child (temp 4-component vector of bool) +0:12 'r01' (temp 4-component vector of bool) +0:12 logical-and (temp 4-component vector of bool) +0:12 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 0 (const uint) +0:12 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 1 (const uint) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r02' (temp 4-component vector of bool) +0:13 logical-or (temp 4-component vector of bool) +0:13 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 0 (const uint) +0:13 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 1 (const uint) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r10' (temp 4-component vector of bool) +0:15 logical-and (temp 4-component vector of bool) +0:15 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 2 (const uint) +0:15 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r11' (temp 4-component vector of bool) +0:16 logical-or (temp 4-component vector of bool) +0:16 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 2 (const uint) +0:16 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 1 (const uint) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 logical-and (temp 4-component vector of bool) +0:18 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 0 (const uint) +0:18 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 3 (const uint) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 logical-or (temp 4-component vector of bool) +0:19 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 0 (const uint) +0:19 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 3 (const uint) +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Convert bool to float (temp 4-component vector of float) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 'r00' (temp 4-component vector of bool) +0:22 'r01' (temp 4-component vector of bool) +0:22 'r02' (temp 4-component vector of bool) +0:22 'r10' (temp 4-component vector of bool) +0:22 'r11' (temp 4-component vector of bool) +0:22 'r20' (temp 4-component vector of bool) +0:22 'r21' (temp 4-component vector of bool) +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:10 Function Parameters: +0:? Sequence +0:11 Sequence +0:11 move second child to first child (temp 4-component vector of bool) +0:11 'r00' (temp 4-component vector of bool) +0:11 Negate conditional (temp 4-component vector of bool) +0:11 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:11 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:11 Constant: +0:11 0 (const uint) +0:12 Sequence +0:12 move second child to first child (temp 4-component vector of bool) +0:12 'r01' (temp 4-component vector of bool) +0:12 logical-and (temp 4-component vector of bool) +0:12 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 0 (const uint) +0:12 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:12 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:12 Constant: +0:12 1 (const uint) +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of bool) +0:13 'r02' (temp 4-component vector of bool) +0:13 logical-or (temp 4-component vector of bool) +0:13 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 0 (const uint) +0:13 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:13 Constant: +0:13 1 (const uint) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of bool) +0:15 'r10' (temp 4-component vector of bool) +0:15 logical-and (temp 4-component vector of bool) +0:15 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:15 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 2 (const uint) +0:15 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:15 Constant: +0:15 1 (const uint) +0:16 Sequence +0:16 move second child to first child (temp 4-component vector of bool) +0:16 'r11' (temp 4-component vector of bool) +0:16 logical-or (temp 4-component vector of bool) +0:16 Construct bvec4 (layout(offset=16 ) uniform 4-component vector of bool) +0:16 b1a: direct index for structure (layout(offset=32 ) uniform bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 2 (const uint) +0:16 b4b: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:16 Constant: +0:16 1 (const uint) +0:18 Sequence +0:18 move second child to first child (temp 4-component vector of bool) +0:18 'r20' (temp 4-component vector of bool) +0:18 logical-and (temp 4-component vector of bool) +0:18 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 0 (const uint) +0:18 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:18 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:18 Constant: +0:18 3 (const uint) +0:19 Sequence +0:19 move second child to first child (temp 4-component vector of bool) +0:19 'r21' (temp 4-component vector of bool) +0:19 logical-or (temp 4-component vector of bool) +0:19 b4a: direct index for structure (layout(offset=0 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 0 (const uint) +0:19 Construct bvec4 (layout(offset=0 ) uniform 4-component vector of bool) +0:19 b1b: direct index for structure (layout(offset=36 ) uniform bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) +0:19 Constant: +0:19 3 (const uint) +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Convert bool to float (temp 4-component vector of float) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 logical-or (temp 4-component vector of bool) +0:22 'r00' (temp 4-component vector of bool) +0:22 'r01' (temp 4-component vector of bool) +0:22 'r02' (temp 4-component vector of bool) +0:22 'r10' (temp 4-component vector of bool) +0:22 'r11' (temp 4-component vector of bool) +0:22 'r20' (temp 4-component vector of bool) +0:22 'r21' (temp 4-component vector of bool) +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of bool b4a, layout(offset=16 ) uniform 4-component vector of bool b4b, layout(offset=32 ) uniform bool b1a, layout(offset=36 ) uniform bool b1b}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 115 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 111 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "r00" + Name 12 "$Global" + MemberName 12($Global) 0 "b4a" + MemberName 12($Global) 1 "b4b" + MemberName 12($Global) 2 "b1a" + MemberName 12($Global) 3 "b1b" + Name 14 "" + Name 24 "r01" + Name 33 "r02" + Name 41 "r10" + Name 52 "r11" + Name 61 "r20" + Name 73 "r21" + Name 87 "PS_OUTPUT" + MemberName 87(PS_OUTPUT) 0 "Color" + Name 89 "psout" + Name 111 "Color" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 16 + MemberDecorate 12($Global) 2 Offset 32 + MemberDecorate 12($Global) 3 Offset 36 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 111(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeVector 6(bool) 4 + 8: TypePointer Function 7(bvec4) + 10: TypeInt 32 0 + 11: TypeVector 10(int) 4 + 12($Global): TypeStruct 11(ivec4) 11(ivec4) 10(int) 10(int) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: TypeInt 32 1 + 16: 15(int) Constant 0 + 17: TypePointer Uniform 11(ivec4) + 20: 10(int) Constant 0 + 21: 11(ivec4) ConstantComposite 20 20 20 20 + 28: 15(int) Constant 1 + 42: 15(int) Constant 2 + 43: TypePointer Uniform 10(int) + 67: 15(int) Constant 3 + 85: TypeFloat 32 + 86: TypeVector 85(float) 4 + 87(PS_OUTPUT): TypeStruct 86(fvec4) + 88: TypePointer Function 87(PS_OUTPUT) + 103: 85(float) Constant 0 + 104: 85(float) Constant 1065353216 + 105: 86(fvec4) ConstantComposite 103 103 103 103 + 106: 86(fvec4) ConstantComposite 104 104 104 104 + 108: TypePointer Function 86(fvec4) + 110: TypePointer Output 86(fvec4) + 111(Color): 110(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 9(r00): 8(ptr) Variable Function + 24(r01): 8(ptr) Variable Function + 33(r02): 8(ptr) Variable Function + 41(r10): 8(ptr) Variable Function + 52(r11): 8(ptr) Variable Function + 61(r20): 8(ptr) Variable Function + 73(r21): 8(ptr) Variable Function + 89(psout): 88(ptr) Variable Function + 18: 17(ptr) AccessChain 14 16 + 19: 11(ivec4) Load 18 + 22: 7(bvec4) INotEqual 19 21 + 23: 7(bvec4) LogicalNot 22 + Store 9(r00) 23 + 25: 17(ptr) AccessChain 14 16 + 26: 11(ivec4) Load 25 + 27: 7(bvec4) INotEqual 26 21 + 29: 17(ptr) AccessChain 14 28 + 30: 11(ivec4) Load 29 + 31: 7(bvec4) INotEqual 30 21 + 32: 7(bvec4) LogicalAnd 27 31 + Store 24(r01) 32 + 34: 17(ptr) AccessChain 14 16 + 35: 11(ivec4) Load 34 + 36: 7(bvec4) INotEqual 35 21 + 37: 17(ptr) AccessChain 14 28 + 38: 11(ivec4) Load 37 + 39: 7(bvec4) INotEqual 38 21 + 40: 7(bvec4) LogicalOr 36 39 + Store 33(r02) 40 + 44: 43(ptr) AccessChain 14 42 + 45: 10(int) Load 44 + 46: 6(bool) INotEqual 45 20 + 47: 7(bvec4) CompositeConstruct 46 46 46 46 + 48: 17(ptr) AccessChain 14 28 + 49: 11(ivec4) Load 48 + 50: 7(bvec4) INotEqual 49 21 + 51: 7(bvec4) LogicalAnd 47 50 + Store 41(r10) 51 + 53: 43(ptr) AccessChain 14 42 + 54: 10(int) Load 53 + 55: 6(bool) INotEqual 54 20 + 56: 7(bvec4) CompositeConstruct 55 55 55 55 + 57: 17(ptr) AccessChain 14 28 + 58: 11(ivec4) Load 57 + 59: 7(bvec4) INotEqual 58 21 + 60: 7(bvec4) LogicalOr 56 59 + Store 52(r11) 60 + 62: 17(ptr) AccessChain 14 16 + 63: 11(ivec4) Load 62 + 64: 7(bvec4) INotEqual 63 21 + SelectionMerge 66 None + BranchConditional 64 65 66 + 65: Label + 68: 43(ptr) AccessChain 14 67 + 69: 10(int) Load 68 + 70: 6(bool) INotEqual 69 20 + 71: 7(bvec4) CompositeConstruct 70 70 70 70 + Branch 66 + 66: Label + 72: 6(bool) Phi 64 5 71 65 + Store 61(r20) 72 + 74: 17(ptr) AccessChain 14 16 + 75: 11(ivec4) Load 74 + 76: 7(bvec4) INotEqual 75 21 + 77: 6(bool) LogicalNot 76 + SelectionMerge 79 None + BranchConditional 77 78 79 + 78: Label + 80: 43(ptr) AccessChain 14 67 + 81: 10(int) Load 80 + 82: 6(bool) INotEqual 81 20 + 83: 7(bvec4) CompositeConstruct 82 82 82 82 + Branch 79 + 79: Label + 84: 6(bool) Phi 76 66 83 78 + Store 73(r21) 84 + 90: 7(bvec4) Load 9(r00) + 91: 7(bvec4) Load 24(r01) + 92: 7(bvec4) LogicalOr 90 91 + 93: 7(bvec4) Load 33(r02) + 94: 7(bvec4) LogicalOr 92 93 + 95: 7(bvec4) Load 41(r10) + 96: 7(bvec4) LogicalOr 94 95 + 97: 7(bvec4) Load 52(r11) + 98: 7(bvec4) LogicalOr 96 97 + 99: 7(bvec4) Load 61(r20) + 100: 7(bvec4) LogicalOr 98 99 + 101: 7(bvec4) Load 73(r21) + 102: 7(bvec4) LogicalOr 100 101 + 107: 86(fvec4) Select 102 106 105 + 109: 108(ptr) AccessChain 89(psout) 16 + Store 109 107 + 112: 108(ptr) AccessChain 89(psout) 16 + 113: 86(fvec4) Load 112 + Store 111(Color) 113 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.logical.unary.frag.out b/Test/baseResults/hlsl.logical.unary.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..1aaa69a24eb65f828b023ed397214c1e388bb9fc --- /dev/null +++ b/Test/baseResults/hlsl.logical.unary.frag.out @@ -0,0 +1,292 @@ +hlsl.logical.unary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional (temp 4-component vector of bool) +0:14 Convert int to bool (temp 4-component vector of bool) +0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional (temp bool) +0:16 Convert float to bool (temp bool) +0:16 fval: direct index for structure (layout(offset=32 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional (temp 4-component vector of bool) +0:17 Convert float to bool (temp 4-component vector of bool) +0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select (temp void) +0:19 Condition +0:19 ival: direct index for structure (layout(offset=0 ) uniform int) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select (temp void) +0:20 Condition +0:20 fval: direct index for structure (layout(offset=32 ) uniform float) +0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Negate conditional (temp bool) +0:21 Convert int to bool (temp bool) +0:21 ival: direct index for structure (layout(offset=0 ) uniform int) +0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select (temp void) +0:22 Condition +0:22 Negate conditional (temp bool) +0:22 Convert float to bool (temp bool) +0:22 fval: direct index for structure (layout(offset=32 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:12 Function Parameters: +0:? Sequence +0:13 Negate conditional (temp bool) +0:13 Convert int to bool (temp bool) +0:13 ival: direct index for structure (layout(offset=0 ) uniform int) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:13 Constant: +0:13 0 (const uint) +0:14 Negate conditional (temp 4-component vector of bool) +0:14 Convert int to bool (temp 4-component vector of bool) +0:14 ival4: direct index for structure (layout(offset=16 ) uniform 4-component vector of int) +0:14 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:14 Constant: +0:14 1 (const uint) +0:16 Negate conditional (temp bool) +0:16 Convert float to bool (temp bool) +0:16 fval: direct index for structure (layout(offset=32 ) uniform float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 2 (const uint) +0:17 Negate conditional (temp 4-component vector of bool) +0:17 Convert float to bool (temp 4-component vector of bool) +0:17 fval4: direct index for structure (layout(offset=48 ) uniform 4-component vector of float) +0:17 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:17 Constant: +0:17 3 (const uint) +0:19 Test condition and select (temp void) +0:19 Condition +0:19 ival: direct index for structure (layout(offset=0 ) uniform int) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 0 (const uint) +0:19 true case is null +0:20 Test condition and select (temp void) +0:20 Condition +0:20 fval: direct index for structure (layout(offset=32 ) uniform float) +0:20 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:20 Constant: +0:20 2 (const uint) +0:20 true case is null +0:21 Test condition and select (temp void) +0:21 Condition +0:21 Negate conditional (temp bool) +0:21 Convert int to bool (temp bool) +0:21 ival: direct index for structure (layout(offset=0 ) uniform int) +0:21 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:21 Constant: +0:21 0 (const uint) +0:21 true case is null +0:22 Test condition and select (temp void) +0:22 Condition +0:22 Negate conditional (temp bool) +0:22 Convert float to bool (temp bool) +0:22 fval: direct index for structure (layout(offset=32 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 2 (const uint) +0:22 true case is null +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:25 1.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int ival, layout(offset=16 ) uniform 4-component vector of int ival4, layout(offset=32 ) uniform float fval, layout(offset=48 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 77 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 73 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "$Global" + MemberName 10($Global) 0 "ival" + MemberName 10($Global) 1 "ival4" + MemberName 10($Global) 2 "fval" + MemberName 10($Global) 3 "fval4" + Name 12 "" + Name 65 "PS_OUTPUT" + MemberName 65(PS_OUTPUT) 0 "Color" + Name 67 "psout" + Name 73 "Color" + MemberDecorate 10($Global) 0 Offset 0 + MemberDecorate 10($Global) 1 Offset 16 + MemberDecorate 10($Global) 2 Offset 32 + MemberDecorate 10($Global) 3 Offset 48 + Decorate 10($Global) Block + Decorate 12 DescriptorSet 0 + Decorate 73(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypeFloat 32 + 9: TypeVector 8(float) 4 + 10($Global): TypeStruct 6(int) 7(ivec4) 8(float) 9(fvec4) + 11: TypePointer Uniform 10($Global) + 12: 11(ptr) Variable Uniform + 13: 6(int) Constant 0 + 14: TypePointer Uniform 6(int) + 17: TypeBool + 18: TypeInt 32 0 + 19: 18(int) Constant 0 + 22: 6(int) Constant 1 + 23: TypePointer Uniform 7(ivec4) + 26: TypeVector 17(bool) 4 + 27: TypeVector 18(int) 4 + 28: 27(ivec4) ConstantComposite 19 19 19 19 + 31: 6(int) Constant 2 + 32: TypePointer Uniform 8(float) + 35: 8(float) Constant 0 + 38: 6(int) Constant 3 + 39: TypePointer Uniform 9(fvec4) + 42: 9(fvec4) ConstantComposite 35 35 35 35 + 65(PS_OUTPUT): TypeStruct 9(fvec4) + 66: TypePointer Function 65(PS_OUTPUT) + 68: 8(float) Constant 1065353216 + 69: 9(fvec4) ConstantComposite 68 68 68 68 + 70: TypePointer Function 9(fvec4) + 72: TypePointer Output 9(fvec4) + 73(Color): 72(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 67(psout): 66(ptr) Variable Function + 15: 14(ptr) AccessChain 12 13 + 16: 6(int) Load 15 + 20: 17(bool) INotEqual 16 19 + 21: 17(bool) LogicalNot 20 + 24: 23(ptr) AccessChain 12 22 + 25: 7(ivec4) Load 24 + 29: 26(bvec4) INotEqual 25 28 + 30: 26(bvec4) LogicalNot 29 + 33: 32(ptr) AccessChain 12 31 + 34: 8(float) Load 33 + 36: 17(bool) FOrdNotEqual 34 35 + 37: 17(bool) LogicalNot 36 + 40: 39(ptr) AccessChain 12 38 + 41: 9(fvec4) Load 40 + 43: 26(bvec4) FOrdNotEqual 41 42 + 44: 26(bvec4) LogicalNot 43 + 45: 14(ptr) AccessChain 12 13 + 46: 6(int) Load 45 + SelectionMerge 48 None + BranchConditional 46 47 48 + 47: Label + Branch 48 + 48: Label + 49: 32(ptr) AccessChain 12 31 + 50: 8(float) Load 49 + SelectionMerge 52 None + BranchConditional 50 51 52 + 51: Label + Branch 52 + 52: Label + 53: 14(ptr) AccessChain 12 13 + 54: 6(int) Load 53 + 55: 17(bool) INotEqual 54 19 + 56: 17(bool) LogicalNot 55 + SelectionMerge 58 None + BranchConditional 56 57 58 + 57: Label + Branch 58 + 58: Label + 59: 32(ptr) AccessChain 12 31 + 60: 8(float) Load 59 + 61: 17(bool) FOrdNotEqual 60 35 + 62: 17(bool) LogicalNot 61 + SelectionMerge 64 None + BranchConditional 62 63 64 + 63: Label + Branch 64 + 64: Label + 71: 70(ptr) AccessChain 67(psout) 13 + Store 71 69 + 74: 70(ptr) AccessChain 67(psout) 13 + 75: 9(fvec4) Load 74 + Store 73(Color) 75 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.matNx1.frag.out b/Test/baseResults/hlsl.matNx1.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..f9dd65f9e7bf16d48cb9584ff1c16f5d80c1a765 --- /dev/null +++ b/Test/baseResults/hlsl.matNx1.frag.out @@ -0,0 +1,261 @@ +hlsl.matNx1.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestMatNx1( (temp void) +0:3 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child (temp 1X1 matrix of float) +0:13 'r00' (temp 1X1 matrix of float) +0:13 transpose (temp 1X1 matrix of float) +0:13 'f1x1' (temp 1X1 matrix of float) +0:14 Sequence +0:14 move second child to first child (temp 1X2 matrix of float) +0:14 'r01' (temp 1X2 matrix of float) +0:14 transpose (temp 1X2 matrix of float) +0:14 'f2x1' (temp 2X1 matrix of float) +0:15 Sequence +0:15 move second child to first child (temp 1X3 matrix of float) +0:15 'r02' (temp 1X3 matrix of float) +0:15 transpose (temp 1X3 matrix of float) +0:15 'f3x1' (temp 3X1 matrix of float) +0:16 Sequence +0:16 move second child to first child (temp 1X4 matrix of float) +0:16 'r03' (temp 1X4 matrix of float) +0:16 transpose (temp 1X4 matrix of float) +0:16 'f4x1' (temp 4X1 matrix of float) +0:18 Sequence +0:18 move second child to first child (temp 1X1 matrix of float) +0:18 'r10' (temp 1X1 matrix of float) +0:18 transpose (temp 1X1 matrix of float) +0:18 'f1x1' (temp 1X1 matrix of float) +0:19 Sequence +0:19 move second child to first child (temp 2X1 matrix of float) +0:19 'r11' (temp 2X1 matrix of float) +0:19 transpose (temp 2X1 matrix of float) +0:19 'f1x2' (temp 1X2 matrix of float) +0:20 Sequence +0:20 move second child to first child (temp 3X1 matrix of float) +0:20 'r12' (temp 3X1 matrix of float) +0:20 transpose (temp 3X1 matrix of float) +0:20 'f1x3' (temp 1X3 matrix of float) +0:21 Sequence +0:21 move second child to first child (temp 4X1 matrix of float) +0:21 'r13' (temp 4X1 matrix of float) +0:21 transpose (temp 4X1 matrix of float) +0:21 'f1x4' (temp 1X4 matrix of float) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:27 Function Parameters: +0:? Sequence +0:29 move second child to first child (temp 4-component vector of float) +0:29 color: direct index for structure (temp 4-component vector of float) +0:29 'ps_output' (temp structure{temp 4-component vector of float color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:30 Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestMatNx1( (temp void) +0:3 Function Parameters: +0:? Sequence +0:13 Sequence +0:13 move second child to first child (temp 1X1 matrix of float) +0:13 'r00' (temp 1X1 matrix of float) +0:13 transpose (temp 1X1 matrix of float) +0:13 'f1x1' (temp 1X1 matrix of float) +0:14 Sequence +0:14 move second child to first child (temp 1X2 matrix of float) +0:14 'r01' (temp 1X2 matrix of float) +0:14 transpose (temp 1X2 matrix of float) +0:14 'f2x1' (temp 2X1 matrix of float) +0:15 Sequence +0:15 move second child to first child (temp 1X3 matrix of float) +0:15 'r02' (temp 1X3 matrix of float) +0:15 transpose (temp 1X3 matrix of float) +0:15 'f3x1' (temp 3X1 matrix of float) +0:16 Sequence +0:16 move second child to first child (temp 1X4 matrix of float) +0:16 'r03' (temp 1X4 matrix of float) +0:16 transpose (temp 1X4 matrix of float) +0:16 'f4x1' (temp 4X1 matrix of float) +0:18 Sequence +0:18 move second child to first child (temp 1X1 matrix of float) +0:18 'r10' (temp 1X1 matrix of float) +0:18 transpose (temp 1X1 matrix of float) +0:18 'f1x1' (temp 1X1 matrix of float) +0:19 Sequence +0:19 move second child to first child (temp 2X1 matrix of float) +0:19 'r11' (temp 2X1 matrix of float) +0:19 transpose (temp 2X1 matrix of float) +0:19 'f1x2' (temp 1X2 matrix of float) +0:20 Sequence +0:20 move second child to first child (temp 3X1 matrix of float) +0:20 'r12' (temp 3X1 matrix of float) +0:20 transpose (temp 3X1 matrix of float) +0:20 'f1x3' (temp 1X3 matrix of float) +0:21 Sequence +0:21 move second child to first child (temp 4X1 matrix of float) +0:21 'r13' (temp 4X1 matrix of float) +0:21 transpose (temp 4X1 matrix of float) +0:21 'f1x4' (temp 1X4 matrix of float) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:27 Function Parameters: +0:? Sequence +0:29 move second child to first child (temp 4-component vector of float) +0:29 color: direct index for structure (temp 4-component vector of float) +0:29 'ps_output' (temp structure{temp 4-component vector of float color}) +0:29 Constant: +0:29 0 (const int) +0:29 Constant: +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:29 1.000000 +0:30 Sequence +0:30 Sequence +0:30 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:30 color: direct index for structure (temp 4-component vector of float) +0:30 'ps_output' (temp structure{temp 4-component vector of float color}) +0:30 Constant: +0:30 0 (const int) +0:30 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 72 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 68 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestMatNx1(" + Name 12 "r00" + Name 13 "f1x1" + Name 19 "r01" + Name 22 "f2x1" + Name 28 "r02" + Name 31 "f3x1" + Name 37 "r03" + Name 40 "f4x1" + Name 43 "r10" + Name 46 "r11" + Name 47 "f1x2" + Name 50 "r12" + Name 51 "f1x3" + Name 54 "r13" + Name 55 "f1x4" + Name 58 "PS_OUTPUT" + MemberName 58(PS_OUTPUT) 0 "color" + Name 60 "ps_output" + Name 68 "color" + Decorate 68(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeFloat 32 + 9: TypeVector 8(float) 1 + 10: TypeMatrix 9(fvec) 1 + 11: TypePointer Function 10 + 16: TypeVector 8(float) 2 + 17: TypeMatrix 16(fvec2) 1 + 18: TypePointer Function 17 + 20: TypeMatrix 9(fvec) 2 + 21: TypePointer Function 20 + 25: TypeVector 8(float) 3 + 26: TypeMatrix 25(fvec3) 1 + 27: TypePointer Function 26 + 29: TypeMatrix 9(fvec) 3 + 30: TypePointer Function 29 + 34: TypeVector 8(float) 4 + 35: TypeMatrix 34(fvec4) 1 + 36: TypePointer Function 35 + 38: TypeMatrix 9(fvec) 4 + 39: TypePointer Function 38 + 58(PS_OUTPUT): TypeStruct 34(fvec4) + 59: TypePointer Function 58(PS_OUTPUT) + 61: TypeInt 32 1 + 62: 61(int) Constant 0 + 63: 8(float) Constant 1065353216 + 64: 34(fvec4) ConstantComposite 63 63 63 63 + 65: TypePointer Function 34(fvec4) + 67: TypePointer Output 34(fvec4) + 68(color): 67(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 60(ps_output): 59(ptr) Variable Function + 66: 65(ptr) AccessChain 60(ps_output) 62 + Store 66 64 + 69: 65(ptr) AccessChain 60(ps_output) 62 + 70: 34(fvec4) Load 69 + Store 68(color) 70 + Return + FunctionEnd + 6(TestMatNx1(): 2 Function None 3 + 7: Label + 12(r00): 11(ptr) Variable Function + 13(f1x1): 11(ptr) Variable Function + 19(r01): 18(ptr) Variable Function + 22(f2x1): 21(ptr) Variable Function + 28(r02): 27(ptr) Variable Function + 31(f3x1): 30(ptr) Variable Function + 37(r03): 36(ptr) Variable Function + 40(f4x1): 39(ptr) Variable Function + 43(r10): 11(ptr) Variable Function + 46(r11): 21(ptr) Variable Function + 47(f1x2): 18(ptr) Variable Function + 50(r12): 30(ptr) Variable Function + 51(f1x3): 27(ptr) Variable Function + 54(r13): 39(ptr) Variable Function + 55(f1x4): 36(ptr) Variable Function + 14: 10 Load 13(f1x1) + 15: 10 Transpose 14 + Store 12(r00) 15 + 23: 20 Load 22(f2x1) + 24: 17 Transpose 23 + Store 19(r01) 24 + 32: 29 Load 31(f3x1) + 33: 26 Transpose 32 + Store 28(r02) 33 + 41: 38 Load 40(f4x1) + 42: 35 Transpose 41 + Store 37(r03) 42 + 44: 10 Load 13(f1x1) + 45: 10 Transpose 44 + Store 43(r10) 45 + 48: 17 Load 47(f1x2) + 49: 20 Transpose 48 + Store 46(r11) 49 + 52: 26 Load 51(f1x3) + 53: 29 Transpose 52 + Store 50(r12) 53 + 56: 35 Load 55(f1x4) + 57: 38 Transpose 56 + Store 54(r13) 57 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.matType.bool.frag.out b/Test/baseResults/hlsl.matType.bool.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..e24c878441aa64b3537e48fdeb90b71eae0c95f9 --- /dev/null +++ b/Test/baseResults/hlsl.matType.bool.frag.out @@ -0,0 +1,419 @@ +hlsl.matType.bool.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestBoolMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of bool) +0:25 'r00' (temp 1X1 matrix of bool) +0:25 transpose (temp 1X1 matrix of bool) +0:25 'b1x1' (temp 1X1 matrix of bool) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of bool) +0:26 'r01' (temp 1X2 matrix of bool) +0:26 transpose (temp 1X2 matrix of bool) +0:26 'b2x1' (temp 2X1 matrix of bool) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of bool) +0:27 'r02' (temp 1X3 matrix of bool) +0:27 transpose (temp 1X3 matrix of bool) +0:27 'b3x1' (temp 3X1 matrix of bool) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of bool) +0:28 'r03' (temp 1X4 matrix of bool) +0:28 transpose (temp 1X4 matrix of bool) +0:28 'b4x1' (temp 4X1 matrix of bool) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of bool) +0:30 'r10' (temp 2X1 matrix of bool) +0:30 transpose (temp 2X1 matrix of bool) +0:30 'b1x2' (temp 1X2 matrix of bool) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of bool) +0:31 'r11' (temp 2X2 matrix of bool) +0:31 transpose (temp 2X2 matrix of bool) +0:31 'b2x2' (temp 2X2 matrix of bool) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of bool) +0:32 'r12' (temp 2X3 matrix of bool) +0:32 transpose (temp 2X3 matrix of bool) +0:32 'b3x2' (temp 3X2 matrix of bool) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of bool) +0:33 'r13' (temp 2X4 matrix of bool) +0:33 transpose (temp 2X4 matrix of bool) +0:33 'b4x2' (temp 4X2 matrix of bool) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of bool) +0:35 'r20' (temp 3X1 matrix of bool) +0:35 transpose (temp 3X1 matrix of bool) +0:35 'b1x3' (temp 1X3 matrix of bool) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of bool) +0:36 'r21' (temp 3X2 matrix of bool) +0:36 transpose (temp 3X2 matrix of bool) +0:36 'b2x3' (temp 2X3 matrix of bool) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of bool) +0:37 'r22' (temp 3X3 matrix of bool) +0:37 transpose (temp 3X3 matrix of bool) +0:37 'b3x3' (temp 3X3 matrix of bool) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of bool) +0:38 'r23' (temp 3X4 matrix of bool) +0:38 transpose (temp 3X4 matrix of bool) +0:38 'b4x3' (temp 4X3 matrix of bool) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of bool) +0:40 'r30' (temp 4X1 matrix of bool) +0:40 transpose (temp 4X1 matrix of bool) +0:40 'b1x4' (temp 1X4 matrix of bool) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of bool) +0:41 'r31' (temp 4X2 matrix of bool) +0:41 transpose (temp 4X2 matrix of bool) +0:41 'b2x4' (temp 2X4 matrix of bool) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of bool) +0:42 'r32' (temp 4X3 matrix of bool) +0:42 transpose (temp 4X3 matrix of bool) +0:42 'b3x4' (temp 3X4 matrix of bool) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of bool) +0:43 'r33' (temp 4X4 matrix of bool) +0:43 transpose (temp 4X4 matrix of bool) +0:43 'b4x4' (temp 4X4 matrix of bool) +0:49 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:49 Function Parameters: +0:? Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 color: direct index for structure (temp 4-component vector of float) +0:51 'ps_output' (temp structure{temp 4-component vector of float color}) +0:51 Constant: +0:51 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:52 Sequence +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:52 color: direct index for structure (temp 4-component vector of float) +0:52 'ps_output' (temp structure{temp 4-component vector of float color}) +0:52 Constant: +0:52 0 (const int) +0:52 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestBoolMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of bool) +0:25 'r00' (temp 1X1 matrix of bool) +0:25 transpose (temp 1X1 matrix of bool) +0:25 'b1x1' (temp 1X1 matrix of bool) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of bool) +0:26 'r01' (temp 1X2 matrix of bool) +0:26 transpose (temp 1X2 matrix of bool) +0:26 'b2x1' (temp 2X1 matrix of bool) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of bool) +0:27 'r02' (temp 1X3 matrix of bool) +0:27 transpose (temp 1X3 matrix of bool) +0:27 'b3x1' (temp 3X1 matrix of bool) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of bool) +0:28 'r03' (temp 1X4 matrix of bool) +0:28 transpose (temp 1X4 matrix of bool) +0:28 'b4x1' (temp 4X1 matrix of bool) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of bool) +0:30 'r10' (temp 2X1 matrix of bool) +0:30 transpose (temp 2X1 matrix of bool) +0:30 'b1x2' (temp 1X2 matrix of bool) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of bool) +0:31 'r11' (temp 2X2 matrix of bool) +0:31 transpose (temp 2X2 matrix of bool) +0:31 'b2x2' (temp 2X2 matrix of bool) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of bool) +0:32 'r12' (temp 2X3 matrix of bool) +0:32 transpose (temp 2X3 matrix of bool) +0:32 'b3x2' (temp 3X2 matrix of bool) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of bool) +0:33 'r13' (temp 2X4 matrix of bool) +0:33 transpose (temp 2X4 matrix of bool) +0:33 'b4x2' (temp 4X2 matrix of bool) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of bool) +0:35 'r20' (temp 3X1 matrix of bool) +0:35 transpose (temp 3X1 matrix of bool) +0:35 'b1x3' (temp 1X3 matrix of bool) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of bool) +0:36 'r21' (temp 3X2 matrix of bool) +0:36 transpose (temp 3X2 matrix of bool) +0:36 'b2x3' (temp 2X3 matrix of bool) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of bool) +0:37 'r22' (temp 3X3 matrix of bool) +0:37 transpose (temp 3X3 matrix of bool) +0:37 'b3x3' (temp 3X3 matrix of bool) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of bool) +0:38 'r23' (temp 3X4 matrix of bool) +0:38 transpose (temp 3X4 matrix of bool) +0:38 'b4x3' (temp 4X3 matrix of bool) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of bool) +0:40 'r30' (temp 4X1 matrix of bool) +0:40 transpose (temp 4X1 matrix of bool) +0:40 'b1x4' (temp 1X4 matrix of bool) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of bool) +0:41 'r31' (temp 4X2 matrix of bool) +0:41 transpose (temp 4X2 matrix of bool) +0:41 'b2x4' (temp 2X4 matrix of bool) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of bool) +0:42 'r32' (temp 4X3 matrix of bool) +0:42 transpose (temp 4X3 matrix of bool) +0:42 'b3x4' (temp 3X4 matrix of bool) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of bool) +0:43 'r33' (temp 4X4 matrix of bool) +0:43 transpose (temp 4X4 matrix of bool) +0:43 'b4x4' (temp 4X4 matrix of bool) +0:49 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:49 Function Parameters: +0:? Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 color: direct index for structure (temp 4-component vector of float) +0:51 'ps_output' (temp structure{temp 4-component vector of float color}) +0:51 Constant: +0:51 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:52 Sequence +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:52 color: direct index for structure (temp 4-component vector of float) +0:52 'ps_output' (temp structure{temp 4-component vector of float color}) +0:52 Constant: +0:52 0 (const int) +0:52 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 125 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 121 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestBoolMatTypes(" + Name 12 "r00" + Name 13 "b1x1" + Name 19 "r01" + Name 22 "b2x1" + Name 28 "r02" + Name 31 "b3x1" + Name 37 "r03" + Name 40 "b4x1" + Name 43 "r10" + Name 44 "b1x2" + Name 49 "r11" + Name 50 "b2x2" + Name 55 "r12" + Name 58 "b3x2" + Name 63 "r13" + Name 66 "b4x2" + Name 69 "r20" + Name 70 "b1x3" + Name 73 "r21" + Name 74 "b2x3" + Name 79 "r22" + Name 80 "b3x3" + Name 85 "r23" + Name 88 "b4x3" + Name 91 "r30" + Name 92 "b1x4" + Name 95 "r31" + Name 96 "b2x4" + Name 99 "r32" + Name 100 "b3x4" + Name 105 "r33" + Name 106 "b4x4" + Name 111 "PS_OUTPUT" + MemberName 111(PS_OUTPUT) 0 "color" + Name 113 "ps_output" + Name 121 "color" + Decorate 121(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 8: TypeBool + 9: TypeVector 8(bool) 1 + 10: TypeMatrix 9(bvec) 1 + 11: TypePointer Function 10 + 16: TypeVector 8(bool) 2 + 17: TypeMatrix 16(bvec2) 1 + 18: TypePointer Function 17 + 20: TypeMatrix 9(bvec) 2 + 21: TypePointer Function 20 + 25: TypeVector 8(bool) 3 + 26: TypeMatrix 25(bvec3) 1 + 27: TypePointer Function 26 + 29: TypeMatrix 9(bvec) 3 + 30: TypePointer Function 29 + 34: TypeVector 8(bool) 4 + 35: TypeMatrix 34(bvec4) 1 + 36: TypePointer Function 35 + 38: TypeMatrix 9(bvec) 4 + 39: TypePointer Function 38 + 47: TypeMatrix 16(bvec2) 2 + 48: TypePointer Function 47 + 53: TypeMatrix 25(bvec3) 2 + 54: TypePointer Function 53 + 56: TypeMatrix 16(bvec2) 3 + 57: TypePointer Function 56 + 61: TypeMatrix 34(bvec4) 2 + 62: TypePointer Function 61 + 64: TypeMatrix 16(bvec2) 4 + 65: TypePointer Function 64 + 77: TypeMatrix 25(bvec3) 3 + 78: TypePointer Function 77 + 83: TypeMatrix 34(bvec4) 3 + 84: TypePointer Function 83 + 86: TypeMatrix 25(bvec3) 4 + 87: TypePointer Function 86 + 103: TypeMatrix 34(bvec4) 4 + 104: TypePointer Function 103 + 109: TypeFloat 32 + 110: TypeVector 109(float) 4 + 111(PS_OUTPUT): TypeStruct 110(fvec4) + 112: TypePointer Function 111(PS_OUTPUT) + 114: TypeInt 32 1 + 115: 114(int) Constant 0 + 116: 109(float) Constant 0 + 117: 110(fvec4) ConstantComposite 116 116 116 116 + 118: TypePointer Function 110(fvec4) + 120: TypePointer Output 110(fvec4) + 121(color): 120(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 113(ps_output): 112(ptr) Variable Function + 119: 118(ptr) AccessChain 113(ps_output) 115 + Store 119 117 + 122: 118(ptr) AccessChain 113(ps_output) 115 + 123: 110(fvec4) Load 122 + Store 121(color) 123 + Return + FunctionEnd +6(TestBoolMatTypes(): 2 Function None 3 + 7: Label + 12(r00): 11(ptr) Variable Function + 13(b1x1): 11(ptr) Variable Function + 19(r01): 18(ptr) Variable Function + 22(b2x1): 21(ptr) Variable Function + 28(r02): 27(ptr) Variable Function + 31(b3x1): 30(ptr) Variable Function + 37(r03): 36(ptr) Variable Function + 40(b4x1): 39(ptr) Variable Function + 43(r10): 21(ptr) Variable Function + 44(b1x2): 18(ptr) Variable Function + 49(r11): 48(ptr) Variable Function + 50(b2x2): 48(ptr) Variable Function + 55(r12): 54(ptr) Variable Function + 58(b3x2): 57(ptr) Variable Function + 63(r13): 62(ptr) Variable Function + 66(b4x2): 65(ptr) Variable Function + 69(r20): 30(ptr) Variable Function + 70(b1x3): 27(ptr) Variable Function + 73(r21): 57(ptr) Variable Function + 74(b2x3): 54(ptr) Variable Function + 79(r22): 78(ptr) Variable Function + 80(b3x3): 78(ptr) Variable Function + 85(r23): 84(ptr) Variable Function + 88(b4x3): 87(ptr) Variable Function + 91(r30): 39(ptr) Variable Function + 92(b1x4): 36(ptr) Variable Function + 95(r31): 65(ptr) Variable Function + 96(b2x4): 62(ptr) Variable Function + 99(r32): 87(ptr) Variable Function + 100(b3x4): 84(ptr) Variable Function + 105(r33): 104(ptr) Variable Function + 106(b4x4): 104(ptr) Variable Function + 14: 10 Load 13(b1x1) + 15: 10 Transpose 14 + Store 12(r00) 15 + 23: 20 Load 22(b2x1) + 24: 17 Transpose 23 + Store 19(r01) 24 + 32: 29 Load 31(b3x1) + 33: 26 Transpose 32 + Store 28(r02) 33 + 41: 38 Load 40(b4x1) + 42: 35 Transpose 41 + Store 37(r03) 42 + 45: 17 Load 44(b1x2) + 46: 20 Transpose 45 + Store 43(r10) 46 + 51: 47 Load 50(b2x2) + 52: 47 Transpose 51 + Store 49(r11) 52 + 59: 56 Load 58(b3x2) + 60: 53 Transpose 59 + Store 55(r12) 60 + 67: 64 Load 66(b4x2) + 68: 61 Transpose 67 + Store 63(r13) 68 + 71: 26 Load 70(b1x3) + 72: 29 Transpose 71 + Store 69(r20) 72 + 75: 53 Load 74(b2x3) + 76: 56 Transpose 75 + Store 73(r21) 76 + 81: 77 Load 80(b3x3) + 82: 77 Transpose 81 + Store 79(r22) 82 + 89: 86 Load 88(b4x3) + 90: 83 Transpose 89 + Store 85(r23) 90 + 93: 35 Load 92(b1x4) + 94: 38 Transpose 93 + Store 91(r30) 94 + 97: 61 Load 96(b2x4) + 98: 64 Transpose 97 + Store 95(r31) 98 + 101: 83 Load 100(b3x4) + 102: 86 Transpose 101 + Store 99(r32) 102 + 107: 103 Load 106(b4x4) + 108: 103 Transpose 107 + Store 105(r33) 108 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out index 2d63460ba072e32d07b04b0a6c910a50e76878a4..038ca738ae2e7e2e2bb51d054e0f44838fda5a5f 100755 --- a/Test/baseResults/hlsl.matType.frag.out +++ b/Test/baseResults/hlsl.matType.frag.out @@ -2,12 +2,7 @@ hlsl.matType.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Sequence -0:1 move second child to first child (temp 1-component vector of float) -0:1 'f1' (global 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:9 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:9 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) @@ -15,26 +10,17 @@ gl_FragCoord origin is upper left 0:10 Branch: Return with expression 0:10 'inFloat1' (in 1-component vector of float) 0:? Linker Objects -0:? 'f1' (global 1-component vector of float) -0:? 'fmat11' (global 1X1 matrix of float) -0:? 'fmat41' (global 4X1 matrix of float) -0:? 'fmat12' (global 1X2 matrix of float) -0:? 'dmat23' (global 2X3 matrix of double) -0:? 'int44' (global 4X4 matrix of int) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Sequence -0:1 move second child to first child (temp 1-component vector of float) -0:1 'f1' (global 1-component vector of float) -0:1 Constant: -0:1 1.000000 -0:9 Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float) +0:9 Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float) 0:9 Function Parameters: 0:9 'inFloat1' (in 1-component vector of float) 0:9 'inScalar' (in float) @@ -42,16 +28,11 @@ gl_FragCoord origin is upper left 0:10 Branch: Return with expression 0:10 'inFloat1' (in 1-component vector of float) 0:? Linker Objects -0:? 'f1' (global 1-component vector of float) -0:? 'fmat11' (global 1X1 matrix of float) -0:? 'fmat41' (global 4X1 matrix of float) -0:? 'fmat12' (global 1X2 matrix of float) -0:? 'dmat23' (global 2X3 matrix of double) -0:? 'int44' (global 4X4 matrix of int) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 1-component vector of float f1, layout(offset=16 ) uniform 1X1 matrix of float fmat11, layout(offset=32 ) uniform 4X1 matrix of float fmat41, layout(offset=48 ) uniform 1X2 matrix of float fmat12, layout(offset=80 ) uniform 2X3 matrix of double dmat23, layout(offset=128 ) uniform 4X4 matrix of int int44}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 40 +// Id's are bound by 30 Capability Shader Capability Float64 @@ -63,49 +44,59 @@ gl_FragCoord origin is upper left Name 11 "ShaderFunction(vf1;f1;" Name 9 "inFloat1" Name 10 "inScalar" - Name 14 "f1" - Name 22 "fmat11" - Name 25 "fmat41" - Name 29 "fmat12" - Name 34 "dmat23" - Name 39 "int44" + Name 27 "$Global" + MemberName 27($Global) 0 "f1" + MemberName 27($Global) 1 "fmat11" + MemberName 27($Global) 2 "fmat41" + MemberName 27($Global) 3 "fmat12" + MemberName 27($Global) 4 "dmat23" + MemberName 27($Global) 5 "int44" + Name 29 "" + MemberDecorate 27($Global) 0 Offset 0 + MemberDecorate 27($Global) 1 RowMajor + MemberDecorate 27($Global) 1 Offset 16 + MemberDecorate 27($Global) 1 MatrixStride 16 + MemberDecorate 27($Global) 2 RowMajor + MemberDecorate 27($Global) 2 Offset 32 + MemberDecorate 27($Global) 2 MatrixStride 16 + MemberDecorate 27($Global) 3 RowMajor + MemberDecorate 27($Global) 3 Offset 48 + MemberDecorate 27($Global) 3 MatrixStride 16 + MemberDecorate 27($Global) 4 RowMajor + MemberDecorate 27($Global) 4 Offset 80 + MemberDecorate 27($Global) 4 MatrixStride 16 + MemberDecorate 27($Global) 5 RowMajor + MemberDecorate 27($Global) 5 Offset 128 + MemberDecorate 27($Global) 5 MatrixStride 16 + Decorate 27($Global) Block + Decorate 29 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypePointer Function 6(float) 8: TypeFunction 6(float) 7(ptr) 7(ptr) - 13: TypePointer Private 6(float) - 14(f1): 13(ptr) Variable Private - 15: 6(float) Constant 1065353216 - 19: TypeVector 6(float) 1 - 20: TypeMatrix 19(fvec) 1 - 21: TypePointer Private 20 - 22(fmat11): 21(ptr) Variable Private - 23: TypeMatrix 19(fvec) 4 - 24: TypePointer Private 23 - 25(fmat41): 24(ptr) Variable Private - 26: TypeVector 6(float) 2 - 27: TypeMatrix 26(fvec2) 1 - 28: TypePointer Private 27 - 29(fmat12): 28(ptr) Variable Private - 30: TypeFloat 64 - 31: TypeVector 30(float) 3 - 32: TypeMatrix 31(fvec3) 2 - 33: TypePointer Private 32 - 34(dmat23): 33(ptr) Variable Private - 35: TypeInt 32 1 - 36: TypeVector 35(int) 4 - 37: TypeMatrix 36(ivec4) 4 - 38: TypePointer Private 37 - 39(int44): 38(ptr) Variable Private + 16: TypeVector 6(float) 1 + 17: TypeMatrix 16(fvec) 1 + 18: TypeMatrix 16(fvec) 4 + 19: TypeVector 6(float) 2 + 20: TypeMatrix 19(fvec2) 1 + 21: TypeFloat 64 + 22: TypeVector 21(float) 3 + 23: TypeMatrix 22(fvec3) 2 + 24: TypeInt 32 1 + 25: TypeVector 24(int) 4 + 26: TypeMatrix 25(ivec4) 4 + 27($Global): TypeStruct 6(float) 17 18 20 23 26 + 28: TypePointer Uniform 27($Global) + 29: 28(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label - Store 14(f1) 15 + Return FunctionEnd 11(ShaderFunction(vf1;f1;): 6(float) Function None 8 9(inFloat1): 7(ptr) FunctionParameter 10(inScalar): 7(ptr) FunctionParameter 12: Label - 16: 6(float) Load 9(inFloat1) - ReturnValue 16 + 13: 6(float) Load 9(inFloat1) + ReturnValue 13 FunctionEnd diff --git a/Test/baseResults/hlsl.matType.int.frag.out b/Test/baseResults/hlsl.matType.int.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..d7ffb0f780535c0216f4ac26fbb073fb4a46dc6f --- /dev/null +++ b/Test/baseResults/hlsl.matType.int.frag.out @@ -0,0 +1,738 @@ +hlsl.matType.int.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestIntMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of int) +0:25 'r00' (temp 1X1 matrix of int) +0:25 transpose (temp 1X1 matrix of int) +0:25 'i1x1' (temp 1X1 matrix of int) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of int) +0:26 'r01' (temp 1X2 matrix of int) +0:26 transpose (temp 1X2 matrix of int) +0:26 'i2x1' (temp 2X1 matrix of int) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of int) +0:27 'r02' (temp 1X3 matrix of int) +0:27 transpose (temp 1X3 matrix of int) +0:27 'i3x1' (temp 3X1 matrix of int) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of int) +0:28 'r03' (temp 1X4 matrix of int) +0:28 transpose (temp 1X4 matrix of int) +0:28 'i4x1' (temp 4X1 matrix of int) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of int) +0:30 'r10' (temp 2X1 matrix of int) +0:30 transpose (temp 2X1 matrix of int) +0:30 'i1x2' (temp 1X2 matrix of int) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of int) +0:31 'r11' (temp 2X2 matrix of int) +0:31 transpose (temp 2X2 matrix of int) +0:31 'i2x2' (temp 2X2 matrix of int) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of int) +0:32 'r12' (temp 2X3 matrix of int) +0:32 transpose (temp 2X3 matrix of int) +0:32 'i3x2' (temp 3X2 matrix of int) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of int) +0:33 'r13' (temp 2X4 matrix of int) +0:33 transpose (temp 2X4 matrix of int) +0:33 'i4x2' (temp 4X2 matrix of int) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of int) +0:35 'r20' (temp 3X1 matrix of int) +0:35 transpose (temp 3X1 matrix of int) +0:35 'i1x3' (temp 1X3 matrix of int) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of int) +0:36 'r21' (temp 3X2 matrix of int) +0:36 transpose (temp 3X2 matrix of int) +0:36 'i2x3' (temp 2X3 matrix of int) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of int) +0:37 'r22' (temp 3X3 matrix of int) +0:37 transpose (temp 3X3 matrix of int) +0:37 'i3x3' (temp 3X3 matrix of int) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of int) +0:38 'r23' (temp 3X4 matrix of int) +0:38 transpose (temp 3X4 matrix of int) +0:38 'i4x3' (temp 4X3 matrix of int) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of int) +0:40 'r30' (temp 4X1 matrix of int) +0:40 transpose (temp 4X1 matrix of int) +0:40 'i1x4' (temp 1X4 matrix of int) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of int) +0:41 'r31' (temp 4X2 matrix of int) +0:41 transpose (temp 4X2 matrix of int) +0:41 'i2x4' (temp 2X4 matrix of int) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of int) +0:42 'r32' (temp 4X3 matrix of int) +0:42 transpose (temp 4X3 matrix of int) +0:42 'i3x4' (temp 3X4 matrix of int) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of int) +0:43 'r33' (temp 4X4 matrix of int) +0:43 transpose (temp 4X4 matrix of int) +0:43 'i4x4' (temp 4X4 matrix of int) +0:47 Function Definition: TestUintMatTypes( (temp void) +0:47 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child (temp 1X1 matrix of uint) +0:69 'r00' (temp 1X1 matrix of uint) +0:69 transpose (temp 1X1 matrix of uint) +0:69 'u1x1' (temp 1X1 matrix of uint) +0:70 Sequence +0:70 move second child to first child (temp 1X2 matrix of uint) +0:70 'r01' (temp 1X2 matrix of uint) +0:70 transpose (temp 1X2 matrix of uint) +0:70 'u2x1' (temp 2X1 matrix of uint) +0:71 Sequence +0:71 move second child to first child (temp 1X3 matrix of uint) +0:71 'r02' (temp 1X3 matrix of uint) +0:71 transpose (temp 1X3 matrix of uint) +0:71 'u3x1' (temp 3X1 matrix of uint) +0:72 Sequence +0:72 move second child to first child (temp 1X4 matrix of uint) +0:72 'r03' (temp 1X4 matrix of uint) +0:72 transpose (temp 1X4 matrix of uint) +0:72 'u4x1' (temp 4X1 matrix of uint) +0:74 Sequence +0:74 move second child to first child (temp 2X1 matrix of uint) +0:74 'r10' (temp 2X1 matrix of uint) +0:74 transpose (temp 2X1 matrix of uint) +0:74 'u1x2' (temp 1X2 matrix of uint) +0:75 Sequence +0:75 move second child to first child (temp 2X2 matrix of uint) +0:75 'r11' (temp 2X2 matrix of uint) +0:75 transpose (temp 2X2 matrix of uint) +0:75 'u2x2' (temp 2X2 matrix of uint) +0:76 Sequence +0:76 move second child to first child (temp 2X3 matrix of uint) +0:76 'r12' (temp 2X3 matrix of uint) +0:76 transpose (temp 2X3 matrix of uint) +0:76 'u3x2' (temp 3X2 matrix of uint) +0:77 Sequence +0:77 move second child to first child (temp 2X4 matrix of uint) +0:77 'r13' (temp 2X4 matrix of uint) +0:77 transpose (temp 2X4 matrix of uint) +0:77 'u4x2' (temp 4X2 matrix of uint) +0:79 Sequence +0:79 move second child to first child (temp 3X1 matrix of uint) +0:79 'r20' (temp 3X1 matrix of uint) +0:79 transpose (temp 3X1 matrix of uint) +0:79 'u1x3' (temp 1X3 matrix of uint) +0:80 Sequence +0:80 move second child to first child (temp 3X2 matrix of uint) +0:80 'r21' (temp 3X2 matrix of uint) +0:80 transpose (temp 3X2 matrix of uint) +0:80 'u2x3' (temp 2X3 matrix of uint) +0:81 Sequence +0:81 move second child to first child (temp 3X3 matrix of uint) +0:81 'r22' (temp 3X3 matrix of uint) +0:81 transpose (temp 3X3 matrix of uint) +0:81 'u3x3' (temp 3X3 matrix of uint) +0:82 Sequence +0:82 move second child to first child (temp 3X4 matrix of uint) +0:82 'r23' (temp 3X4 matrix of uint) +0:82 transpose (temp 3X4 matrix of uint) +0:82 'u4x3' (temp 4X3 matrix of uint) +0:84 Sequence +0:84 move second child to first child (temp 4X1 matrix of uint) +0:84 'r30' (temp 4X1 matrix of uint) +0:84 transpose (temp 4X1 matrix of uint) +0:84 'u1x4' (temp 1X4 matrix of uint) +0:85 Sequence +0:85 move second child to first child (temp 4X2 matrix of uint) +0:85 'r31' (temp 4X2 matrix of uint) +0:85 transpose (temp 4X2 matrix of uint) +0:85 'u2x4' (temp 2X4 matrix of uint) +0:86 Sequence +0:86 move second child to first child (temp 4X3 matrix of uint) +0:86 'r32' (temp 4X3 matrix of uint) +0:86 transpose (temp 4X3 matrix of uint) +0:86 'u3x4' (temp 3X4 matrix of uint) +0:87 Sequence +0:87 move second child to first child (temp 4X4 matrix of uint) +0:87 'r33' (temp 4X4 matrix of uint) +0:87 transpose (temp 4X4 matrix of uint) +0:87 'u4x4' (temp 4X4 matrix of uint) +0:93 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:93 Function Parameters: +0:? Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 color: direct index for structure (temp 4-component vector of float) +0:95 'ps_output' (temp structure{temp 4-component vector of float color}) +0:95 Constant: +0:95 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:96 Sequence +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:96 color: direct index for structure (temp 4-component vector of float) +0:96 'ps_output' (temp structure{temp 4-component vector of float color}) +0:96 Constant: +0:96 0 (const int) +0:96 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: TestIntMatTypes( (temp void) +0:3 Function Parameters: +0:? Sequence +0:25 Sequence +0:25 move second child to first child (temp 1X1 matrix of int) +0:25 'r00' (temp 1X1 matrix of int) +0:25 transpose (temp 1X1 matrix of int) +0:25 'i1x1' (temp 1X1 matrix of int) +0:26 Sequence +0:26 move second child to first child (temp 1X2 matrix of int) +0:26 'r01' (temp 1X2 matrix of int) +0:26 transpose (temp 1X2 matrix of int) +0:26 'i2x1' (temp 2X1 matrix of int) +0:27 Sequence +0:27 move second child to first child (temp 1X3 matrix of int) +0:27 'r02' (temp 1X3 matrix of int) +0:27 transpose (temp 1X3 matrix of int) +0:27 'i3x1' (temp 3X1 matrix of int) +0:28 Sequence +0:28 move second child to first child (temp 1X4 matrix of int) +0:28 'r03' (temp 1X4 matrix of int) +0:28 transpose (temp 1X4 matrix of int) +0:28 'i4x1' (temp 4X1 matrix of int) +0:30 Sequence +0:30 move second child to first child (temp 2X1 matrix of int) +0:30 'r10' (temp 2X1 matrix of int) +0:30 transpose (temp 2X1 matrix of int) +0:30 'i1x2' (temp 1X2 matrix of int) +0:31 Sequence +0:31 move second child to first child (temp 2X2 matrix of int) +0:31 'r11' (temp 2X2 matrix of int) +0:31 transpose (temp 2X2 matrix of int) +0:31 'i2x2' (temp 2X2 matrix of int) +0:32 Sequence +0:32 move second child to first child (temp 2X3 matrix of int) +0:32 'r12' (temp 2X3 matrix of int) +0:32 transpose (temp 2X3 matrix of int) +0:32 'i3x2' (temp 3X2 matrix of int) +0:33 Sequence +0:33 move second child to first child (temp 2X4 matrix of int) +0:33 'r13' (temp 2X4 matrix of int) +0:33 transpose (temp 2X4 matrix of int) +0:33 'i4x2' (temp 4X2 matrix of int) +0:35 Sequence +0:35 move second child to first child (temp 3X1 matrix of int) +0:35 'r20' (temp 3X1 matrix of int) +0:35 transpose (temp 3X1 matrix of int) +0:35 'i1x3' (temp 1X3 matrix of int) +0:36 Sequence +0:36 move second child to first child (temp 3X2 matrix of int) +0:36 'r21' (temp 3X2 matrix of int) +0:36 transpose (temp 3X2 matrix of int) +0:36 'i2x3' (temp 2X3 matrix of int) +0:37 Sequence +0:37 move second child to first child (temp 3X3 matrix of int) +0:37 'r22' (temp 3X3 matrix of int) +0:37 transpose (temp 3X3 matrix of int) +0:37 'i3x3' (temp 3X3 matrix of int) +0:38 Sequence +0:38 move second child to first child (temp 3X4 matrix of int) +0:38 'r23' (temp 3X4 matrix of int) +0:38 transpose (temp 3X4 matrix of int) +0:38 'i4x3' (temp 4X3 matrix of int) +0:40 Sequence +0:40 move second child to first child (temp 4X1 matrix of int) +0:40 'r30' (temp 4X1 matrix of int) +0:40 transpose (temp 4X1 matrix of int) +0:40 'i1x4' (temp 1X4 matrix of int) +0:41 Sequence +0:41 move second child to first child (temp 4X2 matrix of int) +0:41 'r31' (temp 4X2 matrix of int) +0:41 transpose (temp 4X2 matrix of int) +0:41 'i2x4' (temp 2X4 matrix of int) +0:42 Sequence +0:42 move second child to first child (temp 4X3 matrix of int) +0:42 'r32' (temp 4X3 matrix of int) +0:42 transpose (temp 4X3 matrix of int) +0:42 'i3x4' (temp 3X4 matrix of int) +0:43 Sequence +0:43 move second child to first child (temp 4X4 matrix of int) +0:43 'r33' (temp 4X4 matrix of int) +0:43 transpose (temp 4X4 matrix of int) +0:43 'i4x4' (temp 4X4 matrix of int) +0:47 Function Definition: TestUintMatTypes( (temp void) +0:47 Function Parameters: +0:? Sequence +0:69 Sequence +0:69 move second child to first child (temp 1X1 matrix of uint) +0:69 'r00' (temp 1X1 matrix of uint) +0:69 transpose (temp 1X1 matrix of uint) +0:69 'u1x1' (temp 1X1 matrix of uint) +0:70 Sequence +0:70 move second child to first child (temp 1X2 matrix of uint) +0:70 'r01' (temp 1X2 matrix of uint) +0:70 transpose (temp 1X2 matrix of uint) +0:70 'u2x1' (temp 2X1 matrix of uint) +0:71 Sequence +0:71 move second child to first child (temp 1X3 matrix of uint) +0:71 'r02' (temp 1X3 matrix of uint) +0:71 transpose (temp 1X3 matrix of uint) +0:71 'u3x1' (temp 3X1 matrix of uint) +0:72 Sequence +0:72 move second child to first child (temp 1X4 matrix of uint) +0:72 'r03' (temp 1X4 matrix of uint) +0:72 transpose (temp 1X4 matrix of uint) +0:72 'u4x1' (temp 4X1 matrix of uint) +0:74 Sequence +0:74 move second child to first child (temp 2X1 matrix of uint) +0:74 'r10' (temp 2X1 matrix of uint) +0:74 transpose (temp 2X1 matrix of uint) +0:74 'u1x2' (temp 1X2 matrix of uint) +0:75 Sequence +0:75 move second child to first child (temp 2X2 matrix of uint) +0:75 'r11' (temp 2X2 matrix of uint) +0:75 transpose (temp 2X2 matrix of uint) +0:75 'u2x2' (temp 2X2 matrix of uint) +0:76 Sequence +0:76 move second child to first child (temp 2X3 matrix of uint) +0:76 'r12' (temp 2X3 matrix of uint) +0:76 transpose (temp 2X3 matrix of uint) +0:76 'u3x2' (temp 3X2 matrix of uint) +0:77 Sequence +0:77 move second child to first child (temp 2X4 matrix of uint) +0:77 'r13' (temp 2X4 matrix of uint) +0:77 transpose (temp 2X4 matrix of uint) +0:77 'u4x2' (temp 4X2 matrix of uint) +0:79 Sequence +0:79 move second child to first child (temp 3X1 matrix of uint) +0:79 'r20' (temp 3X1 matrix of uint) +0:79 transpose (temp 3X1 matrix of uint) +0:79 'u1x3' (temp 1X3 matrix of uint) +0:80 Sequence +0:80 move second child to first child (temp 3X2 matrix of uint) +0:80 'r21' (temp 3X2 matrix of uint) +0:80 transpose (temp 3X2 matrix of uint) +0:80 'u2x3' (temp 2X3 matrix of uint) +0:81 Sequence +0:81 move second child to first child (temp 3X3 matrix of uint) +0:81 'r22' (temp 3X3 matrix of uint) +0:81 transpose (temp 3X3 matrix of uint) +0:81 'u3x3' (temp 3X3 matrix of uint) +0:82 Sequence +0:82 move second child to first child (temp 3X4 matrix of uint) +0:82 'r23' (temp 3X4 matrix of uint) +0:82 transpose (temp 3X4 matrix of uint) +0:82 'u4x3' (temp 4X3 matrix of uint) +0:84 Sequence +0:84 move second child to first child (temp 4X1 matrix of uint) +0:84 'r30' (temp 4X1 matrix of uint) +0:84 transpose (temp 4X1 matrix of uint) +0:84 'u1x4' (temp 1X4 matrix of uint) +0:85 Sequence +0:85 move second child to first child (temp 4X2 matrix of uint) +0:85 'r31' (temp 4X2 matrix of uint) +0:85 transpose (temp 4X2 matrix of uint) +0:85 'u2x4' (temp 2X4 matrix of uint) +0:86 Sequence +0:86 move second child to first child (temp 4X3 matrix of uint) +0:86 'r32' (temp 4X3 matrix of uint) +0:86 transpose (temp 4X3 matrix of uint) +0:86 'u3x4' (temp 3X4 matrix of uint) +0:87 Sequence +0:87 move second child to first child (temp 4X4 matrix of uint) +0:87 'r33' (temp 4X4 matrix of uint) +0:87 transpose (temp 4X4 matrix of uint) +0:87 'u4x4' (temp 4X4 matrix of uint) +0:93 Function Definition: main( (temp structure{temp 4-component vector of float color}) +0:93 Function Parameters: +0:? Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 color: direct index for structure (temp 4-component vector of float) +0:95 'ps_output' (temp structure{temp 4-component vector of float color}) +0:95 Constant: +0:95 0 (const int) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:96 Sequence +0:96 Sequence +0:96 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:96 color: direct index for structure (temp 4-component vector of float) +0:96 'ps_output' (temp structure{temp 4-component vector of float color}) +0:96 Constant: +0:96 0 (const int) +0:96 Branch: Return +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 227 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 223 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 6 "TestIntMatTypes(" + Name 8 "TestUintMatTypes(" + Name 14 "r00" + Name 15 "i1x1" + Name 21 "r01" + Name 24 "i2x1" + Name 30 "r02" + Name 33 "i3x1" + Name 39 "r03" + Name 42 "i4x1" + Name 45 "r10" + Name 46 "i1x2" + Name 51 "r11" + Name 52 "i2x2" + Name 57 "r12" + Name 60 "i3x2" + Name 65 "r13" + Name 68 "i4x2" + Name 71 "r20" + Name 72 "i1x3" + Name 75 "r21" + Name 76 "i2x3" + Name 81 "r22" + Name 82 "i3x3" + Name 87 "r23" + Name 90 "i4x3" + Name 93 "r30" + Name 94 "i1x4" + Name 97 "r31" + Name 98 "i2x4" + Name 101 "r32" + Name 102 "i3x4" + Name 107 "r33" + Name 108 "i4x4" + Name 115 "r00" + Name 116 "u1x1" + Name 122 "r01" + Name 125 "u2x1" + Name 131 "r02" + Name 134 "u3x1" + Name 140 "r03" + Name 143 "u4x1" + Name 146 "r10" + Name 147 "u1x2" + Name 152 "r11" + Name 153 "u2x2" + Name 158 "r12" + Name 161 "u3x2" + Name 166 "r13" + Name 169 "u4x2" + Name 172 "r20" + Name 173 "u1x3" + Name 176 "r21" + Name 177 "u2x3" + Name 182 "r22" + Name 183 "u3x3" + Name 188 "r23" + Name 191 "u4x3" + Name 194 "r30" + Name 195 "u1x4" + Name 198 "r31" + Name 199 "u2x4" + Name 202 "r32" + Name 203 "u3x4" + Name 208 "r33" + Name 209 "u4x4" + Name 214 "PS_OUTPUT" + MemberName 214(PS_OUTPUT) 0 "color" + Name 216 "ps_output" + Name 223 "color" + Decorate 223(color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 10: TypeInt 32 1 + 11: TypeVector 10(int) 1 + 12: TypeMatrix 11(ivec) 1 + 13: TypePointer Function 12 + 18: TypeVector 10(int) 2 + 19: TypeMatrix 18(ivec2) 1 + 20: TypePointer Function 19 + 22: TypeMatrix 11(ivec) 2 + 23: TypePointer Function 22 + 27: TypeVector 10(int) 3 + 28: TypeMatrix 27(ivec3) 1 + 29: TypePointer Function 28 + 31: TypeMatrix 11(ivec) 3 + 32: TypePointer Function 31 + 36: TypeVector 10(int) 4 + 37: TypeMatrix 36(ivec4) 1 + 38: TypePointer Function 37 + 40: TypeMatrix 11(ivec) 4 + 41: TypePointer Function 40 + 49: TypeMatrix 18(ivec2) 2 + 50: TypePointer Function 49 + 55: TypeMatrix 27(ivec3) 2 + 56: TypePointer Function 55 + 58: TypeMatrix 18(ivec2) 3 + 59: TypePointer Function 58 + 63: TypeMatrix 36(ivec4) 2 + 64: TypePointer Function 63 + 66: TypeMatrix 18(ivec2) 4 + 67: TypePointer Function 66 + 79: TypeMatrix 27(ivec3) 3 + 80: TypePointer Function 79 + 85: TypeMatrix 36(ivec4) 3 + 86: TypePointer Function 85 + 88: TypeMatrix 27(ivec3) 4 + 89: TypePointer Function 88 + 105: TypeMatrix 36(ivec4) 4 + 106: TypePointer Function 105 + 111: TypeInt 32 0 + 112: TypeVector 111(int) 1 + 113: TypeMatrix 112(ivec) 1 + 114: TypePointer Function 113 + 119: TypeVector 111(int) 2 + 120: TypeMatrix 119(ivec2) 1 + 121: TypePointer Function 120 + 123: TypeMatrix 112(ivec) 2 + 124: TypePointer Function 123 + 128: TypeVector 111(int) 3 + 129: TypeMatrix 128(ivec3) 1 + 130: TypePointer Function 129 + 132: TypeMatrix 112(ivec) 3 + 133: TypePointer Function 132 + 137: TypeVector 111(int) 4 + 138: TypeMatrix 137(ivec4) 1 + 139: TypePointer Function 138 + 141: TypeMatrix 112(ivec) 4 + 142: TypePointer Function 141 + 150: TypeMatrix 119(ivec2) 2 + 151: TypePointer Function 150 + 156: TypeMatrix 128(ivec3) 2 + 157: TypePointer Function 156 + 159: TypeMatrix 119(ivec2) 3 + 160: TypePointer Function 159 + 164: TypeMatrix 137(ivec4) 2 + 165: TypePointer Function 164 + 167: TypeMatrix 119(ivec2) 4 + 168: TypePointer Function 167 + 180: TypeMatrix 128(ivec3) 3 + 181: TypePointer Function 180 + 186: TypeMatrix 137(ivec4) 3 + 187: TypePointer Function 186 + 189: TypeMatrix 128(ivec3) 4 + 190: TypePointer Function 189 + 206: TypeMatrix 137(ivec4) 4 + 207: TypePointer Function 206 + 212: TypeFloat 32 + 213: TypeVector 212(float) 4 + 214(PS_OUTPUT): TypeStruct 213(fvec4) + 215: TypePointer Function 214(PS_OUTPUT) + 217: 10(int) Constant 0 + 218: 212(float) Constant 0 + 219: 213(fvec4) ConstantComposite 218 218 218 218 + 220: TypePointer Function 213(fvec4) + 222: TypePointer Output 213(fvec4) + 223(color): 222(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 216(ps_output): 215(ptr) Variable Function + 221: 220(ptr) AccessChain 216(ps_output) 217 + Store 221 219 + 224: 220(ptr) AccessChain 216(ps_output) 217 + 225: 213(fvec4) Load 224 + Store 223(color) 225 + Return + FunctionEnd +6(TestIntMatTypes(): 2 Function None 3 + 7: Label + 14(r00): 13(ptr) Variable Function + 15(i1x1): 13(ptr) Variable Function + 21(r01): 20(ptr) Variable Function + 24(i2x1): 23(ptr) Variable Function + 30(r02): 29(ptr) Variable Function + 33(i3x1): 32(ptr) Variable Function + 39(r03): 38(ptr) Variable Function + 42(i4x1): 41(ptr) Variable Function + 45(r10): 23(ptr) Variable Function + 46(i1x2): 20(ptr) Variable Function + 51(r11): 50(ptr) Variable Function + 52(i2x2): 50(ptr) Variable Function + 57(r12): 56(ptr) Variable Function + 60(i3x2): 59(ptr) Variable Function + 65(r13): 64(ptr) Variable Function + 68(i4x2): 67(ptr) Variable Function + 71(r20): 32(ptr) Variable Function + 72(i1x3): 29(ptr) Variable Function + 75(r21): 59(ptr) Variable Function + 76(i2x3): 56(ptr) Variable Function + 81(r22): 80(ptr) Variable Function + 82(i3x3): 80(ptr) Variable Function + 87(r23): 86(ptr) Variable Function + 90(i4x3): 89(ptr) Variable Function + 93(r30): 41(ptr) Variable Function + 94(i1x4): 38(ptr) Variable Function + 97(r31): 67(ptr) Variable Function + 98(i2x4): 64(ptr) Variable Function + 101(r32): 89(ptr) Variable Function + 102(i3x4): 86(ptr) Variable Function + 107(r33): 106(ptr) Variable Function + 108(i4x4): 106(ptr) Variable Function + 16: 12 Load 15(i1x1) + 17: 12 Transpose 16 + Store 14(r00) 17 + 25: 22 Load 24(i2x1) + 26: 19 Transpose 25 + Store 21(r01) 26 + 34: 31 Load 33(i3x1) + 35: 28 Transpose 34 + Store 30(r02) 35 + 43: 40 Load 42(i4x1) + 44: 37 Transpose 43 + Store 39(r03) 44 + 47: 19 Load 46(i1x2) + 48: 22 Transpose 47 + Store 45(r10) 48 + 53: 49 Load 52(i2x2) + 54: 49 Transpose 53 + Store 51(r11) 54 + 61: 58 Load 60(i3x2) + 62: 55 Transpose 61 + Store 57(r12) 62 + 69: 66 Load 68(i4x2) + 70: 63 Transpose 69 + Store 65(r13) 70 + 73: 28 Load 72(i1x3) + 74: 31 Transpose 73 + Store 71(r20) 74 + 77: 55 Load 76(i2x3) + 78: 58 Transpose 77 + Store 75(r21) 78 + 83: 79 Load 82(i3x3) + 84: 79 Transpose 83 + Store 81(r22) 84 + 91: 88 Load 90(i4x3) + 92: 85 Transpose 91 + Store 87(r23) 92 + 95: 37 Load 94(i1x4) + 96: 40 Transpose 95 + Store 93(r30) 96 + 99: 63 Load 98(i2x4) + 100: 66 Transpose 99 + Store 97(r31) 100 + 103: 85 Load 102(i3x4) + 104: 88 Transpose 103 + Store 101(r32) 104 + 109: 105 Load 108(i4x4) + 110: 105 Transpose 109 + Store 107(r33) 110 + Return + FunctionEnd +8(TestUintMatTypes(): 2 Function None 3 + 9: Label + 115(r00): 114(ptr) Variable Function + 116(u1x1): 114(ptr) Variable Function + 122(r01): 121(ptr) Variable Function + 125(u2x1): 124(ptr) Variable Function + 131(r02): 130(ptr) Variable Function + 134(u3x1): 133(ptr) Variable Function + 140(r03): 139(ptr) Variable Function + 143(u4x1): 142(ptr) Variable Function + 146(r10): 124(ptr) Variable Function + 147(u1x2): 121(ptr) Variable Function + 152(r11): 151(ptr) Variable Function + 153(u2x2): 151(ptr) Variable Function + 158(r12): 157(ptr) Variable Function + 161(u3x2): 160(ptr) Variable Function + 166(r13): 165(ptr) Variable Function + 169(u4x2): 168(ptr) Variable Function + 172(r20): 133(ptr) Variable Function + 173(u1x3): 130(ptr) Variable Function + 176(r21): 160(ptr) Variable Function + 177(u2x3): 157(ptr) Variable Function + 182(r22): 181(ptr) Variable Function + 183(u3x3): 181(ptr) Variable Function + 188(r23): 187(ptr) Variable Function + 191(u4x3): 190(ptr) Variable Function + 194(r30): 142(ptr) Variable Function + 195(u1x4): 139(ptr) Variable Function + 198(r31): 168(ptr) Variable Function + 199(u2x4): 165(ptr) Variable Function + 202(r32): 190(ptr) Variable Function + 203(u3x4): 187(ptr) Variable Function + 208(r33): 207(ptr) Variable Function + 209(u4x4): 207(ptr) Variable Function + 117: 113 Load 116(u1x1) + 118: 113 Transpose 117 + Store 115(r00) 118 + 126: 123 Load 125(u2x1) + 127: 120 Transpose 126 + Store 122(r01) 127 + 135: 132 Load 134(u3x1) + 136: 129 Transpose 135 + Store 131(r02) 136 + 144: 141 Load 143(u4x1) + 145: 138 Transpose 144 + Store 140(r03) 145 + 148: 120 Load 147(u1x2) + 149: 123 Transpose 148 + Store 146(r10) 149 + 154: 150 Load 153(u2x2) + 155: 150 Transpose 154 + Store 152(r11) 155 + 162: 159 Load 161(u3x2) + 163: 156 Transpose 162 + Store 158(r12) 163 + 170: 167 Load 169(u4x2) + 171: 164 Transpose 170 + Store 166(r13) 171 + 174: 129 Load 173(u1x3) + 175: 132 Transpose 174 + Store 172(r20) 175 + 178: 156 Load 177(u2x3) + 179: 159 Transpose 178 + Store 176(r21) 179 + 184: 180 Load 183(u3x3) + 185: 180 Transpose 184 + Store 182(r22) 185 + 192: 189 Load 191(u4x3) + 193: 186 Transpose 192 + Store 188(r23) 193 + 196: 138 Load 195(u1x4) + 197: 141 Transpose 196 + Store 194(r30) 197 + 200: 164 Load 199(u2x4) + 201: 167 Transpose 200 + Store 198(r31) 201 + 204: 186 Load 203(u3x4) + 205: 189 Transpose 204 + Store 202(r32) 205 + 210: 206 Load 209(u4x4) + 211: 206 Transpose 210 + Store 208(r33) 211 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.matrixindex.frag.out b/Test/baseResults/hlsl.matrixindex.frag.out index 7acaa7170400fcd62a32b3512e73534cbf449614..420ba9f55d87b4a88100389b711b335e2f2d66d7 100644 --- a/Test/baseResults/hlsl.matrixindex.frag.out +++ b/Test/baseResults/hlsl.matrixindex.frag.out @@ -2,7 +2,7 @@ hlsl.matrixindex.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:10 Function Parameters: 0:? Sequence 0:22 Sequence @@ -94,13 +94,22 @@ gl_FragCoord origin is upper left 0:43 23.000000 0:43 24.000000 0:43 25.000000 -0:43 'idx' (uniform int) +0:43 idx: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:43 Constant: +0:43 0 (const uint) 0:44 Sequence 0:44 move second child to first child (temp 2-component vector of float) 0:44 'r0c' (temp 2-component vector of float) -0:44 indirect index (temp 2-component vector of float) -0:44 'um' (uniform 3X2 matrix of float) -0:44 'idx' (uniform int) +0:44 indirect index (layout(offset=16 ) temp 2-component vector of float) +0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 1 (const uint) +0:44 idx: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 0 (const uint) 0:47 move second child to first child (temp 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) 0:47 'psout' (temp structure{temp 4-component vector of float Color}) @@ -108,8 +117,8 @@ gl_FragCoord origin is upper left 0:47 0 (const int) 0:47 Construct vec4 (temp 4-component vector of float) 0:47 'e2_11' (temp float) -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -118,9 +127,8 @@ gl_FragCoord origin is upper left 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects -0:? 'idx' (uniform int) -0:? 'um' (uniform 3X2 matrix of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) Linked fragment stage: @@ -129,7 +137,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:10 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:10 Function Parameters: 0:? Sequence 0:22 Sequence @@ -221,13 +229,22 @@ gl_FragCoord origin is upper left 0:43 23.000000 0:43 24.000000 0:43 25.000000 -0:43 'idx' (uniform int) +0:43 idx: direct index for structure (layout(offset=0 ) uniform int) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:43 Constant: +0:43 0 (const uint) 0:44 Sequence 0:44 move second child to first child (temp 2-component vector of float) 0:44 'r0c' (temp 2-component vector of float) -0:44 indirect index (temp 2-component vector of float) -0:44 'um' (uniform 3X2 matrix of float) -0:44 'idx' (uniform int) +0:44 indirect index (layout(offset=16 ) temp 2-component vector of float) +0:44 um: direct index for structure (layout(offset=16 ) uniform 3X2 matrix of float) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 1 (const uint) +0:44 idx: direct index for structure (layout(offset=0 ) uniform int) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) +0:44 Constant: +0:44 0 (const uint) 0:47 move second child to first child (temp 4-component vector of float) 0:47 Color: direct index for structure (temp 4-component vector of float) 0:47 'psout' (temp structure{temp 4-component vector of float Color}) @@ -235,8 +252,8 @@ gl_FragCoord origin is upper left 0:47 0 (const int) 0:47 Construct vec4 (temp 4-component vector of float) 0:47 'e2_11' (temp float) -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -245,18 +262,17 @@ gl_FragCoord origin is upper left 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects -0:? 'idx' (uniform int) -0:? 'um' (uniform 3X2 matrix of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int idx, layout(offset=16 ) uniform 3X2 matrix of float um}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 75 +// Id's are bound by 78 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 71 + EntryPoint Fragment 4 "main" 74 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "e1_00" @@ -275,15 +291,23 @@ gl_FragCoord origin is upper left Name 36 "r1a" Name 38 "r2a" Name 40 "r0b" - Name 48 "idx" - Name 51 "indexable" - Name 54 "r0c" - Name 56 "um" - Name 62 "PS_OUTPUT" - MemberName 62(PS_OUTPUT) 0 "Color" - Name 64 "psout" - Name 71 "Color" - Decorate 71(Color) Location 0 + Name 47 "$Global" + MemberName 47($Global) 0 "idx" + MemberName 47($Global) 1 "um" + Name 49 "" + Name 55 "indexable" + Name 58 "r0c" + Name 66 "PS_OUTPUT" + MemberName 66(PS_OUTPUT) 0 "Color" + Name 68 "psout" + Name 74 "Color" + MemberDecorate 47($Global) 0 Offset 0 + MemberDecorate 47($Global) 1 RowMajor + MemberDecorate 47($Global) 1 Offset 16 + MemberDecorate 47($Global) 1 MatrixStride 16 + Decorate 47($Global) Block + Decorate 49 DescriptorSet 0 + Decorate 74(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -311,19 +335,20 @@ gl_FragCoord origin is upper left 44: 32(fvec2) ConstantComposite 29 31 45: 41 ConstantComposite 42 43 44 46: TypeInt 32 1 - 47: TypePointer UniformConstant 46(int) - 48(idx): 47(ptr) Variable UniformConstant - 50: TypePointer Function 41 - 55: TypePointer UniformConstant 41 - 56(um): 55(ptr) Variable UniformConstant - 58: TypePointer UniformConstant 32(fvec2) - 61: TypeVector 6(float) 4 - 62(PS_OUTPUT): TypeStruct 61(fvec4) - 63: TypePointer Function 62(PS_OUTPUT) - 65: 46(int) Constant 0 - 68: TypePointer Function 61(fvec4) - 70: TypePointer Output 61(fvec4) - 71(Color): 70(ptr) Variable Output + 47($Global): TypeStruct 46(int) 41 + 48: TypePointer Uniform 47($Global) + 49: 48(ptr) Variable Uniform + 50: 46(int) Constant 0 + 51: TypePointer Uniform 46(int) + 54: TypePointer Function 41 + 59: 46(int) Constant 1 + 62: TypePointer Uniform 32(fvec2) + 65: TypeVector 6(float) 4 + 66(PS_OUTPUT): TypeStruct 65(fvec4) + 67: TypePointer Function 66(PS_OUTPUT) + 71: TypePointer Function 65(fvec4) + 73: TypePointer Output 65(fvec4) + 74(Color): 73(ptr) Variable Output 4(main): 2 Function None 3 5: Label 8(e1_00): 7(ptr) Variable Function @@ -342,9 +367,9 @@ gl_FragCoord origin is upper left 36(r1a): 33(ptr) Variable Function 38(r2a): 33(ptr) Variable Function 40(r0b): 33(ptr) Variable Function - 51(indexable): 50(ptr) Variable Function - 54(r0c): 33(ptr) Variable Function - 64(psout): 63(ptr) Variable Function + 55(indexable): 54(ptr) Variable Function + 58(r0c): 33(ptr) Variable Function + 68(psout): 67(ptr) Variable Function Store 8(e1_00) 9 Store 10(e1_01) 11 Store 12(e1_10) 13 @@ -360,21 +385,23 @@ gl_FragCoord origin is upper left Store 34(r0a) 35 Store 36(r1a) 37 Store 38(r2a) 39 - 49: 46(int) Load 48(idx) - Store 51(indexable) 45 - 52: 33(ptr) AccessChain 51(indexable) 49 - 53: 32(fvec2) Load 52 - Store 40(r0b) 53 - 57: 46(int) Load 48(idx) - 59: 58(ptr) AccessChain 56(um) 57 - 60: 32(fvec2) Load 59 - Store 54(r0c) 60 - 66: 6(float) Load 26(e2_11) - 67: 61(fvec4) CompositeConstruct 66 66 66 66 - 69: 68(ptr) AccessChain 64(psout) 65 - Store 69 67 - 72: 68(ptr) AccessChain 64(psout) 65 - 73: 61(fvec4) Load 72 - Store 71(Color) 73 + 52: 51(ptr) AccessChain 49 50 + 53: 46(int) Load 52 + Store 55(indexable) 45 + 56: 33(ptr) AccessChain 55(indexable) 53 + 57: 32(fvec2) Load 56 + Store 40(r0b) 57 + 60: 51(ptr) AccessChain 49 50 + 61: 46(int) Load 60 + 63: 62(ptr) AccessChain 49 59 61 + 64: 32(fvec2) Load 63 + Store 58(r0c) 64 + 69: 6(float) Load 26(e2_11) + 70: 65(fvec4) CompositeConstruct 69 69 69 69 + 72: 71(ptr) AccessChain 68(psout) 50 + Store 72 70 + 75: 71(ptr) AccessChain 68(psout) 50 + 76: 65(fvec4) Load 75 + Store 74(Color) 76 Return FunctionEnd diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out index d396be8bf3865f8a97a06321a1281ee14d1ab767..8995af35dc570648fa7fa6bf59eb35bb40e590d1 100755 --- a/Test/baseResults/hlsl.max.frag.out +++ b/Test/baseResults/hlsl.max.frag.out @@ -2,7 +2,7 @@ hlsl.max.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input1' (layout(location=0 ) in 4-component vector of float) 0:2 'input2' (layout(location=1 ) in 4-component vector of float) @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 max (global 4-component vector of float) +0:3 max (temp 4-component vector of float) 0:3 'input1' (layout(location=0 ) in 4-component vector of float) 0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return @@ -26,7 +26,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input1' (layout(location=0 ) in 4-component vector of float) 0:2 'input2' (layout(location=1 ) in 4-component vector of float) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 max (global 4-component vector of float) +0:3 max (temp 4-component vector of float) 0:3 'input1' (layout(location=0 ) in 4-component vector of float) 0:3 'input2' (layout(location=1 ) in 4-component vector of float) 0:3 Branch: Return diff --git a/Test/baseResults/hlsl.mintypes.frag.out b/Test/baseResults/hlsl.mintypes.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..84c7a8c894a008be3ad5e25a4e0cd66fdf332f20 --- /dev/null +++ b/Test/baseResults/hlsl.mintypes.frag.out @@ -0,0 +1,224 @@ +hlsl.mintypes.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:9 Function Parameters: +0:? Sequence +0:40 add (temp mediump 2-component vector of float) +0:40 'mf16_2' (temp mediump 2-component vector of float) +0:40 'mf16' (temp mediump float) +0:41 add (temp mediump 2-component vector of float) +0:41 'mf10_2' (temp mediump 2-component vector of float) +0:41 'mf10' (temp mediump float) +0:42 add (temp mediump 2-component vector of int) +0:42 'mi16_2' (temp mediump 2-component vector of int) +0:42 'mi16' (temp mediump int) +0:43 add (temp mediump 2-component vector of int) +0:43 'mi12_2' (temp mediump 2-component vector of int) +0:43 'mi12' (temp mediump int) +0:44 add (temp mediump 2-component vector of uint) +0:44 'mu16_2' (temp mediump 2-component vector of uint) +0:44 'mu16' (temp mediump uint) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:9 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:9 Function Parameters: +0:? Sequence +0:40 add (temp mediump 2-component vector of float) +0:40 'mf16_2' (temp mediump 2-component vector of float) +0:40 'mf16' (temp mediump float) +0:41 add (temp mediump 2-component vector of float) +0:41 'mf10_2' (temp mediump 2-component vector of float) +0:41 'mf10' (temp mediump float) +0:42 add (temp mediump 2-component vector of int) +0:42 'mi16_2' (temp mediump 2-component vector of int) +0:42 'mi16' (temp mediump int) +0:43 add (temp mediump 2-component vector of int) +0:43 'mi12_2' (temp mediump 2-component vector of int) +0:43 'mi12' (temp mediump int) +0:44 add (temp mediump 2-component vector of uint) +0:44 'mu16_2' (temp mediump 2-component vector of uint) +0:44 'mu16' (temp mediump uint) +0:47 move second child to first child (temp 4-component vector of float) +0:47 Color: direct index for structure (temp 4-component vector of float) +0:47 'psout' (temp structure{temp 4-component vector of float Color}) +0:47 Constant: +0:47 0 (const int) +0:47 Constant: +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:47 0.000000 +0:48 Sequence +0:48 Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:48 Color: direct index for structure (temp 4-component vector of float) +0:48 'psout' (temp structure{temp 4-component vector of float Color}) +0:48 Constant: +0:48 0 (const int) +0:48 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform mediump float b1a, layout(offset=4 ) uniform mediump float b1b}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 65 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 58 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "mf16_2" + Name 12 "mf16" + Name 16 "mf10_2" + Name 18 "mf10" + Name 25 "mi16_2" + Name 28 "mi16" + Name 32 "mi12_2" + Name 34 "mi12" + Name 41 "mu16_2" + Name 44 "mu16" + Name 49 "PS_OUTPUT" + MemberName 49(PS_OUTPUT) 0 "Color" + Name 51 "psout" + Name 58 "Color" + Name 62 "$Global" + MemberName 62($Global) 0 "b1a" + MemberName 62($Global) 1 "b1b" + Name 64 "" + Decorate 9(mf16_2) RelaxedPrecision + Decorate 10 RelaxedPrecision + Decorate 12(mf16) RelaxedPrecision + Decorate 13 RelaxedPrecision + Decorate 14 RelaxedPrecision + Decorate 15 RelaxedPrecision + Decorate 16(mf10_2) RelaxedPrecision + Decorate 17 RelaxedPrecision + Decorate 18(mf10) RelaxedPrecision + Decorate 19 RelaxedPrecision + Decorate 20 RelaxedPrecision + Decorate 21 RelaxedPrecision + Decorate 25(mi16_2) RelaxedPrecision + Decorate 26 RelaxedPrecision + Decorate 28(mi16) RelaxedPrecision + Decorate 29 RelaxedPrecision + Decorate 30 RelaxedPrecision + Decorate 31 RelaxedPrecision + Decorate 32(mi12_2) RelaxedPrecision + Decorate 33 RelaxedPrecision + Decorate 34(mi12) RelaxedPrecision + Decorate 35 RelaxedPrecision + Decorate 36 RelaxedPrecision + Decorate 37 RelaxedPrecision + Decorate 41(mu16_2) RelaxedPrecision + Decorate 42 RelaxedPrecision + Decorate 44(mu16) RelaxedPrecision + Decorate 45 RelaxedPrecision + Decorate 46 RelaxedPrecision + Decorate 47 RelaxedPrecision + Decorate 58(Color) Location 0 + MemberDecorate 62($Global) 0 RelaxedPrecision + MemberDecorate 62($Global) 0 Offset 0 + MemberDecorate 62($Global) 1 RelaxedPrecision + MemberDecorate 62($Global) 1 Offset 4 + Decorate 62($Global) Block + Decorate 64 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 2 + 8: TypePointer Function 7(fvec2) + 11: TypePointer Function 6(float) + 22: TypeInt 32 1 + 23: TypeVector 22(int) 2 + 24: TypePointer Function 23(ivec2) + 27: TypePointer Function 22(int) + 38: TypeInt 32 0 + 39: TypeVector 38(int) 2 + 40: TypePointer Function 39(ivec2) + 43: TypePointer Function 38(int) + 48: TypeVector 6(float) 4 + 49(PS_OUTPUT): TypeStruct 48(fvec4) + 50: TypePointer Function 49(PS_OUTPUT) + 52: 22(int) Constant 0 + 53: 6(float) Constant 0 + 54: 48(fvec4) ConstantComposite 53 53 53 53 + 55: TypePointer Function 48(fvec4) + 57: TypePointer Output 48(fvec4) + 58(Color): 57(ptr) Variable Output + 62($Global): TypeStruct 6(float) 6(float) + 63: TypePointer Uniform 62($Global) + 64: 63(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + 9(mf16_2): 8(ptr) Variable Function + 12(mf16): 11(ptr) Variable Function + 16(mf10_2): 8(ptr) Variable Function + 18(mf10): 11(ptr) Variable Function + 25(mi16_2): 24(ptr) Variable Function + 28(mi16): 27(ptr) Variable Function + 32(mi12_2): 24(ptr) Variable Function + 34(mi12): 27(ptr) Variable Function + 41(mu16_2): 40(ptr) Variable Function + 44(mu16): 43(ptr) Variable Function + 51(psout): 50(ptr) Variable Function + 10: 7(fvec2) Load 9(mf16_2) + 13: 6(float) Load 12(mf16) + 14: 7(fvec2) CompositeConstruct 13 13 + 15: 7(fvec2) FAdd 10 14 + 17: 7(fvec2) Load 16(mf10_2) + 19: 6(float) Load 18(mf10) + 20: 7(fvec2) CompositeConstruct 19 19 + 21: 7(fvec2) FAdd 17 20 + 26: 23(ivec2) Load 25(mi16_2) + 29: 22(int) Load 28(mi16) + 30: 23(ivec2) CompositeConstruct 29 29 + 31: 23(ivec2) IAdd 26 30 + 33: 23(ivec2) Load 32(mi12_2) + 35: 22(int) Load 34(mi12) + 36: 23(ivec2) CompositeConstruct 35 35 + 37: 23(ivec2) IAdd 33 36 + 42: 39(ivec2) Load 41(mu16_2) + 45: 38(int) Load 44(mu16) + 46: 39(ivec2) CompositeConstruct 45 45 + 47: 39(ivec2) IAdd 42 46 + 56: 55(ptr) AccessChain 51(psout) 52 + Store 56 54 + 59: 55(ptr) AccessChain 51(psout) 52 + 60: 48(fvec4) Load 59 + Store 58(Color) 60 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.multiEntry.vert.out b/Test/baseResults/hlsl.multiEntry.vert.out index 35ecaf507432c78e3ad785b8f37f6154e91d6030..f0d05abd8f1318ee44b091ab102f39923ce89048 100755 --- a/Test/baseResults/hlsl.multiEntry.vert.out +++ b/Test/baseResults/hlsl.multiEntry.vert.out @@ -1,29 +1,29 @@ hlsl.multiEntry.vert Shader version: 450 0:? Sequence -0:4 Function Definition: FakeEntrypoint(u1; (global 4-component vector of float) +0:4 Function Definition: FakeEntrypoint(u1; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'Index' (in uint) 0:? Sequence 0:5 Branch: Return with expression -0:5 textureFetch (global 4-component vector of float) -0:5 'Position' (uniform samplerBuffer) +0:5 textureFetch (temp 4-component vector of float) +0:5 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:5 Convert uint to int (temp int) 0:5 'Index' (in uint) -0:9 Function Definition: RealEntrypoint(u1; (global 4-component vector of float Position) +0:9 Function Definition: RealEntrypoint(u1; (temp 4-component vector of float Position) 0:9 Function Parameters: 0:9 'Index' (in uint VertexIndex) 0:? Sequence 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float Position) -0:10 Function Call: FakeEntrypoint(u1; (global 4-component vector of float) +0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) 0:10 'Index' (in uint VertexIndex) 0:10 Branch: Return 0:? Linker Objects -0:? 'Position' (uniform samplerBuffer) 0:? '@entryPointOutput' (out 4-component vector of float Position) 0:? 'Index' (in uint VertexIndex) +0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) Linked vertex stage: @@ -31,29 +31,29 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:4 Function Definition: FakeEntrypoint(u1; (global 4-component vector of float) +0:4 Function Definition: FakeEntrypoint(u1; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'Index' (in uint) 0:? Sequence 0:5 Branch: Return with expression -0:5 textureFetch (global 4-component vector of float) -0:5 'Position' (uniform samplerBuffer) +0:5 textureFetch (temp 4-component vector of float) +0:5 'Position' (layout(rgba32f ) uniform samplerBuffer) 0:5 Convert uint to int (temp int) 0:5 'Index' (in uint) -0:9 Function Definition: RealEntrypoint(u1; (global 4-component vector of float Position) +0:9 Function Definition: RealEntrypoint(u1; (temp 4-component vector of float Position) 0:9 Function Parameters: 0:9 'Index' (in uint VertexIndex) 0:? Sequence 0:10 Sequence 0:10 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (out 4-component vector of float Position) -0:10 Function Call: FakeEntrypoint(u1; (global 4-component vector of float) +0:10 Function Call: FakeEntrypoint(u1; (temp 4-component vector of float) 0:10 'Index' (in uint VertexIndex) 0:10 Branch: Return 0:? Linker Objects -0:? 'Position' (uniform samplerBuffer) 0:? '@entryPointOutput' (out 4-component vector of float Position) 0:? 'Index' (in uint VertexIndex) +0:? 'Position' (layout(rgba32f ) uniform samplerBuffer) // Module Version 10000 // Generated by (magic number): 80001 @@ -81,7 +81,7 @@ Shader version: 450 8: TypeFloat 32 9: TypeVector 8(float) 4 10: TypeFunction 9(fvec4) 7(ptr) - 14: TypeImage 8(float) Buffer sampled format:Unknown + 14: TypeImage 8(float) Buffer sampled format:Rgba32f 15: TypeSampledImage 14 16: TypePointer UniformConstant 15 17(Position): 16(ptr) Variable UniformConstant diff --git a/Test/baseResults/hlsl.multiReturn.frag.out b/Test/baseResults/hlsl.multiReturn.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..80d7f1661b127896ab92ffbaa10dda6e2a4d21dd --- /dev/null +++ b/Test/baseResults/hlsl.multiReturn.frag.out @@ -0,0 +1,113 @@ +hlsl.multiReturn.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 s: direct index for structure (layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) +0:13 Constant: +0:13 0 (const uint) +0:17 Function Definition: main( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 Function Call: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:12 Function Definition: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:12 Function Parameters: +0:? Sequence +0:13 Branch: Return with expression +0:13 s: direct index for structure (layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:13 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) +0:13 Constant: +0:13 0 (const uint) +0:17 Function Definition: main( (temp void) +0:17 Function Parameters: +0:? Sequence +0:18 Function Call: foo( (temp structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m}) +0:? Linker Objects +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(row_major std140 ) uniform structure{temp float f, temp 3-component vector of float v, temp 3X3 matrix of float m} s}) + +// 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 "main" + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "S" + MemberName 9(S) 0 "f" + MemberName 9(S) 1 "v" + MemberName 9(S) 2 "m" + Name 11 "foo(" + Name 13 "S" + MemberName 13(S) 0 "f" + MemberName 13(S) 1 "v" + MemberName 13(S) 2 "m" + Name 14 "bufName" + MemberName 14(bufName) 0 "s" + Name 16 "" + MemberDecorate 13(S) 0 Offset 0 + MemberDecorate 13(S) 1 Offset 16 + MemberDecorate 13(S) 2 RowMajor + MemberDecorate 13(S) 2 Offset 32 + MemberDecorate 13(S) 2 MatrixStride 16 + MemberDecorate 14(bufName) 0 Offset 0 + Decorate 14(bufName) Block + Decorate 16 DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 3 + 8: TypeMatrix 7(fvec3) 3 + 9(S): TypeStruct 6(float) 7(fvec3) 8 + 10: TypeFunction 9(S) + 13(S): TypeStruct 6(float) 7(fvec3) 8 + 14(bufName): TypeStruct 13(S) + 15: TypePointer Uniform 14(bufName) + 16: 15(ptr) Variable Uniform + 17: TypeInt 32 1 + 18: 17(int) Constant 0 + 19: TypePointer Uniform 13(S) + 22: TypePointer Function 9(S) + 25: TypePointer Function 6(float) + 28: 17(int) Constant 1 + 29: TypePointer Function 7(fvec3) + 32: 17(int) Constant 2 + 33: TypePointer Function 8 + 4(main): 2 Function None 3 + 5: Label + 38: 9(S) FunctionCall 11(foo() + Return + FunctionEnd + 11(foo(): 9(S) Function None 10 + 12: Label + 23: 22(ptr) Variable Function + 20: 19(ptr) AccessChain 16 18 + 21: 13(S) Load 20 + 24: 6(float) CompositeExtract 21 0 + 26: 25(ptr) AccessChain 23 18 + Store 26 24 + 27: 7(fvec3) CompositeExtract 21 1 + 30: 29(ptr) AccessChain 23 28 + Store 30 27 + 31: 8 CompositeExtract 21 2 + 34: 33(ptr) AccessChain 23 32 + Store 34 31 + 35: 9(S) Load 23 + ReturnValue 35 + FunctionEnd diff --git a/Test/baseResults/hlsl.numericsuffixes.frag.out b/Test/baseResults/hlsl.numericsuffixes.frag.out index 168065bb54630bef429bb5c321c562ddfdc9a712..e8d3630ed2cf2a84a05bf03d43130f829327487a 100644 --- a/Test/baseResults/hlsl.numericsuffixes.frag.out +++ b/Test/baseResults/hlsl.numericsuffixes.frag.out @@ -2,7 +2,7 @@ hlsl.numericsuffixes.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:5 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence @@ -58,8 +58,8 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:? Sequence -0:? Sequence +0:19 Sequence +0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:19 color: direct index for structure (temp 4-component vector of float) @@ -77,7 +77,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:5 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:5 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:5 Function Parameters: 0:? Sequence 0:7 Sequence @@ -133,8 +133,8 @@ gl_FragCoord origin is upper left 0:18 Construct vec4 (temp 4-component vector of float) 0:18 Convert int to float (temp float) 0:18 'r07' (temp int) -0:? Sequence -0:? Sequence +0:19 Sequence +0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:19 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.numthreads.comp.out b/Test/baseResults/hlsl.numthreads.comp.out new file mode 100644 index 0000000000000000000000000000000000000000..76e95c8f86bc5e91a3fc67b581e820c336da18f8 --- /dev/null +++ b/Test/baseResults/hlsl.numthreads.comp.out @@ -0,0 +1,60 @@ +hlsl.numthreads.comp +Shader version: 450 +local_size = (4, 4, 2) +0:? Sequence +0:4 Function Definition: main(vu3; (temp void) +0:4 Function Parameters: +0:4 'tid' (in 3-component vector of uint) +0:9 Function Definition: main_aux1(vu3; (temp void) +0:9 Function Parameters: +0:9 'tid' (in 3-component vector of uint LocalInvocationID) +0:? Linker Objects +0:? 'tid' (in 3-component vector of uint LocalInvocationID) + + +Linked compute stage: + + +Shader version: 450 +local_size = (4, 4, 2) +0:? Sequence +0:4 Function Definition: main(vu3; (temp void) +0:4 Function Parameters: +0:4 'tid' (in 3-component vector of uint) +0:9 Function Definition: main_aux1(vu3; (temp void) +0:9 Function Parameters: +0:9 'tid' (in 3-component vector of uint LocalInvocationID) +0:? Linker Objects +0:? 'tid' (in 3-component vector of uint LocalInvocationID) + +// 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 "main_aux1" 14 + ExecutionMode 4 LocalSize 4 4 2 + Name 4 "main_aux1" + Name 11 "main(vu3;" + Name 10 "tid" + Name 14 "tid" + Decorate 14(tid) BuiltIn LocalInvocationId + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 3 + 8: TypePointer Function 7(ivec3) + 9: TypeFunction 2 8(ptr) + 13: TypePointer Input 7(ivec3) + 14(tid): 13(ptr) Variable Input + 4(main_aux1): 2 Function None 3 + 5: Label + Return + FunctionEnd + 11(main(vu3;): 2 Function None 9 + 10(tid): 8(ptr) FunctionParameter + 12: Label + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.overload.frag.out b/Test/baseResults/hlsl.overload.frag.out index 0e0f4707fbbdcd089dac9f4eea1bee0dd6a01112..4eed1a3fc5fbcedba6184f832df6ca026ca90b4a 100755 --- a/Test/baseResults/hlsl.overload.frag.out +++ b/Test/baseResults/hlsl.overload.frag.out @@ -2,349 +2,349 @@ hlsl.overload.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1(d1;b1; (global void) +0:2 Function Definition: foo1(d1;b1; (temp void) 0:2 Function Parameters: 0:2 'a' (in double) 0:2 'b' (in bool) -0:3 Function Definition: foo1(d1;u1; (global void) +0:3 Function Definition: foo1(d1;u1; (temp void) 0:3 Function Parameters: 0:3 'a' (in double) 0:3 'b' (in uint) -0:4 Function Definition: foo1(d1;i1; (global void) +0:4 Function Definition: foo1(d1;i1; (temp void) 0:4 Function Parameters: 0:4 'a' (in double) 0:4 'b' (in int) -0:5 Function Definition: foo1(d1;f1; (global void) +0:5 Function Definition: foo1(d1;f1; (temp void) 0:5 Function Parameters: 0:5 'a' (in double) 0:5 'b' (in float) -0:6 Function Definition: foo1(d1;d1; (global void) +0:6 Function Definition: foo1(d1;d1; (temp void) 0:6 Function Parameters: 0:6 'a' (in double) 0:6 'b' (in double) -0:9 Function Definition: foo2(i1;b1; (global void) +0:9 Function Definition: foo2(i1;b1; (temp void) 0:9 Function Parameters: 0:9 'a' (in int) 0:9 'b' (in bool) -0:10 Function Definition: foo2(i1;u1; (global void) +0:10 Function Definition: foo2(i1;u1; (temp void) 0:10 Function Parameters: 0:10 'a' (in int) 0:10 'b' (in uint) -0:11 Function Definition: foo2(i1;i1; (global void) +0:11 Function Definition: foo2(i1;i1; (temp void) 0:11 Function Parameters: 0:11 'a' (in int) 0:11 'b' (in int) -0:12 Function Definition: foo2(i1;f1; (global void) +0:12 Function Definition: foo2(i1;f1; (temp void) 0:12 Function Parameters: 0:12 'a' (in int) 0:12 'b' (in float) -0:13 Function Definition: foo2(i1;d1; (global void) +0:13 Function Definition: foo2(i1;d1; (temp void) 0:13 Function Parameters: 0:13 'a' (in int) 0:13 'b' (in double) -0:16 Function Definition: foo3(b1; (global void) +0:16 Function Definition: foo3(b1; (temp void) 0:16 Function Parameters: 0:16 'b' (in bool) -0:17 Function Definition: foo4(u1; (global void) +0:17 Function Definition: foo4(u1; (temp void) 0:17 Function Parameters: 0:17 'b' (in uint) -0:18 Function Definition: foo5(i1; (global void) +0:18 Function Definition: foo5(i1; (temp void) 0:18 Function Parameters: 0:18 'b' (in int) -0:19 Function Definition: foo6(f1; (global void) +0:19 Function Definition: foo6(f1; (temp void) 0:19 Function Parameters: 0:19 'b' (in float) -0:20 Function Definition: foo7(d1; (global void) +0:20 Function Definition: foo7(d1; (temp void) 0:20 Function Parameters: 0:20 'b' (in double) -0:23 Function Definition: foo8(f1; (global void) +0:23 Function Definition: foo8(f1; (temp void) 0:23 Function Parameters: 0:23 '' (in float) -0:24 Function Definition: foo8(d1; (global void) +0:24 Function Definition: foo8(d1; (temp void) 0:24 Function Parameters: 0:24 '' (in double) -0:25 Function Definition: foo9(i1; (global void) +0:25 Function Definition: foo9(i1; (temp void) 0:25 Function Parameters: 0:25 '' (in int) -0:26 Function Definition: foo9(u1; (global void) +0:26 Function Definition: foo9(u1; (temp void) 0:26 Function Parameters: 0:26 '' (in uint) -0:27 Function Definition: foo10(b1; (global void) +0:27 Function Definition: foo10(b1; (temp void) 0:27 Function Parameters: 0:27 '' (in bool) -0:28 Function Definition: foo10(i1; (global void) +0:28 Function Definition: foo10(i1; (temp void) 0:28 Function Parameters: 0:28 '' (in int) -0:31 Function Definition: foo11(vf3; (global void) +0:31 Function Definition: foo11(vf3; (temp void) 0:31 Function Parameters: 0:31 '' (in 3-component vector of float) -0:32 Function Definition: foo11(d1; (global void) +0:32 Function Definition: foo11(d1; (temp void) 0:32 Function Parameters: 0:32 '' (in double) -0:33 Function Definition: foo11(vi3; (global void) +0:33 Function Definition: foo11(vi3; (temp void) 0:33 Function Parameters: 0:33 '' (in 3-component vector of int) -0:34 Function Definition: foo11(u1; (global void) +0:34 Function Definition: foo11(u1; (temp void) 0:34 Function Parameters: 0:34 '' (in uint) -0:35 Function Definition: foo12(vf1; (global void) +0:35 Function Definition: foo12(vf1; (temp void) 0:35 Function Parameters: 0:35 '' (in 1-component vector of float) -0:36 Function Definition: foo12(vd3; (global void) +0:36 Function Definition: foo12(vd3; (temp void) 0:36 Function Parameters: 0:36 '' (in 3-component vector of double) -0:37 Function Definition: foo16(u1; (global void) +0:37 Function Definition: foo16(u1; (temp void) 0:37 Function Parameters: 0:37 '' (in uint) -0:38 Function Definition: foo16(vu2; (global void) +0:38 Function Definition: foo16(vu2; (temp void) 0:38 Function Parameters: 0:38 '' (in 2-component vector of uint) -0:41 Function Definition: foo13(vf3; (global void) +0:41 Function Definition: foo13(vf3; (temp void) 0:41 Function Parameters: 0:41 '' (in 3-component vector of float) -0:42 Function Definition: foo14(vi1; (global void) +0:42 Function Definition: foo14(vi1; (temp void) 0:42 Function Parameters: 0:42 '' (in 1-component vector of int) -0:43 Function Definition: foo15(vb1; (global void) +0:43 Function Definition: foo15(vb1; (temp void) 0:43 Function Parameters: 0:43 '' (in 1-component vector of bool) -0:46 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:46 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:46 Function Parameters: 0:46 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:53 Function Call: foo1(d1;b1; (global void) +0:53 Function Call: foo1(d1;b1; (temp void) 0:53 'd' (temp double) 0:53 'b' (temp bool) -0:54 Function Call: foo1(d1;d1; (global void) +0:54 Function Call: foo1(d1;d1; (temp void) 0:54 'd' (temp double) 0:54 'd' (temp double) -0:55 Function Call: foo1(d1;u1; (global void) +0:55 Function Call: foo1(d1;u1; (temp void) 0:55 'd' (temp double) 0:55 'u' (temp uint) -0:56 Function Call: foo1(d1;i1; (global void) +0:56 Function Call: foo1(d1;i1; (temp void) 0:56 'd' (temp double) 0:56 'i' (temp int) -0:57 Function Call: foo1(d1;f1; (global void) +0:57 Function Call: foo1(d1;f1; (temp void) 0:57 'd' (temp double) 0:57 'f' (temp float) -0:59 Function Call: foo1(d1;b1; (global void) +0:59 Function Call: foo1(d1;b1; (temp void) 0:59 Convert float to double (temp double) 0:59 'f' (temp float) 0:59 'b' (temp bool) -0:60 Function Call: foo1(d1;d1; (global void) +0:60 Function Call: foo1(d1;d1; (temp void) 0:60 Convert float to double (temp double) 0:60 'f' (temp float) 0:60 'd' (temp double) -0:61 Function Call: foo1(d1;u1; (global void) +0:61 Function Call: foo1(d1;u1; (temp void) 0:61 Convert float to double (temp double) 0:61 'f' (temp float) 0:61 'u' (temp uint) -0:62 Function Call: foo1(d1;i1; (global void) +0:62 Function Call: foo1(d1;i1; (temp void) 0:62 Convert float to double (temp double) 0:62 'f' (temp float) 0:62 'i' (temp int) -0:63 Function Call: foo1(d1;f1; (global void) +0:63 Function Call: foo1(d1;f1; (temp void) 0:63 Convert float to double (temp double) 0:63 'f' (temp float) 0:63 'f' (temp float) -0:65 Function Call: foo1(d1;b1; (global void) +0:65 Function Call: foo1(d1;b1; (temp void) 0:65 Convert uint to double (temp double) 0:65 'u' (temp uint) 0:65 'b' (temp bool) -0:66 Function Call: foo1(d1;d1; (global void) +0:66 Function Call: foo1(d1;d1; (temp void) 0:66 Convert uint to double (temp double) 0:66 'u' (temp uint) 0:66 'd' (temp double) -0:67 Function Call: foo1(d1;u1; (global void) +0:67 Function Call: foo1(d1;u1; (temp void) 0:67 Convert uint to double (temp double) 0:67 'u' (temp uint) 0:67 'u' (temp uint) -0:68 Function Call: foo1(d1;i1; (global void) +0:68 Function Call: foo1(d1;i1; (temp void) 0:68 Convert uint to double (temp double) 0:68 'u' (temp uint) 0:68 'i' (temp int) -0:69 Function Call: foo1(d1;f1; (global void) +0:69 Function Call: foo1(d1;f1; (temp void) 0:69 Convert uint to double (temp double) 0:69 'u' (temp uint) 0:69 'f' (temp float) -0:71 Function Call: foo1(d1;b1; (global void) +0:71 Function Call: foo1(d1;b1; (temp void) 0:71 Convert int to double (temp double) 0:71 'i' (temp int) 0:71 'b' (temp bool) -0:72 Function Call: foo1(d1;d1; (global void) +0:72 Function Call: foo1(d1;d1; (temp void) 0:72 Convert int to double (temp double) 0:72 'i' (temp int) 0:72 'd' (temp double) -0:73 Function Call: foo1(d1;u1; (global void) +0:73 Function Call: foo1(d1;u1; (temp void) 0:73 Convert int to double (temp double) 0:73 'i' (temp int) 0:73 'u' (temp uint) -0:74 Function Call: foo1(d1;i1; (global void) +0:74 Function Call: foo1(d1;i1; (temp void) 0:74 Convert int to double (temp double) 0:74 'i' (temp int) 0:74 'i' (temp int) -0:75 Function Call: foo1(d1;f1; (global void) +0:75 Function Call: foo1(d1;f1; (temp void) 0:75 Convert int to double (temp double) 0:75 'i' (temp int) 0:75 'f' (temp float) -0:77 Function Call: foo2(i1;b1; (global void) +0:77 Function Call: foo2(i1;b1; (temp void) 0:77 Convert uint to int (temp int) 0:77 'u' (temp uint) 0:77 'b' (temp bool) -0:78 Function Call: foo2(i1;d1; (global void) +0:78 Function Call: foo2(i1;d1; (temp void) 0:78 Convert uint to int (temp int) 0:78 'u' (temp uint) 0:78 'd' (temp double) -0:79 Function Call: foo2(i1;u1; (global void) +0:79 Function Call: foo2(i1;u1; (temp void) 0:79 Convert uint to int (temp int) 0:79 'u' (temp uint) 0:79 'u' (temp uint) -0:80 Function Call: foo2(i1;i1; (global void) +0:80 Function Call: foo2(i1;i1; (temp void) 0:80 Convert uint to int (temp int) 0:80 'u' (temp uint) 0:80 'i' (temp int) -0:81 Function Call: foo2(i1;f1; (global void) +0:81 Function Call: foo2(i1;f1; (temp void) 0:81 Convert uint to int (temp int) 0:81 'u' (temp uint) 0:81 'f' (temp float) -0:83 Function Call: foo2(i1;b1; (global void) +0:83 Function Call: foo2(i1;b1; (temp void) 0:83 'i' (temp int) 0:83 'b' (temp bool) -0:84 Function Call: foo2(i1;d1; (global void) +0:84 Function Call: foo2(i1;d1; (temp void) 0:84 'i' (temp int) 0:84 'd' (temp double) -0:85 Function Call: foo2(i1;u1; (global void) +0:85 Function Call: foo2(i1;u1; (temp void) 0:85 'i' (temp int) 0:85 'u' (temp uint) -0:86 Function Call: foo2(i1;i1; (global void) +0:86 Function Call: foo2(i1;i1; (temp void) 0:86 'i' (temp int) 0:86 'i' (temp int) -0:87 Function Call: foo2(i1;f1; (global void) +0:87 Function Call: foo2(i1;f1; (temp void) 0:87 'i' (temp int) 0:87 'f' (temp float) -0:89 Function Call: foo3(b1; (global void) +0:89 Function Call: foo3(b1; (temp void) 0:89 'b' (temp bool) -0:90 Function Call: foo3(b1; (global void) +0:90 Function Call: foo3(b1; (temp void) 0:90 Convert double to bool (temp bool) 0:90 'd' (temp double) -0:91 Function Call: foo3(b1; (global void) +0:91 Function Call: foo3(b1; (temp void) 0:91 Convert uint to bool (temp bool) 0:91 'u' (temp uint) -0:92 Function Call: foo3(b1; (global void) +0:92 Function Call: foo3(b1; (temp void) 0:92 Convert int to bool (temp bool) 0:92 'i' (temp int) -0:93 Function Call: foo3(b1; (global void) +0:93 Function Call: foo3(b1; (temp void) 0:93 Convert float to bool (temp bool) 0:93 'f' (temp float) -0:95 Function Call: foo4(u1; (global void) +0:95 Function Call: foo4(u1; (temp void) 0:95 Convert bool to uint (temp uint) 0:95 'b' (temp bool) -0:96 Function Call: foo4(u1; (global void) +0:96 Function Call: foo4(u1; (temp void) 0:96 Convert double to uint (temp uint) 0:96 'd' (temp double) -0:97 Function Call: foo4(u1; (global void) +0:97 Function Call: foo4(u1; (temp void) 0:97 'u' (temp uint) -0:98 Function Call: foo4(u1; (global void) +0:98 Function Call: foo4(u1; (temp void) 0:98 Convert int to uint (temp uint) 0:98 'i' (temp int) -0:99 Function Call: foo4(u1; (global void) +0:99 Function Call: foo4(u1; (temp void) 0:99 Convert float to uint (temp uint) 0:99 'f' (temp float) -0:101 Function Call: foo5(i1; (global void) +0:101 Function Call: foo5(i1; (temp void) 0:101 Convert bool to int (temp int) 0:101 'b' (temp bool) -0:102 Function Call: foo5(i1; (global void) +0:102 Function Call: foo5(i1; (temp void) 0:102 Convert double to int (temp int) 0:102 'd' (temp double) -0:103 Function Call: foo5(i1; (global void) +0:103 Function Call: foo5(i1; (temp void) 0:103 Convert uint to int (temp int) 0:103 'u' (temp uint) -0:104 Function Call: foo5(i1; (global void) +0:104 Function Call: foo5(i1; (temp void) 0:104 'i' (temp int) -0:105 Function Call: foo5(i1; (global void) +0:105 Function Call: foo5(i1; (temp void) 0:105 Convert float to int (temp int) 0:105 'f' (temp float) -0:107 Function Call: foo6(f1; (global void) +0:107 Function Call: foo6(f1; (temp void) 0:107 Convert bool to float (temp float) 0:107 'b' (temp bool) -0:108 Function Call: foo6(f1; (global void) +0:108 Function Call: foo6(f1; (temp void) 0:108 Convert double to float (temp float) 0:108 'd' (temp double) -0:109 Function Call: foo6(f1; (global void) +0:109 Function Call: foo6(f1; (temp void) 0:109 Convert uint to float (temp float) 0:109 'u' (temp uint) -0:110 Function Call: foo6(f1; (global void) +0:110 Function Call: foo6(f1; (temp void) 0:110 Convert int to float (temp float) 0:110 'i' (temp int) -0:111 Function Call: foo6(f1; (global void) +0:111 Function Call: foo6(f1; (temp void) 0:111 'f' (temp float) -0:113 Function Call: foo7(d1; (global void) +0:113 Function Call: foo7(d1; (temp void) 0:113 Convert bool to double (temp double) 0:113 'b' (temp bool) -0:114 Function Call: foo7(d1; (global void) +0:114 Function Call: foo7(d1; (temp void) 0:114 'd' (temp double) -0:115 Function Call: foo7(d1; (global void) +0:115 Function Call: foo7(d1; (temp void) 0:115 Convert uint to double (temp double) 0:115 'u' (temp uint) -0:116 Function Call: foo7(d1; (global void) +0:116 Function Call: foo7(d1; (temp void) 0:116 Convert int to double (temp double) 0:116 'i' (temp int) -0:117 Function Call: foo7(d1; (global void) +0:117 Function Call: foo7(d1; (temp void) 0:117 Convert float to double (temp double) 0:117 'f' (temp float) -0:119 Function Call: foo8(f1; (global void) +0:119 Function Call: foo8(f1; (temp void) 0:119 Convert bool to float (temp float) 0:119 'b' (temp bool) -0:120 Function Call: foo8(f1; (global void) +0:120 Function Call: foo8(f1; (temp void) 0:120 Convert uint to float (temp float) 0:120 'u' (temp uint) -0:121 Function Call: foo8(f1; (global void) +0:121 Function Call: foo8(f1; (temp void) 0:121 Convert int to float (temp float) 0:121 'i' (temp int) -0:123 Function Call: foo9(i1; (global void) +0:123 Function Call: foo9(i1; (temp void) 0:123 Convert bool to int (temp int) 0:123 'b' (temp bool) -0:124 Function Call: foo9(u1; (global void) +0:124 Function Call: foo9(u1; (temp void) 0:124 Convert float to uint (temp uint) 0:124 'f' (temp float) -0:125 Function Call: foo9(u1; (global void) +0:125 Function Call: foo9(u1; (temp void) 0:125 Convert double to uint (temp uint) 0:125 'd' (temp double) -0:127 Function Call: foo10(i1; (global void) +0:127 Function Call: foo10(i1; (temp void) 0:127 Convert uint to int (temp int) 0:127 'u' (temp uint) -0:128 Function Call: foo10(i1; (global void) +0:128 Function Call: foo10(i1; (temp void) 0:128 Convert float to int (temp int) 0:128 'f' (temp float) -0:129 Function Call: foo10(i1; (global void) +0:129 Function Call: foo10(i1; (temp void) 0:129 Convert double to int (temp int) 0:129 'd' (temp double) -0:131 Function Call: foo11(u1; (global void) +0:131 Function Call: foo11(u1; (temp void) 0:131 Convert bool to uint (temp uint) 0:131 'b' (temp bool) -0:132 Function Call: foo11(d1; (global void) +0:132 Function Call: foo11(d1; (temp void) 0:132 Convert float to double (temp double) 0:132 'f' (temp float) -0:133 Function Call: foo12(vd3; (global void) +0:133 Function Call: foo12(vd3; (temp void) 0:133 Convert float to double (temp 3-component vector of double) 0:133 Construct vec3 (temp 3-component vector of float) 0:133 'f' (temp float) -0:134 Function Call: foo16(vu2; (global void) +0:134 Function Call: foo16(vu2; (temp void) 0:? Convert int to uint (temp 2-component vector of uint) 0:? Construct ivec2 (temp 2-component vector of int) 0:134 'i' (temp int) 0:134 'i' (temp int) -0:136 Function Call: foo13(vf3; (global void) +0:136 Function Call: foo13(vf3; (temp void) 0:136 Construct vec3 (in 3-component vector of float) 0:136 'f' (temp float) -0:137 Function Call: foo14(vi1; (global void) +0:137 Function Call: foo14(vi1; (temp void) 0:137 Construct int (in 1-component vector of int) 0:137 Construct ivec4 (temp 4-component vector of int) 0:137 'i' (temp int) -0:138 Function Call: foo15(vb1; (global void) +0:138 Function Call: foo15(vb1; (temp void) 0:138 Construct bool (in 1-component vector of bool) 0:138 'b' (temp bool) -0:139 Function Call: foo15(vb1; (global void) +0:139 Function Call: foo15(vb1; (temp void) 0:139 Construct bool (in 1-component vector of bool) 0:139 Construct bvec3 (temp 3-component vector of bool) 0:139 'b' (temp bool) @@ -364,349 +364,349 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: foo1(d1;b1; (global void) +0:2 Function Definition: foo1(d1;b1; (temp void) 0:2 Function Parameters: 0:2 'a' (in double) 0:2 'b' (in bool) -0:3 Function Definition: foo1(d1;u1; (global void) +0:3 Function Definition: foo1(d1;u1; (temp void) 0:3 Function Parameters: 0:3 'a' (in double) 0:3 'b' (in uint) -0:4 Function Definition: foo1(d1;i1; (global void) +0:4 Function Definition: foo1(d1;i1; (temp void) 0:4 Function Parameters: 0:4 'a' (in double) 0:4 'b' (in int) -0:5 Function Definition: foo1(d1;f1; (global void) +0:5 Function Definition: foo1(d1;f1; (temp void) 0:5 Function Parameters: 0:5 'a' (in double) 0:5 'b' (in float) -0:6 Function Definition: foo1(d1;d1; (global void) +0:6 Function Definition: foo1(d1;d1; (temp void) 0:6 Function Parameters: 0:6 'a' (in double) 0:6 'b' (in double) -0:9 Function Definition: foo2(i1;b1; (global void) +0:9 Function Definition: foo2(i1;b1; (temp void) 0:9 Function Parameters: 0:9 'a' (in int) 0:9 'b' (in bool) -0:10 Function Definition: foo2(i1;u1; (global void) +0:10 Function Definition: foo2(i1;u1; (temp void) 0:10 Function Parameters: 0:10 'a' (in int) 0:10 'b' (in uint) -0:11 Function Definition: foo2(i1;i1; (global void) +0:11 Function Definition: foo2(i1;i1; (temp void) 0:11 Function Parameters: 0:11 'a' (in int) 0:11 'b' (in int) -0:12 Function Definition: foo2(i1;f1; (global void) +0:12 Function Definition: foo2(i1;f1; (temp void) 0:12 Function Parameters: 0:12 'a' (in int) 0:12 'b' (in float) -0:13 Function Definition: foo2(i1;d1; (global void) +0:13 Function Definition: foo2(i1;d1; (temp void) 0:13 Function Parameters: 0:13 'a' (in int) 0:13 'b' (in double) -0:16 Function Definition: foo3(b1; (global void) +0:16 Function Definition: foo3(b1; (temp void) 0:16 Function Parameters: 0:16 'b' (in bool) -0:17 Function Definition: foo4(u1; (global void) +0:17 Function Definition: foo4(u1; (temp void) 0:17 Function Parameters: 0:17 'b' (in uint) -0:18 Function Definition: foo5(i1; (global void) +0:18 Function Definition: foo5(i1; (temp void) 0:18 Function Parameters: 0:18 'b' (in int) -0:19 Function Definition: foo6(f1; (global void) +0:19 Function Definition: foo6(f1; (temp void) 0:19 Function Parameters: 0:19 'b' (in float) -0:20 Function Definition: foo7(d1; (global void) +0:20 Function Definition: foo7(d1; (temp void) 0:20 Function Parameters: 0:20 'b' (in double) -0:23 Function Definition: foo8(f1; (global void) +0:23 Function Definition: foo8(f1; (temp void) 0:23 Function Parameters: 0:23 '' (in float) -0:24 Function Definition: foo8(d1; (global void) +0:24 Function Definition: foo8(d1; (temp void) 0:24 Function Parameters: 0:24 '' (in double) -0:25 Function Definition: foo9(i1; (global void) +0:25 Function Definition: foo9(i1; (temp void) 0:25 Function Parameters: 0:25 '' (in int) -0:26 Function Definition: foo9(u1; (global void) +0:26 Function Definition: foo9(u1; (temp void) 0:26 Function Parameters: 0:26 '' (in uint) -0:27 Function Definition: foo10(b1; (global void) +0:27 Function Definition: foo10(b1; (temp void) 0:27 Function Parameters: 0:27 '' (in bool) -0:28 Function Definition: foo10(i1; (global void) +0:28 Function Definition: foo10(i1; (temp void) 0:28 Function Parameters: 0:28 '' (in int) -0:31 Function Definition: foo11(vf3; (global void) +0:31 Function Definition: foo11(vf3; (temp void) 0:31 Function Parameters: 0:31 '' (in 3-component vector of float) -0:32 Function Definition: foo11(d1; (global void) +0:32 Function Definition: foo11(d1; (temp void) 0:32 Function Parameters: 0:32 '' (in double) -0:33 Function Definition: foo11(vi3; (global void) +0:33 Function Definition: foo11(vi3; (temp void) 0:33 Function Parameters: 0:33 '' (in 3-component vector of int) -0:34 Function Definition: foo11(u1; (global void) +0:34 Function Definition: foo11(u1; (temp void) 0:34 Function Parameters: 0:34 '' (in uint) -0:35 Function Definition: foo12(vf1; (global void) +0:35 Function Definition: foo12(vf1; (temp void) 0:35 Function Parameters: 0:35 '' (in 1-component vector of float) -0:36 Function Definition: foo12(vd3; (global void) +0:36 Function Definition: foo12(vd3; (temp void) 0:36 Function Parameters: 0:36 '' (in 3-component vector of double) -0:37 Function Definition: foo16(u1; (global void) +0:37 Function Definition: foo16(u1; (temp void) 0:37 Function Parameters: 0:37 '' (in uint) -0:38 Function Definition: foo16(vu2; (global void) +0:38 Function Definition: foo16(vu2; (temp void) 0:38 Function Parameters: 0:38 '' (in 2-component vector of uint) -0:41 Function Definition: foo13(vf3; (global void) +0:41 Function Definition: foo13(vf3; (temp void) 0:41 Function Parameters: 0:41 '' (in 3-component vector of float) -0:42 Function Definition: foo14(vi1; (global void) +0:42 Function Definition: foo14(vi1; (temp void) 0:42 Function Parameters: 0:42 '' (in 1-component vector of int) -0:43 Function Definition: foo15(vb1; (global void) +0:43 Function Definition: foo15(vb1; (temp void) 0:43 Function Parameters: 0:43 '' (in 1-component vector of bool) -0:46 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:46 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:46 Function Parameters: 0:46 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:53 Function Call: foo1(d1;b1; (global void) +0:53 Function Call: foo1(d1;b1; (temp void) 0:53 'd' (temp double) 0:53 'b' (temp bool) -0:54 Function Call: foo1(d1;d1; (global void) +0:54 Function Call: foo1(d1;d1; (temp void) 0:54 'd' (temp double) 0:54 'd' (temp double) -0:55 Function Call: foo1(d1;u1; (global void) +0:55 Function Call: foo1(d1;u1; (temp void) 0:55 'd' (temp double) 0:55 'u' (temp uint) -0:56 Function Call: foo1(d1;i1; (global void) +0:56 Function Call: foo1(d1;i1; (temp void) 0:56 'd' (temp double) 0:56 'i' (temp int) -0:57 Function Call: foo1(d1;f1; (global void) +0:57 Function Call: foo1(d1;f1; (temp void) 0:57 'd' (temp double) 0:57 'f' (temp float) -0:59 Function Call: foo1(d1;b1; (global void) +0:59 Function Call: foo1(d1;b1; (temp void) 0:59 Convert float to double (temp double) 0:59 'f' (temp float) 0:59 'b' (temp bool) -0:60 Function Call: foo1(d1;d1; (global void) +0:60 Function Call: foo1(d1;d1; (temp void) 0:60 Convert float to double (temp double) 0:60 'f' (temp float) 0:60 'd' (temp double) -0:61 Function Call: foo1(d1;u1; (global void) +0:61 Function Call: foo1(d1;u1; (temp void) 0:61 Convert float to double (temp double) 0:61 'f' (temp float) 0:61 'u' (temp uint) -0:62 Function Call: foo1(d1;i1; (global void) +0:62 Function Call: foo1(d1;i1; (temp void) 0:62 Convert float to double (temp double) 0:62 'f' (temp float) 0:62 'i' (temp int) -0:63 Function Call: foo1(d1;f1; (global void) +0:63 Function Call: foo1(d1;f1; (temp void) 0:63 Convert float to double (temp double) 0:63 'f' (temp float) 0:63 'f' (temp float) -0:65 Function Call: foo1(d1;b1; (global void) +0:65 Function Call: foo1(d1;b1; (temp void) 0:65 Convert uint to double (temp double) 0:65 'u' (temp uint) 0:65 'b' (temp bool) -0:66 Function Call: foo1(d1;d1; (global void) +0:66 Function Call: foo1(d1;d1; (temp void) 0:66 Convert uint to double (temp double) 0:66 'u' (temp uint) 0:66 'd' (temp double) -0:67 Function Call: foo1(d1;u1; (global void) +0:67 Function Call: foo1(d1;u1; (temp void) 0:67 Convert uint to double (temp double) 0:67 'u' (temp uint) 0:67 'u' (temp uint) -0:68 Function Call: foo1(d1;i1; (global void) +0:68 Function Call: foo1(d1;i1; (temp void) 0:68 Convert uint to double (temp double) 0:68 'u' (temp uint) 0:68 'i' (temp int) -0:69 Function Call: foo1(d1;f1; (global void) +0:69 Function Call: foo1(d1;f1; (temp void) 0:69 Convert uint to double (temp double) 0:69 'u' (temp uint) 0:69 'f' (temp float) -0:71 Function Call: foo1(d1;b1; (global void) +0:71 Function Call: foo1(d1;b1; (temp void) 0:71 Convert int to double (temp double) 0:71 'i' (temp int) 0:71 'b' (temp bool) -0:72 Function Call: foo1(d1;d1; (global void) +0:72 Function Call: foo1(d1;d1; (temp void) 0:72 Convert int to double (temp double) 0:72 'i' (temp int) 0:72 'd' (temp double) -0:73 Function Call: foo1(d1;u1; (global void) +0:73 Function Call: foo1(d1;u1; (temp void) 0:73 Convert int to double (temp double) 0:73 'i' (temp int) 0:73 'u' (temp uint) -0:74 Function Call: foo1(d1;i1; (global void) +0:74 Function Call: foo1(d1;i1; (temp void) 0:74 Convert int to double (temp double) 0:74 'i' (temp int) 0:74 'i' (temp int) -0:75 Function Call: foo1(d1;f1; (global void) +0:75 Function Call: foo1(d1;f1; (temp void) 0:75 Convert int to double (temp double) 0:75 'i' (temp int) 0:75 'f' (temp float) -0:77 Function Call: foo2(i1;b1; (global void) +0:77 Function Call: foo2(i1;b1; (temp void) 0:77 Convert uint to int (temp int) 0:77 'u' (temp uint) 0:77 'b' (temp bool) -0:78 Function Call: foo2(i1;d1; (global void) +0:78 Function Call: foo2(i1;d1; (temp void) 0:78 Convert uint to int (temp int) 0:78 'u' (temp uint) 0:78 'd' (temp double) -0:79 Function Call: foo2(i1;u1; (global void) +0:79 Function Call: foo2(i1;u1; (temp void) 0:79 Convert uint to int (temp int) 0:79 'u' (temp uint) 0:79 'u' (temp uint) -0:80 Function Call: foo2(i1;i1; (global void) +0:80 Function Call: foo2(i1;i1; (temp void) 0:80 Convert uint to int (temp int) 0:80 'u' (temp uint) 0:80 'i' (temp int) -0:81 Function Call: foo2(i1;f1; (global void) +0:81 Function Call: foo2(i1;f1; (temp void) 0:81 Convert uint to int (temp int) 0:81 'u' (temp uint) 0:81 'f' (temp float) -0:83 Function Call: foo2(i1;b1; (global void) +0:83 Function Call: foo2(i1;b1; (temp void) 0:83 'i' (temp int) 0:83 'b' (temp bool) -0:84 Function Call: foo2(i1;d1; (global void) +0:84 Function Call: foo2(i1;d1; (temp void) 0:84 'i' (temp int) 0:84 'd' (temp double) -0:85 Function Call: foo2(i1;u1; (global void) +0:85 Function Call: foo2(i1;u1; (temp void) 0:85 'i' (temp int) 0:85 'u' (temp uint) -0:86 Function Call: foo2(i1;i1; (global void) +0:86 Function Call: foo2(i1;i1; (temp void) 0:86 'i' (temp int) 0:86 'i' (temp int) -0:87 Function Call: foo2(i1;f1; (global void) +0:87 Function Call: foo2(i1;f1; (temp void) 0:87 'i' (temp int) 0:87 'f' (temp float) -0:89 Function Call: foo3(b1; (global void) +0:89 Function Call: foo3(b1; (temp void) 0:89 'b' (temp bool) -0:90 Function Call: foo3(b1; (global void) +0:90 Function Call: foo3(b1; (temp void) 0:90 Convert double to bool (temp bool) 0:90 'd' (temp double) -0:91 Function Call: foo3(b1; (global void) +0:91 Function Call: foo3(b1; (temp void) 0:91 Convert uint to bool (temp bool) 0:91 'u' (temp uint) -0:92 Function Call: foo3(b1; (global void) +0:92 Function Call: foo3(b1; (temp void) 0:92 Convert int to bool (temp bool) 0:92 'i' (temp int) -0:93 Function Call: foo3(b1; (global void) +0:93 Function Call: foo3(b1; (temp void) 0:93 Convert float to bool (temp bool) 0:93 'f' (temp float) -0:95 Function Call: foo4(u1; (global void) +0:95 Function Call: foo4(u1; (temp void) 0:95 Convert bool to uint (temp uint) 0:95 'b' (temp bool) -0:96 Function Call: foo4(u1; (global void) +0:96 Function Call: foo4(u1; (temp void) 0:96 Convert double to uint (temp uint) 0:96 'd' (temp double) -0:97 Function Call: foo4(u1; (global void) +0:97 Function Call: foo4(u1; (temp void) 0:97 'u' (temp uint) -0:98 Function Call: foo4(u1; (global void) +0:98 Function Call: foo4(u1; (temp void) 0:98 Convert int to uint (temp uint) 0:98 'i' (temp int) -0:99 Function Call: foo4(u1; (global void) +0:99 Function Call: foo4(u1; (temp void) 0:99 Convert float to uint (temp uint) 0:99 'f' (temp float) -0:101 Function Call: foo5(i1; (global void) +0:101 Function Call: foo5(i1; (temp void) 0:101 Convert bool to int (temp int) 0:101 'b' (temp bool) -0:102 Function Call: foo5(i1; (global void) +0:102 Function Call: foo5(i1; (temp void) 0:102 Convert double to int (temp int) 0:102 'd' (temp double) -0:103 Function Call: foo5(i1; (global void) +0:103 Function Call: foo5(i1; (temp void) 0:103 Convert uint to int (temp int) 0:103 'u' (temp uint) -0:104 Function Call: foo5(i1; (global void) +0:104 Function Call: foo5(i1; (temp void) 0:104 'i' (temp int) -0:105 Function Call: foo5(i1; (global void) +0:105 Function Call: foo5(i1; (temp void) 0:105 Convert float to int (temp int) 0:105 'f' (temp float) -0:107 Function Call: foo6(f1; (global void) +0:107 Function Call: foo6(f1; (temp void) 0:107 Convert bool to float (temp float) 0:107 'b' (temp bool) -0:108 Function Call: foo6(f1; (global void) +0:108 Function Call: foo6(f1; (temp void) 0:108 Convert double to float (temp float) 0:108 'd' (temp double) -0:109 Function Call: foo6(f1; (global void) +0:109 Function Call: foo6(f1; (temp void) 0:109 Convert uint to float (temp float) 0:109 'u' (temp uint) -0:110 Function Call: foo6(f1; (global void) +0:110 Function Call: foo6(f1; (temp void) 0:110 Convert int to float (temp float) 0:110 'i' (temp int) -0:111 Function Call: foo6(f1; (global void) +0:111 Function Call: foo6(f1; (temp void) 0:111 'f' (temp float) -0:113 Function Call: foo7(d1; (global void) +0:113 Function Call: foo7(d1; (temp void) 0:113 Convert bool to double (temp double) 0:113 'b' (temp bool) -0:114 Function Call: foo7(d1; (global void) +0:114 Function Call: foo7(d1; (temp void) 0:114 'd' (temp double) -0:115 Function Call: foo7(d1; (global void) +0:115 Function Call: foo7(d1; (temp void) 0:115 Convert uint to double (temp double) 0:115 'u' (temp uint) -0:116 Function Call: foo7(d1; (global void) +0:116 Function Call: foo7(d1; (temp void) 0:116 Convert int to double (temp double) 0:116 'i' (temp int) -0:117 Function Call: foo7(d1; (global void) +0:117 Function Call: foo7(d1; (temp void) 0:117 Convert float to double (temp double) 0:117 'f' (temp float) -0:119 Function Call: foo8(f1; (global void) +0:119 Function Call: foo8(f1; (temp void) 0:119 Convert bool to float (temp float) 0:119 'b' (temp bool) -0:120 Function Call: foo8(f1; (global void) +0:120 Function Call: foo8(f1; (temp void) 0:120 Convert uint to float (temp float) 0:120 'u' (temp uint) -0:121 Function Call: foo8(f1; (global void) +0:121 Function Call: foo8(f1; (temp void) 0:121 Convert int to float (temp float) 0:121 'i' (temp int) -0:123 Function Call: foo9(i1; (global void) +0:123 Function Call: foo9(i1; (temp void) 0:123 Convert bool to int (temp int) 0:123 'b' (temp bool) -0:124 Function Call: foo9(u1; (global void) +0:124 Function Call: foo9(u1; (temp void) 0:124 Convert float to uint (temp uint) 0:124 'f' (temp float) -0:125 Function Call: foo9(u1; (global void) +0:125 Function Call: foo9(u1; (temp void) 0:125 Convert double to uint (temp uint) 0:125 'd' (temp double) -0:127 Function Call: foo10(i1; (global void) +0:127 Function Call: foo10(i1; (temp void) 0:127 Convert uint to int (temp int) 0:127 'u' (temp uint) -0:128 Function Call: foo10(i1; (global void) +0:128 Function Call: foo10(i1; (temp void) 0:128 Convert float to int (temp int) 0:128 'f' (temp float) -0:129 Function Call: foo10(i1; (global void) +0:129 Function Call: foo10(i1; (temp void) 0:129 Convert double to int (temp int) 0:129 'd' (temp double) -0:131 Function Call: foo11(u1; (global void) +0:131 Function Call: foo11(u1; (temp void) 0:131 Convert bool to uint (temp uint) 0:131 'b' (temp bool) -0:132 Function Call: foo11(d1; (global void) +0:132 Function Call: foo11(d1; (temp void) 0:132 Convert float to double (temp double) 0:132 'f' (temp float) -0:133 Function Call: foo12(vd3; (global void) +0:133 Function Call: foo12(vd3; (temp void) 0:133 Convert float to double (temp 3-component vector of double) 0:133 Construct vec3 (temp 3-component vector of float) 0:133 'f' (temp float) -0:134 Function Call: foo16(vu2; (global void) +0:134 Function Call: foo16(vu2; (temp void) 0:? Convert int to uint (temp 2-component vector of uint) 0:? Construct ivec2 (temp 2-component vector of int) 0:134 'i' (temp int) 0:134 'i' (temp int) -0:136 Function Call: foo13(vf3; (global void) +0:136 Function Call: foo13(vf3; (temp void) 0:136 Construct vec3 (in 3-component vector of float) 0:136 'f' (temp float) -0:137 Function Call: foo14(vi1; (global void) +0:137 Function Call: foo14(vi1; (temp void) 0:137 Construct int (in 1-component vector of int) 0:137 Construct ivec4 (temp 4-component vector of int) 0:137 'i' (temp int) -0:138 Function Call: foo15(vb1; (global void) +0:138 Function Call: foo15(vb1; (temp void) 0:138 Construct bool (in 1-component vector of bool) 0:138 'b' (temp bool) -0:139 Function Call: foo15(vb1; (global void) +0:139 Function Call: foo15(vb1; (temp void) 0:139 Construct bool (in 1-component vector of bool) 0:139 Construct bvec3 (temp 3-component vector of bool) 0:139 'b' (temp bool) diff --git a/Test/baseResults/hlsl.partialInit.frag.out b/Test/baseResults/hlsl.partialInit.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..5bf838a4a56179a65e6323a1185bd650f68eaa92 --- /dev/null +++ b/Test/baseResults/hlsl.partialInit.frag.out @@ -0,0 +1,418 @@ +hlsl.partialInit.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'gv' (global 4-component vector of float) +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 1.000000 +0:8 0.000000 +0:9 Sequence +0:9 move second child to first child (temp 3-element array of float) +0:9 'gfa' (global 3-element array of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:18 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Parameters: +0:18 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:19 Sequence +0:19 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 3 (const int) +0:19 0.000000 +0:19 false (const bool) +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:21 move second child to first child (temp 4-component vector of float) +0:21 v: direct index for structure (temp 4-component vector of float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 vector-scale (temp 4-component vector of float) +0:21 'gv' (global 4-component vector of float) +0:21 direct index (temp float) +0:21 'gfa' (global 3-element array of float) +0:21 Constant: +0:21 2 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 Constant: +0:22 0 (const int) +0:22 0.000000 +0:22 false (const bool) +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:23 Sequence +0:23 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 Constant: +0:23 0 (const int) +0:23 0.000000 +0:23 false (const bool) +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:24 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 Constant: +0:24 0 (const int) +0:24 0.000000 +0:24 false (const bool) +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:25 move second child to first child (temp bool) +0:25 c: direct index for structure (temp bool) +0:25 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:25 c: direct index for structure (temp bool) +0:25 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0 (const int) +0:26 0.000000 +0:26 false (const bool) +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 false (const bool) +0:28 Sequence +0:28 Sequence +0:28 move second child to first child (temp int) +0:? 'a' (layout(location=0 ) out int) +0:28 a: direct index for structure (temp int) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child (temp float) +0:? 'b' (layout(location=1 ) out float) +0:28 b: direct index for structure (temp float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 1 (const int) +0:28 move second child to first child (temp bool) +0:? 'c' (layout(location=2 ) out bool) +0:28 c: direct index for structure (temp bool) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 2 (const int) +0:28 move second child to first child (temp 4-component vector of float) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:28 v: direct index for structure (temp 4-component vector of float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 3 (const int) +0:28 Branch: Return +0:? Linker Objects +0:? 'a' (layout(location=0 ) out int) +0:? 'b' (layout(location=1 ) out float) +0:? 'c' (layout(location=2 ) out bool) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'gv' (global 4-component vector of float) +0:? 'gfa' (global 3-element array of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:8 'gv' (global 4-component vector of float) +0:8 Constant: +0:8 0.000000 +0:8 0.000000 +0:8 1.000000 +0:8 0.000000 +0:9 Sequence +0:9 move second child to first child (temp 3-element array of float) +0:9 'gfa' (global 3-element array of float) +0:9 Constant: +0:9 0.000000 +0:9 0.000000 +0:9 0.000000 +0:18 Function Definition: PixelShaderFunction(vf4; (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:18 Function Parameters: +0:18 'input' (layout(location=0 ) in 4-component vector of float) +0:? Sequence +0:19 Sequence +0:19 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 'o2' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:19 Constant: +0:19 3 (const int) +0:19 0.000000 +0:19 false (const bool) +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:19 0.000000 +0:21 move second child to first child (temp 4-component vector of float) +0:21 v: direct index for structure (temp 4-component vector of float) +0:21 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:21 Constant: +0:21 3 (const int) +0:21 vector-scale (temp 4-component vector of float) +0:21 'gv' (global 4-component vector of float) +0:21 direct index (temp float) +0:21 'gfa' (global 3-element array of float) +0:21 Constant: +0:21 2 (const int) +0:22 Sequence +0:22 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:22 Constant: +0:22 0 (const int) +0:22 0.000000 +0:22 false (const bool) +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:22 0.000000 +0:23 Sequence +0:23 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 'o3' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:23 Constant: +0:23 0 (const int) +0:23 0.000000 +0:23 false (const bool) +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:23 0.000000 +0:24 move second child to first child (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:24 Constant: +0:24 0 (const int) +0:24 0.000000 +0:24 false (const bool) +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:24 0.000000 +0:25 move second child to first child (temp bool) +0:25 c: direct index for structure (temp bool) +0:25 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:25 c: direct index for structure (temp bool) +0:25 'o1' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:25 Constant: +0:25 2 (const int) +0:26 Sequence +0:26 move second child to first child (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 'nest' (temp structure{temp 4X3 matrix of float m, temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v} os, temp bool b}) +0:26 Constant: +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0 (const int) +0:26 0.000000 +0:26 false (const bool) +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 0.000000 +0:26 false (const bool) +0:28 Sequence +0:28 Sequence +0:28 move second child to first child (temp int) +0:? 'a' (layout(location=0 ) out int) +0:28 a: direct index for structure (temp int) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 0 (const int) +0:28 move second child to first child (temp float) +0:? 'b' (layout(location=1 ) out float) +0:28 b: direct index for structure (temp float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 1 (const int) +0:28 move second child to first child (temp bool) +0:? 'c' (layout(location=2 ) out bool) +0:28 c: direct index for structure (temp bool) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 2 (const int) +0:28 move second child to first child (temp 4-component vector of float) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:28 v: direct index for structure (temp 4-component vector of float) +0:28 'o4' (temp structure{temp int a, temp float b, temp bool c, temp 4-component vector of float v}) +0:28 Constant: +0:28 3 (const int) +0:28 Branch: Return +0:? Linker Objects +0:? 'a' (layout(location=0 ) out int) +0:? 'b' (layout(location=1 ) out float) +0:? 'c' (layout(location=2 ) out bool) +0:? 'v' (layout(location=3 ) out 4-component vector of float) +0:? 'input' (layout(location=0 ) in 4-component vector of float) +0:? 'gv' (global 4-component vector of float) +0:? 'gfa' (global 3-element array of float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 75 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "PixelShaderFunction" 54 59 65 69 74 + ExecutionMode 4 OriginUpperLeft + Name 4 "PixelShaderFunction" + Name 9 "gv" + Name 17 "gfa" + Name 21 "outs" + MemberName 21(outs) 0 "a" + MemberName 21(outs) 1 "b" + MemberName 21(outs) 2 "c" + MemberName 21(outs) 3 "v" + Name 23 "o2" + Name 28 "o4" + Name 37 "o1" + Name 40 "o3" + Name 47 "Nest" + MemberName 47(Nest) 0 "m" + MemberName 47(Nest) 1 "os" + MemberName 47(Nest) 2 "b" + Name 49 "nest" + Name 54 "a" + Name 59 "b" + Name 65 "c" + Name 69 "v" + Name 74 "input" + Decorate 54(a) Location 0 + Decorate 59(b) Location 1 + Decorate 65(c) Location 2 + Decorate 69(v) Location 3 + Decorate 74(input) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Private 7(fvec4) + 9(gv): 8(ptr) Variable Private + 10: 6(float) Constant 0 + 11: 6(float) Constant 1065353216 + 12: 7(fvec4) ConstantComposite 10 10 11 10 + 13: TypeInt 32 0 + 14: 13(int) Constant 3 + 15: TypeArray 6(float) 14 + 16: TypePointer Private 15 + 17(gfa): 16(ptr) Variable Private + 18: 15 ConstantComposite 10 10 10 + 19: TypeInt 32 1 + 20: TypeBool + 21(outs): TypeStruct 19(int) 6(float) 20(bool) 7(fvec4) + 22: TypePointer Function 21(outs) + 24: 19(int) Constant 3 + 25: 20(bool) ConstantFalse + 26: 7(fvec4) ConstantComposite 10 10 10 10 + 27: 21(outs) ConstantComposite 24 10 25 26 + 30: 19(int) Constant 2 + 31: TypePointer Private 6(float) + 35: TypePointer Function 7(fvec4) + 38: 19(int) Constant 0 + 39: 21(outs) ConstantComposite 38 10 25 26 + 41: TypePointer Function 20(bool) + 45: TypeVector 6(float) 3 + 46: TypeMatrix 45(fvec3) 4 + 47(Nest): TypeStruct 46 21(outs) 20(bool) + 48: TypePointer Function 47(Nest) + 50: 45(fvec3) ConstantComposite 10 10 10 + 51: 46 ConstantComposite 50 50 50 50 + 52: 47(Nest) ConstantComposite 51 39 25 + 53: TypePointer Output 19(int) + 54(a): 53(ptr) Variable Output + 55: TypePointer Function 19(int) + 58: TypePointer Output 6(float) + 59(b): 58(ptr) Variable Output + 60: 19(int) Constant 1 + 61: TypePointer Function 6(float) + 64: TypePointer Output 20(bool) + 65(c): 64(ptr) Variable Output + 68: TypePointer Output 7(fvec4) + 69(v): 68(ptr) Variable Output + 73: TypePointer Input 7(fvec4) + 74(input): 73(ptr) Variable Input +4(PixelShaderFunction): 2 Function None 3 + 5: Label + 23(o2): 22(ptr) Variable Function + 28(o4): 22(ptr) Variable Function + 37(o1): 22(ptr) Variable Function + 40(o3): 22(ptr) Variable Function + 49(nest): 48(ptr) Variable Function + Store 9(gv) 12 + Store 17(gfa) 18 + Store 23(o2) 27 + 29: 7(fvec4) Load 9(gv) + 32: 31(ptr) AccessChain 17(gfa) 30 + 33: 6(float) Load 32 + 34: 7(fvec4) VectorTimesScalar 29 33 + 36: 35(ptr) AccessChain 28(o4) 24 + Store 36 34 + Store 37(o1) 39 + Store 40(o3) 39 + Store 28(o4) 39 + 42: 41(ptr) AccessChain 37(o1) 30 + 43: 20(bool) Load 42 + 44: 41(ptr) AccessChain 28(o4) 30 + Store 44 43 + Store 49(nest) 52 + 56: 55(ptr) AccessChain 28(o4) 38 + 57: 19(int) Load 56 + Store 54(a) 57 + 62: 61(ptr) AccessChain 28(o4) 60 + 63: 6(float) Load 62 + Store 59(b) 63 + 66: 41(ptr) AccessChain 28(o4) 30 + 67: 20(bool) Load 66 + Store 65(c) 67 + 70: 35(ptr) AccessChain 28(o4) 24 + 71: 7(fvec4) Load 70 + Store 69(v) 71 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.pp.line.frag.out b/Test/baseResults/hlsl.pp.line.frag.out index 95a2f25a606581fb745a27c06be3ae655e19f6b6..6bbbee645104cb5eee23621b5a58237fe0b0b88e 100644 --- a/Test/baseResults/hlsl.pp.line.frag.out +++ b/Test/baseResults/hlsl.pp.line.frag.out @@ -2,7 +2,7 @@ hlsl.pp.line.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:4 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -31,8 +31,8 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:? Sequence -0:? Sequence +0:129 Sequence +0:129 Sequence 0:129 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:129 Color: direct index for structure (temp 4-component vector of float) @@ -57,7 +57,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:4 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:4 Function Parameters: 0:? Sequence 0:124 Sequence @@ -86,8 +86,8 @@ gl_FragCoord origin is upper left 0:127 1 (const int) 0:127 Constant: 0:127 1.000000 -0:? Sequence -0:? Sequence +0:129 Sequence +0:129 Sequence 0:129 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:129 Color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out index e6338470cbdb0ece7d53aff67e90a9f3b146cdbe..1e18a405b8b211d2d28c29163807dcff1cf7431f 100755 --- a/Test/baseResults/hlsl.precedence.frag.out +++ b/Test/baseResults/hlsl.precedence.frag.out @@ -2,7 +2,7 @@ hlsl.precedence.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in 4-component vector of float) 0:7 'a2' (layout(location=1 ) in 4-component vector of float) @@ -59,7 +59,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (global 4-component vector of float) +0:7 Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in 4-component vector of float) 0:7 'a2' (layout(location=1 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out index 7021837b79ef18f1ebd1ad8d7dba01fe01e4f03e..64cce2c7365ed83652d3a2a8fe4bb94ac93b7d20 100755 --- a/Test/baseResults/hlsl.precedence2.frag.out +++ b/Test/baseResults/hlsl.precedence2.frag.out @@ -2,7 +2,7 @@ hlsl.precedence2.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) +0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in int) 0:7 'a2' (layout(location=1 ) in int) @@ -42,7 +42,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (global int) +0:7 Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int) 0:7 Function Parameters: 0:7 'a1' (layout(location=0 ) in int) 0:7 'a2' (layout(location=1 ) in int) diff --git a/Test/baseResults/hlsl.precise.frag.out b/Test/baseResults/hlsl.precise.frag.out index d76dc3f00c27c42d5db6f3457608d976bd41c32d..cd2af74658c1e17cd00bc97286e0c137eb98423d 100644 --- a/Test/baseResults/hlsl.precise.frag.out +++ b/Test/baseResults/hlsl.precise.frag.out @@ -2,11 +2,11 @@ hlsl.precise.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:6 Function Definition: MyFunction(f1;vf3; (global void) +0:6 Function Definition: MyFunction(f1;vf3; (temp void) 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:9 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:9 Function Definition: main( (temp structure{noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) @@ -19,8 +19,8 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:? Sequence -0:? Sequence +0:12 Sequence +0:12 Sequence 0:12 move second child to first child (noContraction temp 4-component vector of float) 0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) 0:12 color: direct index for structure (noContraction temp 4-component vector of float) @@ -29,8 +29,8 @@ gl_FragCoord origin is upper left 0:12 0 (const int) 0:12 Branch: Return 0:? Linker Objects -0:? 'precisefloat' (noContraction global float) 0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:? 'precisefloat' (noContraction global float) Linked fragment stage: @@ -39,11 +39,11 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:6 Function Definition: MyFunction(f1;vf3; (global void) +0:6 Function Definition: MyFunction(f1;vf3; (temp void) 0:6 Function Parameters: 0:6 'myfloat' (noContraction in float) 0:6 'myfloat3' (noContraction out 3-component vector of float) -0:9 Function Definition: main( (global structure{noContraction temp 4-component vector of float color}) +0:9 Function Definition: main( (temp structure{noContraction temp 4-component vector of float color}) 0:9 Function Parameters: 0:? Sequence 0:11 move second child to first child (noContraction temp 4-component vector of float) @@ -56,8 +56,8 @@ gl_FragCoord origin is upper left 0:11 1.000000 0:11 1.000000 0:11 1.000000 -0:? Sequence -0:? Sequence +0:12 Sequence +0:12 Sequence 0:12 move second child to first child (noContraction temp 4-component vector of float) 0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) 0:12 color: direct index for structure (noContraction temp 4-component vector of float) @@ -66,8 +66,8 @@ gl_FragCoord origin is upper left 0:12 0 (const int) 0:12 Branch: Return 0:? Linker Objects -0:? 'precisefloat' (noContraction global float) 0:? 'color' (layout(location=0 ) noContraction out 4-component vector of float) +0:? 'precisefloat' (noContraction global float) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.promote.atomic.frag.out b/Test/baseResults/hlsl.promote.atomic.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..7fa0cad86bd70f5b11f38466196dc12b39f7ca1c --- /dev/null +++ b/Test/baseResults/hlsl.promote.atomic.frag.out @@ -0,0 +1,109 @@ +hlsl.promote.atomic.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: main( (temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:13 move second child to first child (temp int) +0:13 'Orig' (temp int) +0:13 Convert uint to int (temp int) +0:13 imageAtomicAdd (temp uint) +0:13 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) +0:13 'Loc' (temp int) +0:13 Convert int to uint (temp uint) +0:13 'Inc' (temp int) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:5 Function Definition: main( (temp 4-component vector of float) +0:5 Function Parameters: +0:? Sequence +0:13 move second child to first child (temp int) +0:13 'Orig' (temp int) +0:13 Convert uint to int (temp int) +0:13 imageAtomicAdd (temp uint) +0:13 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) +0:13 'Loc' (temp int) +0:13 Convert int to uint (temp uint) +0:13 'Inc' (temp int) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 's_uintbuff' (layout(r32ui ) uniform uimageBuffer) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 31 + + Capability Shader + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 27 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "Orig" + Name 12 "s_uintbuff" + Name 13 "Loc" + Name 15 "Inc" + Name 27 "@entryPointOutput" + Decorate 12(s_uintbuff) DescriptorSet 0 + Decorate 27(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 9: TypeInt 32 0 + 10: TypeImage 9(int) Buffer nonsampled format:R32ui + 11: TypePointer UniformConstant 10 + 12(s_uintbuff): 11(ptr) Variable UniformConstant + 18: 9(int) Constant 0 + 19: TypePointer Image 9(int) + 21: 9(int) Constant 1 + 24: TypeFloat 32 + 25: TypeVector 24(float) 4 + 26: TypePointer Output 25(fvec4) +27(@entryPointOutput): 26(ptr) Variable Output + 28: 24(float) Constant 0 + 29: 25(fvec4) ConstantComposite 28 28 28 28 + 4(main): 2 Function None 3 + 5: Label + 8(Orig): 7(ptr) Variable Function + 13(Loc): 7(ptr) Variable Function + 15(Inc): 7(ptr) Variable Function + 14: 6(int) Load 13(Loc) + 16: 6(int) Load 15(Inc) + 17: 9(int) Bitcast 16 + 20: 19(ptr) ImageTexelPointer 12(s_uintbuff) 14 18 + 22: 9(int) AtomicIAdd 20 21 18 17 + 23: 6(int) Bitcast 22 + Store 8(Orig) 23 + Store 27(@entryPointOutput) 29 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.promote.binary.frag.out b/Test/baseResults/hlsl.promote.binary.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..2c7425e18a1c3f96263c1443bbddfd4df37e3535 --- /dev/null +++ b/Test/baseResults/hlsl.promote.binary.frag.out @@ -0,0 +1,280 @@ +hlsl.promote.binary.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod (temp float) +0:15 Convert int to float (temp float) +0:15 ival: direct index for structure (layout(offset=32 ) uniform int) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure (layout(offset=64 ) uniform float) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod (temp 4-component vector of float) +0:16 Convert int to float (temp 4-component vector of float) +0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod (temp float) +0:18 Convert bool to float (temp float) +0:18 bval: direct index for structure (layout(offset=0 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure (layout(offset=64 ) uniform float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod (temp 4-component vector of float) +0:19 Convert bool to float (temp 4-component vector of float) +0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child (temp int) +0:21 'l_int' (temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child (temp int) +0:22 'l_int' (temp int) +0:22 Convert float to int (temp int) +0:22 fval: direct index for structure (layout(offset=64 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:15 mod (temp float) +0:15 Convert int to float (temp float) +0:15 ival: direct index for structure (layout(offset=32 ) uniform int) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 2 (const uint) +0:15 fval: direct index for structure (layout(offset=64 ) uniform float) +0:15 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:15 Constant: +0:15 4 (const uint) +0:16 mod (temp 4-component vector of float) +0:16 Convert int to float (temp 4-component vector of float) +0:16 ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 3 (const uint) +0:16 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:16 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:16 Constant: +0:16 5 (const uint) +0:18 mod (temp float) +0:18 Convert bool to float (temp float) +0:18 bval: direct index for structure (layout(offset=0 ) uniform bool) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 0 (const uint) +0:18 fval: direct index for structure (layout(offset=64 ) uniform float) +0:18 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:18 Constant: +0:18 4 (const uint) +0:19 mod (temp 4-component vector of float) +0:19 Convert bool to float (temp 4-component vector of float) +0:19 bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 1 (const uint) +0:19 fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float) +0:19 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:19 Constant: +0:19 5 (const uint) +0:21 Sequence +0:21 move second child to first child (temp int) +0:21 'l_int' (temp int) +0:21 Constant: +0:21 1 (const int) +0:22 mod second child into first child (temp int) +0:22 'l_int' (temp int) +0:22 Convert float to int (temp int) +0:22 fval: direct index for structure (layout(offset=64 ) uniform float) +0:22 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) +0:22 Constant: +0:22 4 (const uint) +0:25 move second child to first child (temp 4-component vector of float) +0:25 Color: direct index for structure (temp 4-component vector of float) +0:25 'psout' (temp structure{temp 4-component vector of float Color}) +0:25 Constant: +0:25 0 (const int) +0:25 Constant: +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:25 0.000000 +0:26 Sequence +0:26 Sequence +0:26 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:26 Color: direct index for structure (temp 4-component vector of float) +0:26 'psout' (temp structure{temp 4-component vector of float Color}) +0:26 Constant: +0:26 0 (const int) +0:26 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 78 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 74 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 12 "$Global" + MemberName 12($Global) 0 "bval" + MemberName 12($Global) 1 "bval4" + MemberName 12($Global) 2 "ival" + MemberName 12($Global) 3 "ival4" + MemberName 12($Global) 4 "fval" + MemberName 12($Global) 5 "fval4" + Name 14 "" + Name 62 "l_int" + Name 68 "PS_OUTPUT" + MemberName 68(PS_OUTPUT) 0 "Color" + Name 70 "psout" + Name 74 "Color" + MemberDecorate 12($Global) 0 Offset 0 + MemberDecorate 12($Global) 1 Offset 16 + MemberDecorate 12($Global) 2 Offset 32 + MemberDecorate 12($Global) 3 Offset 48 + MemberDecorate 12($Global) 4 Offset 64 + MemberDecorate 12($Global) 5 Offset 80 + Decorate 12($Global) Block + Decorate 14 DescriptorSet 0 + Decorate 74(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: TypeVector 6(int) 4 + 8: TypeInt 32 1 + 9: TypeVector 8(int) 4 + 10: TypeFloat 32 + 11: TypeVector 10(float) 4 + 12($Global): TypeStruct 6(int) 7(ivec4) 8(int) 9(ivec4) 10(float) 11(fvec4) + 13: TypePointer Uniform 12($Global) + 14: 13(ptr) Variable Uniform + 15: 8(int) Constant 2 + 16: TypePointer Uniform 8(int) + 20: 8(int) Constant 4 + 21: TypePointer Uniform 10(float) + 25: 8(int) Constant 3 + 26: TypePointer Uniform 9(ivec4) + 30: 8(int) Constant 5 + 31: TypePointer Uniform 11(fvec4) + 35: 8(int) Constant 0 + 36: TypePointer Uniform 6(int) + 39: TypeBool + 40: 6(int) Constant 0 + 42: 10(float) Constant 0 + 43: 10(float) Constant 1065353216 + 48: 8(int) Constant 1 + 49: TypePointer Uniform 7(ivec4) + 52: TypeVector 39(bool) 4 + 53: 7(ivec4) ConstantComposite 40 40 40 40 + 55: 11(fvec4) ConstantComposite 42 42 42 42 + 56: 11(fvec4) ConstantComposite 43 43 43 43 + 61: TypePointer Function 8(int) + 68(PS_OUTPUT): TypeStruct 11(fvec4) + 69: TypePointer Function 68(PS_OUTPUT) + 71: TypePointer Function 11(fvec4) + 73: TypePointer Output 11(fvec4) + 74(Color): 73(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 62(l_int): 61(ptr) Variable Function + 70(psout): 69(ptr) Variable Function + 17: 16(ptr) AccessChain 14 15 + 18: 8(int) Load 17 + 19: 10(float) ConvertSToF 18 + 22: 21(ptr) AccessChain 14 20 + 23: 10(float) Load 22 + 24: 10(float) FMod 19 23 + 27: 26(ptr) AccessChain 14 25 + 28: 9(ivec4) Load 27 + 29: 11(fvec4) ConvertSToF 28 + 32: 31(ptr) AccessChain 14 30 + 33: 11(fvec4) Load 32 + 34: 11(fvec4) FMod 29 33 + 37: 36(ptr) AccessChain 14 35 + 38: 6(int) Load 37 + 41: 39(bool) INotEqual 38 40 + 44: 10(float) Select 41 43 42 + 45: 21(ptr) AccessChain 14 20 + 46: 10(float) Load 45 + 47: 10(float) FMod 44 46 + 50: 49(ptr) AccessChain 14 48 + 51: 7(ivec4) Load 50 + 54: 52(bvec4) INotEqual 51 53 + 57: 11(fvec4) Select 54 56 55 + 58: 31(ptr) AccessChain 14 30 + 59: 11(fvec4) Load 58 + 60: 11(fvec4) FMod 57 59 + Store 62(l_int) 48 + 63: 21(ptr) AccessChain 14 20 + 64: 10(float) Load 63 + 65: 8(int) ConvertFToS 64 + 66: 8(int) Load 62(l_int) + 67: 8(int) SMod 66 65 + Store 62(l_int) 67 + 72: 71(ptr) AccessChain 70(psout) 35 + Store 72 55 + 75: 71(ptr) AccessChain 70(psout) 35 + 76: 11(fvec4) Load 75 + Store 74(Color) 76 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.promote.vec1.frag.out b/Test/baseResults/hlsl.promote.vec1.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..9179dbcc529793d56ace69f3559ef1d3fa62efc4 --- /dev/null +++ b/Test/baseResults/hlsl.promote.vec1.frag.out @@ -0,0 +1,118 @@ +hlsl.promote.vec1.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: main( (temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:7 move second child to first child (temp float) +0:7 'f1a' (temp float) +0:7 Construct float (temp float) +0:7 'f1b' (temp 1-component vector of float) +0:8 move second child to first child (temp 1-component vector of float) +0:8 'f1b' (temp 1-component vector of float) +0:8 Construct float (temp 1-component vector of float) +0:8 'f1a' (temp float) +0:11 step (temp 3-component vector of float) +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 'f3' (temp 3-component vector of float) +0:13 sine (temp float) +0:13 Construct float (in float) +0:13 'f1b' (temp 1-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:3 Function Definition: main( (temp 4-component vector of float) +0:3 Function Parameters: +0:? Sequence +0:7 move second child to first child (temp float) +0:7 'f1a' (temp float) +0:7 Construct float (temp float) +0:7 'f1b' (temp 1-component vector of float) +0:8 move second child to first child (temp 1-component vector of float) +0:8 'f1b' (temp 1-component vector of float) +0:8 Construct float (temp 1-component vector of float) +0:8 'f1a' (temp float) +0:11 step (temp 3-component vector of float) +0:11 Constant: +0:11 0.000000 +0:11 0.000000 +0:11 0.000000 +0:11 'f3' (temp 3-component vector of float) +0:13 sine (temp float) +0:13 Construct float (in float) +0:13 'f1b' (temp 1-component vector of float) +0:15 Sequence +0:15 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:? 0.000000 +0:15 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) + +// 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 "main" 23 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "f1a" + Name 9 "f1b" + Name 16 "f3" + Name 23 "@entryPointOutput" + Decorate 23(@entryPointOutput) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 12: TypeVector 6(float) 3 + 13: 6(float) Constant 0 + 14: 12(fvec3) ConstantComposite 13 13 13 + 15: TypePointer Function 12(fvec3) + 21: TypeVector 6(float) 4 + 22: TypePointer Output 21(fvec4) +23(@entryPointOutput): 22(ptr) Variable Output + 24: 21(fvec4) ConstantComposite 13 13 13 13 + 4(main): 2 Function None 3 + 5: Label + 8(f1a): 7(ptr) Variable Function + 9(f1b): 7(ptr) Variable Function + 16(f3): 15(ptr) Variable Function + 10: 6(float) Load 9(f1b) + Store 8(f1a) 10 + 11: 6(float) Load 8(f1a) + Store 9(f1b) 11 + 17: 12(fvec3) Load 16(f3) + 18: 12(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 14 17 + 19: 6(float) Load 9(f1b) + 20: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 19 + Store 23(@entryPointOutput) 24 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.promotions.frag.out b/Test/baseResults/hlsl.promotions.frag.out index 3f1c788636743ab6a719bc1f4e6352afc28b8ec1..01ced16996e4e8b7ca863528e28f8762e53bb4d0 100644 --- a/Test/baseResults/hlsl.promotions.frag.out +++ b/Test/baseResults/hlsl.promotions.frag.out @@ -2,472 +2,748 @@ hlsl.promotions.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:19 Function Definition: Fn_F3(vf3; (global void) +0:19 Function Definition: Fn_F3(vf3; (temp void) 0:19 Function Parameters: 0:19 'x' (in 3-component vector of float) -0:20 Function Definition: Fn_I3(vi3; (global void) +0:20 Function Definition: Fn_I3(vi3; (temp void) 0:20 Function Parameters: 0:20 'x' (in 3-component vector of int) -0:21 Function Definition: Fn_U3(vu3; (global void) +0:21 Function Definition: Fn_U3(vu3; (temp void) 0:21 Function Parameters: 0:21 'x' (in 3-component vector of uint) -0:22 Function Definition: Fn_B3(vb3; (global void) +0:22 Function Definition: Fn_B3(vb3; (temp void) 0:22 Function Parameters: 0:22 'x' (in 3-component vector of bool) -0:23 Function Definition: Fn_D3(vd3; (global void) +0:23 Function Definition: Fn_D3(vd3; (temp void) 0:23 Function Parameters: 0:23 'x' (in 3-component vector of double) -0:26 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) +0:26 Function Definition: Fn_R_F3I(vf3; (temp 3-component vector of float) 0:26 Function Parameters: 0:26 'p' (out 3-component vector of float) 0:? Sequence 0:26 move second child to first child (temp 3-component vector of float) 0:26 'p' (out 3-component vector of float) 0:26 Convert int to float (temp 3-component vector of float) -0:26 'i3' (uniform 3-component vector of int) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) 0:26 Branch: Return with expression 0:26 Convert int to float (temp 3-component vector of float) -0:26 'i3' (uniform 3-component vector of int) -0:27 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:27 Function Definition: Fn_R_F3U(vf3; (temp 3-component vector of float) 0:27 Function Parameters: 0:27 'p' (out 3-component vector of float) 0:? Sequence 0:27 move second child to first child (temp 3-component vector of float) 0:27 'p' (out 3-component vector of float) 0:27 Convert uint to float (temp 3-component vector of float) -0:27 'u3' (uniform 3-component vector of uint) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) 0:27 Branch: Return with expression 0:27 Convert uint to float (temp 3-component vector of float) -0:27 'u3' (uniform 3-component vector of uint) -0:28 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:28 Function Definition: Fn_R_F3B(vf3; (temp 3-component vector of float) 0:28 Function Parameters: 0:28 'p' (out 3-component vector of float) 0:? Sequence 0:28 move second child to first child (temp 3-component vector of float) 0:28 'p' (out 3-component vector of float) 0:28 Convert bool to float (temp 3-component vector of float) -0:28 'b3' (uniform 3-component vector of bool) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) 0:28 Branch: Return with expression 0:28 Convert bool to float (temp 3-component vector of float) -0:28 'b3' (uniform 3-component vector of bool) -0:29 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:29 Function Definition: Fn_R_F3D(vf3; (temp 3-component vector of float) 0:29 Function Parameters: 0:29 'p' (out 3-component vector of float) 0:? Sequence 0:29 move second child to first child (temp 3-component vector of float) 0:29 'p' (out 3-component vector of float) 0:29 Convert double to float (temp 3-component vector of float) -0:29 'd3' (uniform 3-component vector of double) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) 0:29 Branch: Return with expression 0:29 Convert double to float (temp 3-component vector of float) -0:29 'd3' (uniform 3-component vector of double) -0:31 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:31 Function Definition: Fn_R_I3U(vi3; (temp 3-component vector of int) 0:31 Function Parameters: 0:31 'p' (out 3-component vector of int) 0:? Sequence 0:31 move second child to first child (temp 3-component vector of int) 0:31 'p' (out 3-component vector of int) 0:31 Convert uint to int (temp 3-component vector of int) -0:31 'u3' (uniform 3-component vector of uint) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) 0:31 Branch: Return with expression 0:31 Convert uint to int (temp 3-component vector of int) -0:31 'u3' (uniform 3-component vector of uint) -0:32 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:32 Function Definition: Fn_R_I3B(vi3; (temp 3-component vector of int) 0:32 Function Parameters: 0:32 'p' (out 3-component vector of int) 0:? Sequence 0:32 move second child to first child (temp 3-component vector of int) 0:32 'p' (out 3-component vector of int) 0:32 Convert bool to int (temp 3-component vector of int) -0:32 'b3' (uniform 3-component vector of bool) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) 0:32 Branch: Return with expression 0:32 Convert bool to int (temp 3-component vector of int) -0:32 'b3' (uniform 3-component vector of bool) -0:33 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:33 Function Definition: Fn_R_I3F(vi3; (temp 3-component vector of int) 0:33 Function Parameters: 0:33 'p' (out 3-component vector of int) 0:? Sequence 0:33 move second child to first child (temp 3-component vector of int) 0:33 'p' (out 3-component vector of int) 0:33 Convert float to int (temp 3-component vector of int) -0:33 'f3' (uniform 3-component vector of float) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) 0:33 Branch: Return with expression 0:33 Convert float to int (temp 3-component vector of int) -0:33 'f3' (uniform 3-component vector of float) -0:34 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:34 Function Definition: Fn_R_I3D(vi3; (temp 3-component vector of int) 0:34 Function Parameters: 0:34 'p' (out 3-component vector of int) 0:? Sequence 0:34 move second child to first child (temp 3-component vector of int) 0:34 'p' (out 3-component vector of int) 0:34 Convert double to int (temp 3-component vector of int) -0:34 'd3' (uniform 3-component vector of double) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) 0:34 Branch: Return with expression 0:34 Convert double to int (temp 3-component vector of int) -0:34 'd3' (uniform 3-component vector of double) -0:36 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:36 Function Definition: Fn_R_U3I(vu3; (temp 3-component vector of uint) 0:36 Function Parameters: 0:36 'p' (out 3-component vector of uint) 0:? Sequence 0:36 move second child to first child (temp 3-component vector of uint) 0:36 'p' (out 3-component vector of uint) 0:36 Convert int to uint (temp 3-component vector of uint) -0:36 'i3' (uniform 3-component vector of int) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) 0:36 Branch: Return with expression 0:36 Convert int to uint (temp 3-component vector of uint) -0:36 'i3' (uniform 3-component vector of int) -0:37 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:37 Function Definition: Fn_R_U3F(vu3; (temp 3-component vector of uint) 0:37 Function Parameters: 0:37 'p' (out 3-component vector of uint) 0:? Sequence 0:37 move second child to first child (temp 3-component vector of uint) 0:37 'p' (out 3-component vector of uint) 0:37 Convert float to uint (temp 3-component vector of uint) -0:37 'f3' (uniform 3-component vector of float) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) 0:37 Branch: Return with expression 0:37 Convert float to uint (temp 3-component vector of uint) -0:37 'f3' (uniform 3-component vector of float) -0:38 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:38 Function Definition: Fn_R_U3B(vu3; (temp 3-component vector of uint) 0:38 Function Parameters: 0:38 'p' (out 3-component vector of uint) 0:? Sequence 0:38 move second child to first child (temp 3-component vector of uint) 0:38 'p' (out 3-component vector of uint) 0:38 Convert bool to uint (temp 3-component vector of uint) -0:38 'b3' (uniform 3-component vector of bool) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) 0:38 Branch: Return with expression 0:38 Convert bool to uint (temp 3-component vector of uint) -0:38 'b3' (uniform 3-component vector of bool) -0:39 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:39 Function Definition: Fn_R_U3D(vu3; (temp 3-component vector of uint) 0:39 Function Parameters: 0:39 'p' (out 3-component vector of uint) 0:? Sequence 0:39 move second child to first child (temp 3-component vector of uint) 0:39 'p' (out 3-component vector of uint) 0:39 Convert double to uint (temp 3-component vector of uint) -0:39 'd3' (uniform 3-component vector of double) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) 0:39 Branch: Return with expression 0:39 Convert double to uint (temp 3-component vector of uint) -0:39 'd3' (uniform 3-component vector of double) -0:41 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:41 Function Definition: Fn_R_B3I(vb3; (temp 3-component vector of bool) 0:41 Function Parameters: 0:41 'p' (out 3-component vector of bool) 0:? Sequence 0:41 move second child to first child (temp 3-component vector of bool) 0:41 'p' (out 3-component vector of bool) 0:41 Convert int to bool (temp 3-component vector of bool) -0:41 'i3' (uniform 3-component vector of int) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) 0:41 Branch: Return with expression 0:41 Convert int to bool (temp 3-component vector of bool) -0:41 'i3' (uniform 3-component vector of int) -0:42 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:42 Function Definition: Fn_R_B3U(vb3; (temp 3-component vector of bool) 0:42 Function Parameters: 0:42 'p' (out 3-component vector of bool) 0:? Sequence 0:42 move second child to first child (temp 3-component vector of bool) 0:42 'p' (out 3-component vector of bool) 0:42 Convert uint to bool (temp 3-component vector of bool) -0:42 'u3' (uniform 3-component vector of uint) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) 0:42 Branch: Return with expression 0:42 Convert uint to bool (temp 3-component vector of bool) -0:42 'u3' (uniform 3-component vector of uint) -0:43 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:43 Function Definition: Fn_R_B3F(vb3; (temp 3-component vector of bool) 0:43 Function Parameters: 0:43 'p' (out 3-component vector of bool) 0:? Sequence 0:43 move second child to first child (temp 3-component vector of bool) 0:43 'p' (out 3-component vector of bool) 0:43 Convert float to bool (temp 3-component vector of bool) -0:43 'f3' (uniform 3-component vector of float) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) 0:43 Branch: Return with expression 0:43 Convert float to bool (temp 3-component vector of bool) -0:43 'f3' (uniform 3-component vector of float) -0:44 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:44 Function Definition: Fn_R_B3D(vb3; (temp 3-component vector of bool) 0:44 Function Parameters: 0:44 'p' (out 3-component vector of bool) 0:? Sequence 0:44 move second child to first child (temp 3-component vector of bool) 0:44 'p' (out 3-component vector of bool) 0:44 Convert double to bool (temp 3-component vector of bool) -0:44 'd3' (uniform 3-component vector of double) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) 0:44 Branch: Return with expression 0:44 Convert double to bool (temp 3-component vector of bool) -0:44 'd3' (uniform 3-component vector of double) -0:46 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:46 Function Definition: Fn_R_D3I(vd3; (temp 3-component vector of double) 0:46 Function Parameters: 0:46 'p' (out 3-component vector of double) 0:? Sequence 0:46 move second child to first child (temp 3-component vector of double) 0:46 'p' (out 3-component vector of double) 0:46 Convert int to double (temp 3-component vector of double) -0:46 'i3' (uniform 3-component vector of int) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) 0:46 Branch: Return with expression 0:46 Convert int to double (temp 3-component vector of double) -0:46 'i3' (uniform 3-component vector of int) -0:47 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:47 Function Definition: Fn_R_D3U(vd3; (temp 3-component vector of double) 0:47 Function Parameters: 0:47 'p' (out 3-component vector of double) 0:? Sequence 0:47 move second child to first child (temp 3-component vector of double) 0:47 'p' (out 3-component vector of double) 0:47 Convert uint to double (temp 3-component vector of double) -0:47 'u3' (uniform 3-component vector of uint) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) 0:47 Branch: Return with expression 0:47 Convert uint to double (temp 3-component vector of double) -0:47 'u3' (uniform 3-component vector of uint) -0:48 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:48 Function Definition: Fn_R_D3B(vd3; (temp 3-component vector of double) 0:48 Function Parameters: 0:48 'p' (out 3-component vector of double) 0:? Sequence 0:48 move second child to first child (temp 3-component vector of double) 0:48 'p' (out 3-component vector of double) 0:48 Convert bool to double (temp 3-component vector of double) -0:48 'b3' (uniform 3-component vector of bool) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) 0:48 Branch: Return with expression 0:48 Convert bool to double (temp 3-component vector of double) -0:48 'b3' (uniform 3-component vector of bool) -0:49 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:49 Function Definition: Fn_R_D3F(vd3; (temp 3-component vector of double) 0:49 Function Parameters: 0:49 'p' (out 3-component vector of double) 0:? Sequence 0:49 move second child to first child (temp 3-component vector of double) 0:49 'p' (out 3-component vector of double) 0:49 Convert float to double (temp 3-component vector of double) -0:49 'f3' (uniform 3-component vector of float) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) -0:49 'f3' (uniform 3-component vector of float) -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:52 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence 0:54 move second child to first child (temp 3-component vector of float) 0:54 'r00' (temp 3-component vector of float) 0:54 Convert int to float (temp 3-component vector of float) -0:54 'i3' (uniform 3-component vector of int) +0:54 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:54 Constant: +0:54 0 (const uint) 0:55 Sequence 0:55 move second child to first child (temp 3-component vector of float) 0:55 'r01' (temp 3-component vector of float) 0:55 Convert bool to float (temp 3-component vector of float) -0:55 'b3' (uniform 3-component vector of bool) +0:55 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:55 Constant: +0:55 1 (const uint) 0:56 Sequence 0:56 move second child to first child (temp 3-component vector of float) 0:56 'r02' (temp 3-component vector of float) 0:56 Convert uint to float (temp 3-component vector of float) -0:56 'u3' (uniform 3-component vector of uint) +0:56 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:56 Constant: +0:56 3 (const uint) 0:57 Sequence 0:57 move second child to first child (temp 3-component vector of float) 0:57 'r03' (temp 3-component vector of float) 0:57 Convert double to float (temp 3-component vector of float) -0:57 'd3' (uniform 3-component vector of double) +0:57 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:57 Constant: +0:57 4 (const uint) 0:59 Sequence 0:59 move second child to first child (temp 3-component vector of int) 0:59 'r10' (temp 3-component vector of int) 0:59 Convert bool to int (temp 3-component vector of int) -0:59 'b3' (uniform 3-component vector of bool) +0:59 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:59 Constant: +0:59 1 (const uint) 0:60 Sequence 0:60 move second child to first child (temp 3-component vector of int) 0:60 'r11' (temp 3-component vector of int) 0:60 Convert uint to int (temp 3-component vector of int) -0:60 'u3' (uniform 3-component vector of uint) +0:60 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:60 Constant: +0:60 3 (const uint) 0:61 Sequence 0:61 move second child to first child (temp 3-component vector of int) 0:61 'r12' (temp 3-component vector of int) 0:61 Convert float to int (temp 3-component vector of int) -0:61 'f3' (uniform 3-component vector of float) +0:61 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:61 Constant: +0:61 2 (const uint) 0:62 Sequence 0:62 move second child to first child (temp 3-component vector of int) 0:62 'r13' (temp 3-component vector of int) 0:62 Convert double to int (temp 3-component vector of int) -0:62 'd3' (uniform 3-component vector of double) +0:62 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:62 Constant: +0:62 4 (const uint) 0:64 Sequence 0:64 move second child to first child (temp 3-component vector of uint) 0:64 'r20' (temp 3-component vector of uint) 0:64 Convert bool to uint (temp 3-component vector of uint) -0:64 'b3' (uniform 3-component vector of bool) +0:64 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:64 Constant: +0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child (temp 3-component vector of uint) 0:65 'r21' (temp 3-component vector of uint) 0:65 Convert int to uint (temp 3-component vector of uint) -0:65 'i3' (uniform 3-component vector of int) +0:65 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:65 Constant: +0:65 0 (const uint) 0:66 Sequence 0:66 move second child to first child (temp 3-component vector of uint) 0:66 'r22' (temp 3-component vector of uint) 0:66 Convert float to uint (temp 3-component vector of uint) -0:66 'f3' (uniform 3-component vector of float) +0:66 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:66 Constant: +0:66 2 (const uint) 0:67 Sequence 0:67 move second child to first child (temp 3-component vector of uint) 0:67 'r23' (temp 3-component vector of uint) 0:67 Convert double to uint (temp 3-component vector of uint) -0:67 'd3' (uniform 3-component vector of double) +0:67 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:67 Constant: +0:67 4 (const uint) 0:69 Sequence 0:69 move second child to first child (temp 3-component vector of bool) 0:69 'r30' (temp 3-component vector of bool) 0:69 Convert int to bool (temp 3-component vector of bool) -0:69 'i3' (uniform 3-component vector of int) +0:69 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:69 Constant: +0:69 0 (const uint) 0:70 Sequence 0:70 move second child to first child (temp 3-component vector of bool) 0:70 'r31' (temp 3-component vector of bool) 0:70 Convert uint to bool (temp 3-component vector of bool) -0:70 'u3' (uniform 3-component vector of uint) +0:70 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:70 Constant: +0:70 3 (const uint) 0:71 Sequence 0:71 move second child to first child (temp 3-component vector of bool) 0:71 'r32' (temp 3-component vector of bool) 0:71 Convert float to bool (temp 3-component vector of bool) -0:71 'f3' (uniform 3-component vector of float) +0:71 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:71 Constant: +0:71 2 (const uint) 0:72 Sequence 0:72 move second child to first child (temp 3-component vector of bool) 0:72 'r33' (temp 3-component vector of bool) 0:72 Convert double to bool (temp 3-component vector of bool) -0:72 'd3' (uniform 3-component vector of double) +0:72 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:72 Constant: +0:72 4 (const uint) 0:74 Sequence 0:74 move second child to first child (temp 3-component vector of double) 0:74 'r40' (temp 3-component vector of double) 0:74 Convert int to double (temp 3-component vector of double) -0:74 'i3' (uniform 3-component vector of int) +0:74 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:74 Constant: +0:74 0 (const uint) 0:75 Sequence 0:75 move second child to first child (temp 3-component vector of double) 0:75 'r41' (temp 3-component vector of double) 0:75 Convert uint to double (temp 3-component vector of double) -0:75 'u3' (uniform 3-component vector of uint) +0:75 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:75 Constant: +0:75 3 (const uint) 0:76 Sequence 0:76 move second child to first child (temp 3-component vector of double) 0:76 'r42' (temp 3-component vector of double) 0:76 Convert float to double (temp 3-component vector of double) -0:76 'f3' (uniform 3-component vector of float) +0:76 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:76 Constant: +0:76 2 (const uint) 0:77 Sequence 0:77 move second child to first child (temp 3-component vector of double) 0:77 'r43' (temp 3-component vector of double) 0:77 Convert bool to double (temp 3-component vector of double) -0:77 'b3' (uniform 3-component vector of bool) +0:77 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:77 Constant: +0:77 1 (const uint) 0:80 multiply second child into first child (temp 3-component vector of float) 0:80 'r00' (temp 3-component vector of float) 0:80 Convert int to float (temp 3-component vector of float) -0:80 'i3' (uniform 3-component vector of int) +0:80 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:80 Constant: +0:80 0 (const uint) 0:81 multiply second child into first child (temp 3-component vector of float) 0:81 'r01' (temp 3-component vector of float) 0:81 Convert bool to float (temp 3-component vector of float) -0:81 'b3' (uniform 3-component vector of bool) +0:81 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:81 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:81 Constant: +0:81 1 (const uint) 0:82 multiply second child into first child (temp 3-component vector of float) 0:82 'r02' (temp 3-component vector of float) 0:82 Convert uint to float (temp 3-component vector of float) -0:82 'u3' (uniform 3-component vector of uint) +0:82 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:82 Constant: +0:82 3 (const uint) 0:83 multiply second child into first child (temp 3-component vector of float) 0:83 'r03' (temp 3-component vector of float) 0:83 Convert double to float (temp 3-component vector of float) -0:83 'd3' (uniform 3-component vector of double) +0:83 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:83 Constant: +0:83 4 (const uint) 0:85 multiply second child into first child (temp 3-component vector of int) 0:85 'r10' (temp 3-component vector of int) 0:85 Convert bool to int (temp 3-component vector of int) -0:85 'b3' (uniform 3-component vector of bool) +0:85 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:85 Constant: +0:85 1 (const uint) 0:86 multiply second child into first child (temp 3-component vector of int) 0:86 'r11' (temp 3-component vector of int) 0:86 Convert uint to int (temp 3-component vector of int) -0:86 'u3' (uniform 3-component vector of uint) +0:86 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:86 Constant: +0:86 3 (const uint) 0:87 multiply second child into first child (temp 3-component vector of int) 0:87 'r12' (temp 3-component vector of int) 0:87 Convert float to int (temp 3-component vector of int) -0:87 'f3' (uniform 3-component vector of float) +0:87 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:87 Constant: +0:87 2 (const uint) 0:88 multiply second child into first child (temp 3-component vector of int) 0:88 'r13' (temp 3-component vector of int) 0:88 Convert double to int (temp 3-component vector of int) -0:88 'd3' (uniform 3-component vector of double) +0:88 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:88 Constant: +0:88 4 (const uint) 0:90 multiply second child into first child (temp 3-component vector of uint) 0:90 'r20' (temp 3-component vector of uint) 0:90 Convert bool to uint (temp 3-component vector of uint) -0:90 'b3' (uniform 3-component vector of bool) +0:90 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:90 Constant: +0:90 1 (const uint) 0:91 multiply second child into first child (temp 3-component vector of uint) 0:91 'r21' (temp 3-component vector of uint) 0:91 Convert int to uint (temp 3-component vector of uint) -0:91 'i3' (uniform 3-component vector of int) +0:91 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:91 Constant: +0:91 0 (const uint) 0:92 multiply second child into first child (temp 3-component vector of uint) 0:92 'r22' (temp 3-component vector of uint) 0:92 Convert float to uint (temp 3-component vector of uint) -0:92 'f3' (uniform 3-component vector of float) +0:92 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:92 Constant: +0:92 2 (const uint) 0:93 multiply second child into first child (temp 3-component vector of uint) 0:93 'r23' (temp 3-component vector of uint) 0:93 Convert double to uint (temp 3-component vector of uint) -0:93 'd3' (uniform 3-component vector of double) +0:93 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:93 Constant: +0:93 4 (const uint) 0:97 multiply second child into first child (temp 3-component vector of double) 0:97 'r40' (temp 3-component vector of double) 0:97 Convert int to double (temp 3-component vector of double) -0:97 'i3' (uniform 3-component vector of int) +0:97 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:97 Constant: +0:97 0 (const uint) 0:98 multiply second child into first child (temp 3-component vector of double) 0:98 'r41' (temp 3-component vector of double) 0:98 Convert uint to double (temp 3-component vector of double) -0:98 'u3' (uniform 3-component vector of uint) +0:98 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:98 Constant: +0:98 3 (const uint) 0:99 multiply second child into first child (temp 3-component vector of double) 0:99 'r42' (temp 3-component vector of double) 0:99 Convert float to double (temp 3-component vector of double) -0:99 'f3' (uniform 3-component vector of float) +0:99 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:99 Constant: +0:99 2 (const uint) 0:100 multiply second child into first child (temp 3-component vector of double) 0:100 'r43' (temp 3-component vector of double) 0:100 Convert bool to double (temp 3-component vector of double) -0:100 'b3' (uniform 3-component vector of bool) +0:100 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:100 Constant: +0:100 1 (const uint) 0:103 vector scale second child into first child (temp 3-component vector of float) 0:103 'r00' (temp 3-component vector of float) 0:103 Convert int to float (temp float) -0:103 'is' (uniform int) +0:103 is: direct index for structure (layout(offset=88 ) uniform int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:103 Constant: +0:103 5 (const uint) 0:104 vector scale second child into first child (temp 3-component vector of float) 0:104 'r01' (temp 3-component vector of float) 0:104 Convert bool to float (temp float) -0:104 'bs' (uniform bool) +0:104 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:104 Constant: +0:104 6 (const uint) 0:105 vector scale second child into first child (temp 3-component vector of float) 0:105 'r02' (temp 3-component vector of float) 0:105 Convert uint to float (temp float) -0:105 'us' (uniform uint) +0:105 us: direct index for structure (layout(offset=100 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:105 Constant: +0:105 8 (const uint) 0:106 vector scale second child into first child (temp 3-component vector of float) 0:106 'r03' (temp 3-component vector of float) 0:106 Convert double to float (temp float) -0:106 'ds' (uniform double) +0:106 ds: direct index for structure (layout(offset=104 ) uniform double) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:106 Constant: +0:106 9 (const uint) 0:108 vector scale second child into first child (temp 3-component vector of int) 0:108 'r10' (temp 3-component vector of int) 0:108 Convert bool to int (temp int) -0:108 'bs' (uniform bool) +0:108 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:108 Constant: +0:108 6 (const uint) 0:109 vector scale second child into first child (temp 3-component vector of int) 0:109 'r11' (temp 3-component vector of int) 0:109 Convert uint to int (temp int) -0:109 'us' (uniform uint) +0:109 us: direct index for structure (layout(offset=100 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:109 Constant: +0:109 8 (const uint) 0:110 vector scale second child into first child (temp 3-component vector of int) 0:110 'r12' (temp 3-component vector of int) 0:110 Convert float to int (temp int) -0:110 'fs' (uniform float) +0:110 fs: direct index for structure (layout(offset=96 ) uniform float) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:110 Constant: +0:110 7 (const uint) 0:111 vector scale second child into first child (temp 3-component vector of int) 0:111 'r13' (temp 3-component vector of int) 0:111 Convert double to int (temp int) -0:111 'ds' (uniform double) +0:111 ds: direct index for structure (layout(offset=104 ) uniform double) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:111 Constant: +0:111 9 (const uint) 0:113 vector scale second child into first child (temp 3-component vector of uint) 0:113 'r20' (temp 3-component vector of uint) 0:113 Convert bool to uint (temp uint) -0:113 'bs' (uniform bool) +0:113 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:113 Constant: +0:113 6 (const uint) 0:114 vector scale second child into first child (temp 3-component vector of uint) 0:114 'r21' (temp 3-component vector of uint) 0:114 Convert int to uint (temp uint) -0:114 'is' (uniform int) +0:114 is: direct index for structure (layout(offset=88 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:114 Constant: +0:114 5 (const uint) 0:115 vector scale second child into first child (temp 3-component vector of uint) 0:115 'r22' (temp 3-component vector of uint) 0:115 Convert float to uint (temp uint) -0:115 'fs' (uniform float) +0:115 fs: direct index for structure (layout(offset=96 ) uniform float) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:115 Constant: +0:115 7 (const uint) 0:116 vector scale second child into first child (temp 3-component vector of uint) 0:116 'r23' (temp 3-component vector of uint) 0:116 Convert double to uint (temp uint) -0:116 'ds' (uniform double) +0:116 ds: direct index for structure (layout(offset=104 ) uniform double) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:116 Constant: +0:116 9 (const uint) 0:120 vector scale second child into first child (temp 3-component vector of double) 0:120 'r40' (temp 3-component vector of double) 0:120 Convert int to double (temp double) -0:120 'is' (uniform int) +0:120 is: direct index for structure (layout(offset=88 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:120 Constant: +0:120 5 (const uint) 0:121 vector scale second child into first child (temp 3-component vector of double) 0:121 'r41' (temp 3-component vector of double) 0:121 Convert uint to double (temp double) -0:121 'us' (uniform uint) +0:121 us: direct index for structure (layout(offset=100 ) uniform uint) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:121 Constant: +0:121 8 (const uint) 0:122 vector scale second child into first child (temp 3-component vector of double) 0:122 'r42' (temp 3-component vector of double) 0:122 Convert float to double (temp double) -0:122 'fs' (uniform float) +0:122 fs: direct index for structure (layout(offset=96 ) uniform float) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:122 Constant: +0:122 7 (const uint) 0:123 vector scale second child into first child (temp 3-component vector of double) 0:123 'r43' (temp 3-component vector of double) 0:123 Convert bool to double (temp double) -0:123 'bs' (uniform bool) +0:123 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:123 Constant: +0:123 6 (const uint) 0:193 Sequence 0:193 move second child to first child (temp int) 0:193 'c1' (temp int) @@ -496,8 +772,8 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:? Sequence -0:? Sequence +0:200 Sequence +0:200 Sequence 0:200 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:200 Color: direct index for structure (temp 4-component vector of float) @@ -506,17 +782,8 @@ gl_FragCoord origin is upper left 0:200 0 (const int) 0:200 Branch: Return 0:? Linker Objects -0:? 'i3' (uniform 3-component vector of int) -0:? 'b3' (uniform 3-component vector of bool) -0:? 'f3' (uniform 3-component vector of float) -0:? 'u3' (uniform 3-component vector of uint) -0:? 'd3' (uniform 3-component vector of double) -0:? 'is' (uniform int) -0:? 'bs' (uniform bool) -0:? 'fs' (uniform float) -0:? 'us' (uniform uint) -0:? 'ds' (uniform double) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) Linked fragment stage: @@ -525,472 +792,748 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:19 Function Definition: Fn_F3(vf3; (global void) +0:19 Function Definition: Fn_F3(vf3; (temp void) 0:19 Function Parameters: 0:19 'x' (in 3-component vector of float) -0:20 Function Definition: Fn_I3(vi3; (global void) +0:20 Function Definition: Fn_I3(vi3; (temp void) 0:20 Function Parameters: 0:20 'x' (in 3-component vector of int) -0:21 Function Definition: Fn_U3(vu3; (global void) +0:21 Function Definition: Fn_U3(vu3; (temp void) 0:21 Function Parameters: 0:21 'x' (in 3-component vector of uint) -0:22 Function Definition: Fn_B3(vb3; (global void) +0:22 Function Definition: Fn_B3(vb3; (temp void) 0:22 Function Parameters: 0:22 'x' (in 3-component vector of bool) -0:23 Function Definition: Fn_D3(vd3; (global void) +0:23 Function Definition: Fn_D3(vd3; (temp void) 0:23 Function Parameters: 0:23 'x' (in 3-component vector of double) -0:26 Function Definition: Fn_R_F3I(vf3; (global 3-component vector of float) +0:26 Function Definition: Fn_R_F3I(vf3; (temp 3-component vector of float) 0:26 Function Parameters: 0:26 'p' (out 3-component vector of float) 0:? Sequence 0:26 move second child to first child (temp 3-component vector of float) 0:26 'p' (out 3-component vector of float) 0:26 Convert int to float (temp 3-component vector of float) -0:26 'i3' (uniform 3-component vector of int) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) 0:26 Branch: Return with expression 0:26 Convert int to float (temp 3-component vector of float) -0:26 'i3' (uniform 3-component vector of int) -0:27 Function Definition: Fn_R_F3U(vf3; (global 3-component vector of float) +0:26 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:26 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:26 Constant: +0:26 0 (const uint) +0:27 Function Definition: Fn_R_F3U(vf3; (temp 3-component vector of float) 0:27 Function Parameters: 0:27 'p' (out 3-component vector of float) 0:? Sequence 0:27 move second child to first child (temp 3-component vector of float) 0:27 'p' (out 3-component vector of float) 0:27 Convert uint to float (temp 3-component vector of float) -0:27 'u3' (uniform 3-component vector of uint) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) 0:27 Branch: Return with expression 0:27 Convert uint to float (temp 3-component vector of float) -0:27 'u3' (uniform 3-component vector of uint) -0:28 Function Definition: Fn_R_F3B(vf3; (global 3-component vector of float) +0:27 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:27 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:27 Constant: +0:27 3 (const uint) +0:28 Function Definition: Fn_R_F3B(vf3; (temp 3-component vector of float) 0:28 Function Parameters: 0:28 'p' (out 3-component vector of float) 0:? Sequence 0:28 move second child to first child (temp 3-component vector of float) 0:28 'p' (out 3-component vector of float) 0:28 Convert bool to float (temp 3-component vector of float) -0:28 'b3' (uniform 3-component vector of bool) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) 0:28 Branch: Return with expression 0:28 Convert bool to float (temp 3-component vector of float) -0:28 'b3' (uniform 3-component vector of bool) -0:29 Function Definition: Fn_R_F3D(vf3; (global 3-component vector of float) +0:28 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:28 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:28 Constant: +0:28 1 (const uint) +0:29 Function Definition: Fn_R_F3D(vf3; (temp 3-component vector of float) 0:29 Function Parameters: 0:29 'p' (out 3-component vector of float) 0:? Sequence 0:29 move second child to first child (temp 3-component vector of float) 0:29 'p' (out 3-component vector of float) 0:29 Convert double to float (temp 3-component vector of float) -0:29 'd3' (uniform 3-component vector of double) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) 0:29 Branch: Return with expression 0:29 Convert double to float (temp 3-component vector of float) -0:29 'd3' (uniform 3-component vector of double) -0:31 Function Definition: Fn_R_I3U(vi3; (global 3-component vector of int) +0:29 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:29 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:29 Constant: +0:29 4 (const uint) +0:31 Function Definition: Fn_R_I3U(vi3; (temp 3-component vector of int) 0:31 Function Parameters: 0:31 'p' (out 3-component vector of int) 0:? Sequence 0:31 move second child to first child (temp 3-component vector of int) 0:31 'p' (out 3-component vector of int) 0:31 Convert uint to int (temp 3-component vector of int) -0:31 'u3' (uniform 3-component vector of uint) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) 0:31 Branch: Return with expression 0:31 Convert uint to int (temp 3-component vector of int) -0:31 'u3' (uniform 3-component vector of uint) -0:32 Function Definition: Fn_R_I3B(vi3; (global 3-component vector of int) +0:31 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:31 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:31 Constant: +0:31 3 (const uint) +0:32 Function Definition: Fn_R_I3B(vi3; (temp 3-component vector of int) 0:32 Function Parameters: 0:32 'p' (out 3-component vector of int) 0:? Sequence 0:32 move second child to first child (temp 3-component vector of int) 0:32 'p' (out 3-component vector of int) 0:32 Convert bool to int (temp 3-component vector of int) -0:32 'b3' (uniform 3-component vector of bool) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) 0:32 Branch: Return with expression 0:32 Convert bool to int (temp 3-component vector of int) -0:32 'b3' (uniform 3-component vector of bool) -0:33 Function Definition: Fn_R_I3F(vi3; (global 3-component vector of int) +0:32 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:32 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:32 Constant: +0:32 1 (const uint) +0:33 Function Definition: Fn_R_I3F(vi3; (temp 3-component vector of int) 0:33 Function Parameters: 0:33 'p' (out 3-component vector of int) 0:? Sequence 0:33 move second child to first child (temp 3-component vector of int) 0:33 'p' (out 3-component vector of int) 0:33 Convert float to int (temp 3-component vector of int) -0:33 'f3' (uniform 3-component vector of float) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) 0:33 Branch: Return with expression 0:33 Convert float to int (temp 3-component vector of int) -0:33 'f3' (uniform 3-component vector of float) -0:34 Function Definition: Fn_R_I3D(vi3; (global 3-component vector of int) +0:33 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:33 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:33 Constant: +0:33 2 (const uint) +0:34 Function Definition: Fn_R_I3D(vi3; (temp 3-component vector of int) 0:34 Function Parameters: 0:34 'p' (out 3-component vector of int) 0:? Sequence 0:34 move second child to first child (temp 3-component vector of int) 0:34 'p' (out 3-component vector of int) 0:34 Convert double to int (temp 3-component vector of int) -0:34 'd3' (uniform 3-component vector of double) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) 0:34 Branch: Return with expression 0:34 Convert double to int (temp 3-component vector of int) -0:34 'd3' (uniform 3-component vector of double) -0:36 Function Definition: Fn_R_U3I(vu3; (global 3-component vector of uint) +0:34 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:34 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:34 Constant: +0:34 4 (const uint) +0:36 Function Definition: Fn_R_U3I(vu3; (temp 3-component vector of uint) 0:36 Function Parameters: 0:36 'p' (out 3-component vector of uint) 0:? Sequence 0:36 move second child to first child (temp 3-component vector of uint) 0:36 'p' (out 3-component vector of uint) 0:36 Convert int to uint (temp 3-component vector of uint) -0:36 'i3' (uniform 3-component vector of int) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) 0:36 Branch: Return with expression 0:36 Convert int to uint (temp 3-component vector of uint) -0:36 'i3' (uniform 3-component vector of int) -0:37 Function Definition: Fn_R_U3F(vu3; (global 3-component vector of uint) +0:36 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:36 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:36 Constant: +0:36 0 (const uint) +0:37 Function Definition: Fn_R_U3F(vu3; (temp 3-component vector of uint) 0:37 Function Parameters: 0:37 'p' (out 3-component vector of uint) 0:? Sequence 0:37 move second child to first child (temp 3-component vector of uint) 0:37 'p' (out 3-component vector of uint) 0:37 Convert float to uint (temp 3-component vector of uint) -0:37 'f3' (uniform 3-component vector of float) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) 0:37 Branch: Return with expression 0:37 Convert float to uint (temp 3-component vector of uint) -0:37 'f3' (uniform 3-component vector of float) -0:38 Function Definition: Fn_R_U3B(vu3; (global 3-component vector of uint) +0:37 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:37 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:37 Constant: +0:37 2 (const uint) +0:38 Function Definition: Fn_R_U3B(vu3; (temp 3-component vector of uint) 0:38 Function Parameters: 0:38 'p' (out 3-component vector of uint) 0:? Sequence 0:38 move second child to first child (temp 3-component vector of uint) 0:38 'p' (out 3-component vector of uint) 0:38 Convert bool to uint (temp 3-component vector of uint) -0:38 'b3' (uniform 3-component vector of bool) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) 0:38 Branch: Return with expression 0:38 Convert bool to uint (temp 3-component vector of uint) -0:38 'b3' (uniform 3-component vector of bool) -0:39 Function Definition: Fn_R_U3D(vu3; (global 3-component vector of uint) +0:38 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:38 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:38 Constant: +0:38 1 (const uint) +0:39 Function Definition: Fn_R_U3D(vu3; (temp 3-component vector of uint) 0:39 Function Parameters: 0:39 'p' (out 3-component vector of uint) 0:? Sequence 0:39 move second child to first child (temp 3-component vector of uint) 0:39 'p' (out 3-component vector of uint) 0:39 Convert double to uint (temp 3-component vector of uint) -0:39 'd3' (uniform 3-component vector of double) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) 0:39 Branch: Return with expression 0:39 Convert double to uint (temp 3-component vector of uint) -0:39 'd3' (uniform 3-component vector of double) -0:41 Function Definition: Fn_R_B3I(vb3; (global 3-component vector of bool) +0:39 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:39 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:39 Constant: +0:39 4 (const uint) +0:41 Function Definition: Fn_R_B3I(vb3; (temp 3-component vector of bool) 0:41 Function Parameters: 0:41 'p' (out 3-component vector of bool) 0:? Sequence 0:41 move second child to first child (temp 3-component vector of bool) 0:41 'p' (out 3-component vector of bool) 0:41 Convert int to bool (temp 3-component vector of bool) -0:41 'i3' (uniform 3-component vector of int) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) 0:41 Branch: Return with expression 0:41 Convert int to bool (temp 3-component vector of bool) -0:41 'i3' (uniform 3-component vector of int) -0:42 Function Definition: Fn_R_B3U(vb3; (global 3-component vector of bool) +0:41 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:41 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:41 Constant: +0:41 0 (const uint) +0:42 Function Definition: Fn_R_B3U(vb3; (temp 3-component vector of bool) 0:42 Function Parameters: 0:42 'p' (out 3-component vector of bool) 0:? Sequence 0:42 move second child to first child (temp 3-component vector of bool) 0:42 'p' (out 3-component vector of bool) 0:42 Convert uint to bool (temp 3-component vector of bool) -0:42 'u3' (uniform 3-component vector of uint) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) 0:42 Branch: Return with expression 0:42 Convert uint to bool (temp 3-component vector of bool) -0:42 'u3' (uniform 3-component vector of uint) -0:43 Function Definition: Fn_R_B3F(vb3; (global 3-component vector of bool) +0:42 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:42 Constant: +0:42 3 (const uint) +0:43 Function Definition: Fn_R_B3F(vb3; (temp 3-component vector of bool) 0:43 Function Parameters: 0:43 'p' (out 3-component vector of bool) 0:? Sequence 0:43 move second child to first child (temp 3-component vector of bool) 0:43 'p' (out 3-component vector of bool) 0:43 Convert float to bool (temp 3-component vector of bool) -0:43 'f3' (uniform 3-component vector of float) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) 0:43 Branch: Return with expression 0:43 Convert float to bool (temp 3-component vector of bool) -0:43 'f3' (uniform 3-component vector of float) -0:44 Function Definition: Fn_R_B3D(vb3; (global 3-component vector of bool) +0:43 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:43 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:43 Constant: +0:43 2 (const uint) +0:44 Function Definition: Fn_R_B3D(vb3; (temp 3-component vector of bool) 0:44 Function Parameters: 0:44 'p' (out 3-component vector of bool) 0:? Sequence 0:44 move second child to first child (temp 3-component vector of bool) 0:44 'p' (out 3-component vector of bool) 0:44 Convert double to bool (temp 3-component vector of bool) -0:44 'd3' (uniform 3-component vector of double) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) 0:44 Branch: Return with expression 0:44 Convert double to bool (temp 3-component vector of bool) -0:44 'd3' (uniform 3-component vector of double) -0:46 Function Definition: Fn_R_D3I(vd3; (global 3-component vector of double) +0:44 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:44 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:44 Constant: +0:44 4 (const uint) +0:46 Function Definition: Fn_R_D3I(vd3; (temp 3-component vector of double) 0:46 Function Parameters: 0:46 'p' (out 3-component vector of double) 0:? Sequence 0:46 move second child to first child (temp 3-component vector of double) 0:46 'p' (out 3-component vector of double) 0:46 Convert int to double (temp 3-component vector of double) -0:46 'i3' (uniform 3-component vector of int) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) 0:46 Branch: Return with expression 0:46 Convert int to double (temp 3-component vector of double) -0:46 'i3' (uniform 3-component vector of int) -0:47 Function Definition: Fn_R_D3U(vd3; (global 3-component vector of double) +0:46 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:46 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:46 Constant: +0:46 0 (const uint) +0:47 Function Definition: Fn_R_D3U(vd3; (temp 3-component vector of double) 0:47 Function Parameters: 0:47 'p' (out 3-component vector of double) 0:? Sequence 0:47 move second child to first child (temp 3-component vector of double) 0:47 'p' (out 3-component vector of double) 0:47 Convert uint to double (temp 3-component vector of double) -0:47 'u3' (uniform 3-component vector of uint) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) 0:47 Branch: Return with expression 0:47 Convert uint to double (temp 3-component vector of double) -0:47 'u3' (uniform 3-component vector of uint) -0:48 Function Definition: Fn_R_D3B(vd3; (global 3-component vector of double) +0:47 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:47 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:47 Constant: +0:47 3 (const uint) +0:48 Function Definition: Fn_R_D3B(vd3; (temp 3-component vector of double) 0:48 Function Parameters: 0:48 'p' (out 3-component vector of double) 0:? Sequence 0:48 move second child to first child (temp 3-component vector of double) 0:48 'p' (out 3-component vector of double) 0:48 Convert bool to double (temp 3-component vector of double) -0:48 'b3' (uniform 3-component vector of bool) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) 0:48 Branch: Return with expression 0:48 Convert bool to double (temp 3-component vector of double) -0:48 'b3' (uniform 3-component vector of bool) -0:49 Function Definition: Fn_R_D3F(vd3; (global 3-component vector of double) +0:48 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:48 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:48 Constant: +0:48 1 (const uint) +0:49 Function Definition: Fn_R_D3F(vd3; (temp 3-component vector of double) 0:49 Function Parameters: 0:49 'p' (out 3-component vector of double) 0:? Sequence 0:49 move second child to first child (temp 3-component vector of double) 0:49 'p' (out 3-component vector of double) 0:49 Convert float to double (temp 3-component vector of double) -0:49 'f3' (uniform 3-component vector of float) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) 0:49 Branch: Return with expression 0:49 Convert float to double (temp 3-component vector of double) -0:49 'f3' (uniform 3-component vector of float) -0:52 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:49 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:49 Constant: +0:49 2 (const uint) +0:52 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:52 Function Parameters: 0:? Sequence 0:54 Sequence 0:54 move second child to first child (temp 3-component vector of float) 0:54 'r00' (temp 3-component vector of float) 0:54 Convert int to float (temp 3-component vector of float) -0:54 'i3' (uniform 3-component vector of int) +0:54 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:54 Constant: +0:54 0 (const uint) 0:55 Sequence 0:55 move second child to first child (temp 3-component vector of float) 0:55 'r01' (temp 3-component vector of float) 0:55 Convert bool to float (temp 3-component vector of float) -0:55 'b3' (uniform 3-component vector of bool) +0:55 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:55 Constant: +0:55 1 (const uint) 0:56 Sequence 0:56 move second child to first child (temp 3-component vector of float) 0:56 'r02' (temp 3-component vector of float) 0:56 Convert uint to float (temp 3-component vector of float) -0:56 'u3' (uniform 3-component vector of uint) +0:56 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:56 Constant: +0:56 3 (const uint) 0:57 Sequence 0:57 move second child to first child (temp 3-component vector of float) 0:57 'r03' (temp 3-component vector of float) 0:57 Convert double to float (temp 3-component vector of float) -0:57 'd3' (uniform 3-component vector of double) +0:57 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:57 Constant: +0:57 4 (const uint) 0:59 Sequence 0:59 move second child to first child (temp 3-component vector of int) 0:59 'r10' (temp 3-component vector of int) 0:59 Convert bool to int (temp 3-component vector of int) -0:59 'b3' (uniform 3-component vector of bool) +0:59 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:59 Constant: +0:59 1 (const uint) 0:60 Sequence 0:60 move second child to first child (temp 3-component vector of int) 0:60 'r11' (temp 3-component vector of int) 0:60 Convert uint to int (temp 3-component vector of int) -0:60 'u3' (uniform 3-component vector of uint) +0:60 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:60 Constant: +0:60 3 (const uint) 0:61 Sequence 0:61 move second child to first child (temp 3-component vector of int) 0:61 'r12' (temp 3-component vector of int) 0:61 Convert float to int (temp 3-component vector of int) -0:61 'f3' (uniform 3-component vector of float) +0:61 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:61 Constant: +0:61 2 (const uint) 0:62 Sequence 0:62 move second child to first child (temp 3-component vector of int) 0:62 'r13' (temp 3-component vector of int) 0:62 Convert double to int (temp 3-component vector of int) -0:62 'd3' (uniform 3-component vector of double) +0:62 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:62 Constant: +0:62 4 (const uint) 0:64 Sequence 0:64 move second child to first child (temp 3-component vector of uint) 0:64 'r20' (temp 3-component vector of uint) 0:64 Convert bool to uint (temp 3-component vector of uint) -0:64 'b3' (uniform 3-component vector of bool) +0:64 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:64 Constant: +0:64 1 (const uint) 0:65 Sequence 0:65 move second child to first child (temp 3-component vector of uint) 0:65 'r21' (temp 3-component vector of uint) 0:65 Convert int to uint (temp 3-component vector of uint) -0:65 'i3' (uniform 3-component vector of int) +0:65 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:65 Constant: +0:65 0 (const uint) 0:66 Sequence 0:66 move second child to first child (temp 3-component vector of uint) 0:66 'r22' (temp 3-component vector of uint) 0:66 Convert float to uint (temp 3-component vector of uint) -0:66 'f3' (uniform 3-component vector of float) +0:66 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:66 Constant: +0:66 2 (const uint) 0:67 Sequence 0:67 move second child to first child (temp 3-component vector of uint) 0:67 'r23' (temp 3-component vector of uint) 0:67 Convert double to uint (temp 3-component vector of uint) -0:67 'd3' (uniform 3-component vector of double) +0:67 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:67 Constant: +0:67 4 (const uint) 0:69 Sequence 0:69 move second child to first child (temp 3-component vector of bool) 0:69 'r30' (temp 3-component vector of bool) 0:69 Convert int to bool (temp 3-component vector of bool) -0:69 'i3' (uniform 3-component vector of int) +0:69 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:69 Constant: +0:69 0 (const uint) 0:70 Sequence 0:70 move second child to first child (temp 3-component vector of bool) 0:70 'r31' (temp 3-component vector of bool) 0:70 Convert uint to bool (temp 3-component vector of bool) -0:70 'u3' (uniform 3-component vector of uint) +0:70 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:70 Constant: +0:70 3 (const uint) 0:71 Sequence 0:71 move second child to first child (temp 3-component vector of bool) 0:71 'r32' (temp 3-component vector of bool) 0:71 Convert float to bool (temp 3-component vector of bool) -0:71 'f3' (uniform 3-component vector of float) +0:71 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:71 Constant: +0:71 2 (const uint) 0:72 Sequence 0:72 move second child to first child (temp 3-component vector of bool) 0:72 'r33' (temp 3-component vector of bool) 0:72 Convert double to bool (temp 3-component vector of bool) -0:72 'd3' (uniform 3-component vector of double) +0:72 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:72 Constant: +0:72 4 (const uint) 0:74 Sequence 0:74 move second child to first child (temp 3-component vector of double) 0:74 'r40' (temp 3-component vector of double) 0:74 Convert int to double (temp 3-component vector of double) -0:74 'i3' (uniform 3-component vector of int) +0:74 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:74 Constant: +0:74 0 (const uint) 0:75 Sequence 0:75 move second child to first child (temp 3-component vector of double) 0:75 'r41' (temp 3-component vector of double) 0:75 Convert uint to double (temp 3-component vector of double) -0:75 'u3' (uniform 3-component vector of uint) +0:75 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:75 Constant: +0:75 3 (const uint) 0:76 Sequence 0:76 move second child to first child (temp 3-component vector of double) 0:76 'r42' (temp 3-component vector of double) 0:76 Convert float to double (temp 3-component vector of double) -0:76 'f3' (uniform 3-component vector of float) +0:76 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:76 Constant: +0:76 2 (const uint) 0:77 Sequence 0:77 move second child to first child (temp 3-component vector of double) 0:77 'r43' (temp 3-component vector of double) 0:77 Convert bool to double (temp 3-component vector of double) -0:77 'b3' (uniform 3-component vector of bool) +0:77 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:77 Constant: +0:77 1 (const uint) 0:80 multiply second child into first child (temp 3-component vector of float) 0:80 'r00' (temp 3-component vector of float) 0:80 Convert int to float (temp 3-component vector of float) -0:80 'i3' (uniform 3-component vector of int) +0:80 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:80 Constant: +0:80 0 (const uint) 0:81 multiply second child into first child (temp 3-component vector of float) 0:81 'r01' (temp 3-component vector of float) 0:81 Convert bool to float (temp 3-component vector of float) -0:81 'b3' (uniform 3-component vector of bool) +0:81 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:81 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:81 Constant: +0:81 1 (const uint) 0:82 multiply second child into first child (temp 3-component vector of float) 0:82 'r02' (temp 3-component vector of float) 0:82 Convert uint to float (temp 3-component vector of float) -0:82 'u3' (uniform 3-component vector of uint) +0:82 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:82 Constant: +0:82 3 (const uint) 0:83 multiply second child into first child (temp 3-component vector of float) 0:83 'r03' (temp 3-component vector of float) 0:83 Convert double to float (temp 3-component vector of float) -0:83 'd3' (uniform 3-component vector of double) +0:83 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:83 Constant: +0:83 4 (const uint) 0:85 multiply second child into first child (temp 3-component vector of int) 0:85 'r10' (temp 3-component vector of int) 0:85 Convert bool to int (temp 3-component vector of int) -0:85 'b3' (uniform 3-component vector of bool) +0:85 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:85 Constant: +0:85 1 (const uint) 0:86 multiply second child into first child (temp 3-component vector of int) 0:86 'r11' (temp 3-component vector of int) 0:86 Convert uint to int (temp 3-component vector of int) -0:86 'u3' (uniform 3-component vector of uint) +0:86 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:86 Constant: +0:86 3 (const uint) 0:87 multiply second child into first child (temp 3-component vector of int) 0:87 'r12' (temp 3-component vector of int) 0:87 Convert float to int (temp 3-component vector of int) -0:87 'f3' (uniform 3-component vector of float) +0:87 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:87 Constant: +0:87 2 (const uint) 0:88 multiply second child into first child (temp 3-component vector of int) 0:88 'r13' (temp 3-component vector of int) 0:88 Convert double to int (temp 3-component vector of int) -0:88 'd3' (uniform 3-component vector of double) +0:88 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:88 Constant: +0:88 4 (const uint) 0:90 multiply second child into first child (temp 3-component vector of uint) 0:90 'r20' (temp 3-component vector of uint) 0:90 Convert bool to uint (temp 3-component vector of uint) -0:90 'b3' (uniform 3-component vector of bool) +0:90 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:90 Constant: +0:90 1 (const uint) 0:91 multiply second child into first child (temp 3-component vector of uint) 0:91 'r21' (temp 3-component vector of uint) 0:91 Convert int to uint (temp 3-component vector of uint) -0:91 'i3' (uniform 3-component vector of int) +0:91 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:91 Constant: +0:91 0 (const uint) 0:92 multiply second child into first child (temp 3-component vector of uint) 0:92 'r22' (temp 3-component vector of uint) 0:92 Convert float to uint (temp 3-component vector of uint) -0:92 'f3' (uniform 3-component vector of float) +0:92 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:92 Constant: +0:92 2 (const uint) 0:93 multiply second child into first child (temp 3-component vector of uint) 0:93 'r23' (temp 3-component vector of uint) 0:93 Convert double to uint (temp 3-component vector of uint) -0:93 'd3' (uniform 3-component vector of double) +0:93 d3: direct index for structure (layout(offset=64 ) uniform 3-component vector of double) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:93 Constant: +0:93 4 (const uint) 0:97 multiply second child into first child (temp 3-component vector of double) 0:97 'r40' (temp 3-component vector of double) 0:97 Convert int to double (temp 3-component vector of double) -0:97 'i3' (uniform 3-component vector of int) +0:97 i3: direct index for structure (layout(offset=0 ) uniform 3-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:97 Constant: +0:97 0 (const uint) 0:98 multiply second child into first child (temp 3-component vector of double) 0:98 'r41' (temp 3-component vector of double) 0:98 Convert uint to double (temp 3-component vector of double) -0:98 'u3' (uniform 3-component vector of uint) +0:98 u3: direct index for structure (layout(offset=48 ) uniform 3-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:98 Constant: +0:98 3 (const uint) 0:99 multiply second child into first child (temp 3-component vector of double) 0:99 'r42' (temp 3-component vector of double) 0:99 Convert float to double (temp 3-component vector of double) -0:99 'f3' (uniform 3-component vector of float) +0:99 f3: direct index for structure (layout(offset=32 ) uniform 3-component vector of float) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:99 Constant: +0:99 2 (const uint) 0:100 multiply second child into first child (temp 3-component vector of double) 0:100 'r43' (temp 3-component vector of double) 0:100 Convert bool to double (temp 3-component vector of double) -0:100 'b3' (uniform 3-component vector of bool) +0:100 b3: direct index for structure (layout(offset=16 ) uniform 3-component vector of bool) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:100 Constant: +0:100 1 (const uint) 0:103 vector scale second child into first child (temp 3-component vector of float) 0:103 'r00' (temp 3-component vector of float) 0:103 Convert int to float (temp float) -0:103 'is' (uniform int) +0:103 is: direct index for structure (layout(offset=88 ) uniform int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:103 Constant: +0:103 5 (const uint) 0:104 vector scale second child into first child (temp 3-component vector of float) 0:104 'r01' (temp 3-component vector of float) 0:104 Convert bool to float (temp float) -0:104 'bs' (uniform bool) +0:104 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:104 Constant: +0:104 6 (const uint) 0:105 vector scale second child into first child (temp 3-component vector of float) 0:105 'r02' (temp 3-component vector of float) 0:105 Convert uint to float (temp float) -0:105 'us' (uniform uint) +0:105 us: direct index for structure (layout(offset=100 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:105 Constant: +0:105 8 (const uint) 0:106 vector scale second child into first child (temp 3-component vector of float) 0:106 'r03' (temp 3-component vector of float) 0:106 Convert double to float (temp float) -0:106 'ds' (uniform double) +0:106 ds: direct index for structure (layout(offset=104 ) uniform double) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:106 Constant: +0:106 9 (const uint) 0:108 vector scale second child into first child (temp 3-component vector of int) 0:108 'r10' (temp 3-component vector of int) 0:108 Convert bool to int (temp int) -0:108 'bs' (uniform bool) +0:108 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:108 Constant: +0:108 6 (const uint) 0:109 vector scale second child into first child (temp 3-component vector of int) 0:109 'r11' (temp 3-component vector of int) 0:109 Convert uint to int (temp int) -0:109 'us' (uniform uint) +0:109 us: direct index for structure (layout(offset=100 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:109 Constant: +0:109 8 (const uint) 0:110 vector scale second child into first child (temp 3-component vector of int) 0:110 'r12' (temp 3-component vector of int) 0:110 Convert float to int (temp int) -0:110 'fs' (uniform float) +0:110 fs: direct index for structure (layout(offset=96 ) uniform float) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:110 Constant: +0:110 7 (const uint) 0:111 vector scale second child into first child (temp 3-component vector of int) 0:111 'r13' (temp 3-component vector of int) 0:111 Convert double to int (temp int) -0:111 'ds' (uniform double) +0:111 ds: direct index for structure (layout(offset=104 ) uniform double) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:111 Constant: +0:111 9 (const uint) 0:113 vector scale second child into first child (temp 3-component vector of uint) 0:113 'r20' (temp 3-component vector of uint) 0:113 Convert bool to uint (temp uint) -0:113 'bs' (uniform bool) +0:113 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:113 Constant: +0:113 6 (const uint) 0:114 vector scale second child into first child (temp 3-component vector of uint) 0:114 'r21' (temp 3-component vector of uint) 0:114 Convert int to uint (temp uint) -0:114 'is' (uniform int) +0:114 is: direct index for structure (layout(offset=88 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:114 Constant: +0:114 5 (const uint) 0:115 vector scale second child into first child (temp 3-component vector of uint) 0:115 'r22' (temp 3-component vector of uint) 0:115 Convert float to uint (temp uint) -0:115 'fs' (uniform float) +0:115 fs: direct index for structure (layout(offset=96 ) uniform float) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:115 Constant: +0:115 7 (const uint) 0:116 vector scale second child into first child (temp 3-component vector of uint) 0:116 'r23' (temp 3-component vector of uint) 0:116 Convert double to uint (temp uint) -0:116 'ds' (uniform double) +0:116 ds: direct index for structure (layout(offset=104 ) uniform double) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:116 Constant: +0:116 9 (const uint) 0:120 vector scale second child into first child (temp 3-component vector of double) 0:120 'r40' (temp 3-component vector of double) 0:120 Convert int to double (temp double) -0:120 'is' (uniform int) +0:120 is: direct index for structure (layout(offset=88 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:120 Constant: +0:120 5 (const uint) 0:121 vector scale second child into first child (temp 3-component vector of double) 0:121 'r41' (temp 3-component vector of double) 0:121 Convert uint to double (temp double) -0:121 'us' (uniform uint) +0:121 us: direct index for structure (layout(offset=100 ) uniform uint) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:121 Constant: +0:121 8 (const uint) 0:122 vector scale second child into first child (temp 3-component vector of double) 0:122 'r42' (temp 3-component vector of double) 0:122 Convert float to double (temp double) -0:122 'fs' (uniform float) +0:122 fs: direct index for structure (layout(offset=96 ) uniform float) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:122 Constant: +0:122 7 (const uint) 0:123 vector scale second child into first child (temp 3-component vector of double) 0:123 'r43' (temp 3-component vector of double) 0:123 Convert bool to double (temp double) -0:123 'bs' (uniform bool) +0:123 bs: direct index for structure (layout(offset=92 ) uniform bool) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) +0:123 Constant: +0:123 6 (const uint) 0:193 Sequence 0:193 move second child to first child (temp int) 0:193 'c1' (temp int) @@ -1019,8 +1562,8 @@ gl_FragCoord origin is upper left 0:199 Constant: 0:199 0 (const int) 0:199 'outval' (temp 4-component vector of float) -0:? Sequence -0:? Sequence +0:200 Sequence +0:200 Sequence 0:200 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:200 Color: direct index for structure (temp 4-component vector of float) @@ -1029,27 +1572,18 @@ gl_FragCoord origin is upper left 0:200 0 (const int) 0:200 Branch: Return 0:? Linker Objects -0:? 'i3' (uniform 3-component vector of int) -0:? 'b3' (uniform 3-component vector of bool) -0:? 'f3' (uniform 3-component vector of float) -0:? 'u3' (uniform 3-component vector of uint) -0:? 'd3' (uniform 3-component vector of double) -0:? 'is' (uniform int) -0:? 'bs' (uniform bool) -0:? 'fs' (uniform float) -0:? 'us' (uniform uint) -0:? 'ds' (uniform double) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 3-component vector of int i3, layout(offset=16 ) uniform 3-component vector of bool b3, layout(offset=32 ) uniform 3-component vector of float f3, layout(offset=48 ) uniform 3-component vector of uint u3, layout(offset=64 ) uniform 3-component vector of double d3, layout(offset=88 ) uniform int is, layout(offset=92 ) uniform bool bs, layout(offset=96 ) uniform float fs, layout(offset=100 ) uniform uint us, layout(offset=104 ) uniform double ds}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 481 +// Id's are bound by 591 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 477 + EntryPoint Fragment 4 "main" 587 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 11 "Fn_F3(vf3;" @@ -1102,44 +1636,58 @@ gl_FragCoord origin is upper left Name 100 "p" Name 104 "Fn_R_D3F(vd3;" Name 103 "p" - Name 107 "i3" - Name 115 "u3" - Name 123 "b3" - Name 135 "d3" - Name 159 "f3" - Name 252 "r00" - Name 255 "r01" - Name 258 "r02" - Name 261 "r03" - Name 264 "r10" - Name 267 "r11" - Name 270 "r12" - Name 273 "r13" - Name 276 "r20" - Name 279 "r21" - Name 282 "r22" - Name 285 "r23" - Name 288 "r30" - Name 291 "r31" - Name 294 "r32" - Name 297 "r33" - Name 300 "r40" - Name 303 "r41" - Name 306 "r42" - Name 309 "r43" - Name 377 "is" - Name 383 "bs" - Name 389 "us" - Name 395 "ds" - Name 411 "fs" - Name 459 "c1" - Name 461 "c2" - Name 464 "outval" - Name 471 "PS_OUTPUT" - MemberName 471(PS_OUTPUT) 0 "Color" - Name 473 "psout" - Name 477 "Color" - Decorate 477(Color) Location 0 + Name 106 "$Global" + MemberName 106($Global) 0 "i3" + MemberName 106($Global) 1 "b3" + MemberName 106($Global) 2 "f3" + MemberName 106($Global) 3 "u3" + MemberName 106($Global) 4 "d3" + MemberName 106($Global) 5 "is" + MemberName 106($Global) 6 "bs" + MemberName 106($Global) 7 "fs" + MemberName 106($Global) 8 "us" + MemberName 106($Global) 9 "ds" + Name 108 "" + Name 300 "r00" + Name 304 "r01" + Name 309 "r02" + Name 313 "r03" + Name 317 "r10" + Name 322 "r11" + Name 326 "r12" + Name 330 "r13" + Name 334 "r20" + Name 339 "r21" + Name 343 "r22" + Name 347 "r23" + Name 351 "r30" + Name 355 "r31" + Name 359 "r32" + Name 363 "r33" + Name 367 "r40" + Name 371 "r41" + Name 375 "r42" + Name 379 "r43" + Name 570 "c1" + Name 571 "c2" + Name 574 "outval" + Name 581 "PS_OUTPUT" + MemberName 581(PS_OUTPUT) 0 "Color" + Name 583 "psout" + Name 587 "Color" + MemberDecorate 106($Global) 0 Offset 0 + MemberDecorate 106($Global) 1 Offset 16 + MemberDecorate 106($Global) 2 Offset 32 + MemberDecorate 106($Global) 3 Offset 48 + MemberDecorate 106($Global) 4 Offset 64 + MemberDecorate 106($Global) 5 Offset 88 + MemberDecorate 106($Global) 6 Offset 92 + MemberDecorate 106($Global) 7 Offset 96 + MemberDecorate 106($Global) 8 Offset 100 + MemberDecorate 106($Global) 9 Offset 104 + Decorate 106($Global) Block + Decorate 108 DescriptorSet 0 + Decorate 587(Color) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -1167,319 +1715,381 @@ gl_FragCoord origin is upper left 67: TypeFunction 21(ivec3) 22(ptr) 80: TypeFunction 28(bvec3) 29(ptr) 93: TypeFunction 35(fvec3) 36(ptr) - 106: TypePointer UniformConstant 14(ivec3) - 107(i3): 106(ptr) Variable UniformConstant - 114: TypePointer UniformConstant 21(ivec3) - 115(u3): 114(ptr) Variable UniformConstant - 122: TypePointer UniformConstant 28(bvec3) - 123(b3): 122(ptr) Variable UniformConstant - 125: 6(float) Constant 0 - 126: 6(float) Constant 1065353216 - 127: 7(fvec3) ConstantComposite 125 125 125 - 128: 7(fvec3) ConstantComposite 126 126 126 - 134: TypePointer UniformConstant 35(fvec3) - 135(d3): 134(ptr) Variable UniformConstant - 149: 13(int) Constant 0 - 150: 13(int) Constant 1 - 151: 14(ivec3) ConstantComposite 149 149 149 - 152: 14(ivec3) ConstantComposite 150 150 150 - 158: TypePointer UniformConstant 7(fvec3) - 159(f3): 158(ptr) Variable UniformConstant - 185: 20(int) Constant 0 - 186: 20(int) Constant 1 - 187: 21(ivec3) ConstantComposite 185 185 185 - 188: 21(ivec3) ConstantComposite 186 186 186 - 219: 34(float) Constant 0 0 - 220: 35(fvec3) ConstantComposite 219 219 219 - 239: 34(float) Constant 0 1072693248 - 240: 35(fvec3) ConstantComposite 239 239 239 - 376: TypePointer UniformConstant 13(int) - 377(is): 376(ptr) Variable UniformConstant - 382: TypePointer UniformConstant 27(bool) - 383(bs): 382(ptr) Variable UniformConstant - 388: TypePointer UniformConstant 20(int) - 389(us): 388(ptr) Variable UniformConstant - 394: TypePointer UniformConstant 34(float) - 395(ds): 394(ptr) Variable UniformConstant - 410: TypePointer UniformConstant 6(float) - 411(fs): 410(ptr) Variable UniformConstant - 458: TypePointer Function 13(int) - 460: 13(int) Constant 3 - 462: TypeVector 6(float) 4 - 463: TypePointer Function 462(fvec4) - 465: 6(float) Constant 1080452710 - 471(PS_OUTPUT): TypeStruct 462(fvec4) - 472: TypePointer Function 471(PS_OUTPUT) - 476: TypePointer Output 462(fvec4) - 477(Color): 476(ptr) Variable Output + 106($Global): TypeStruct 14(ivec3) 21(ivec3) 7(fvec3) 21(ivec3) 35(fvec3) 13(int) 20(int) 6(float) 20(int) 34(float) + 107: TypePointer Uniform 106($Global) + 108: 107(ptr) Variable Uniform + 109: 13(int) Constant 0 + 110: TypePointer Uniform 14(ivec3) + 119: 13(int) Constant 3 + 120: TypePointer Uniform 21(ivec3) + 129: 13(int) Constant 1 + 132: 20(int) Constant 0 + 133: 21(ivec3) ConstantComposite 132 132 132 + 135: 6(float) Constant 0 + 136: 6(float) Constant 1065353216 + 137: 7(fvec3) ConstantComposite 135 135 135 + 138: 7(fvec3) ConstantComposite 136 136 136 + 146: 13(int) Constant 4 + 147: TypePointer Uniform 35(fvec3) + 167: 14(ivec3) ConstantComposite 109 109 109 + 168: 14(ivec3) ConstantComposite 129 129 129 + 176: 13(int) Constant 2 + 177: TypePointer Uniform 7(fvec3) + 213: 20(int) Constant 1 + 214: 21(ivec3) ConstantComposite 213 213 213 + 256: 34(float) Constant 0 0 + 257: 35(fvec3) ConstantComposite 256 256 256 + 283: 34(float) Constant 0 1072693248 + 284: 35(fvec3) ConstantComposite 283 283 283 + 468: 13(int) Constant 5 + 469: TypePointer Uniform 13(int) + 475: 13(int) Constant 6 + 476: TypePointer Uniform 20(int) + 483: 13(int) Constant 8 + 489: 13(int) Constant 9 + 490: TypePointer Uniform 34(float) + 509: 13(int) Constant 7 + 510: TypePointer Uniform 6(float) + 569: TypePointer Function 13(int) + 572: TypeVector 6(float) 4 + 573: TypePointer Function 572(fvec4) + 575: 6(float) Constant 1080452710 + 581(PS_OUTPUT): TypeStruct 572(fvec4) + 582: TypePointer Function 581(PS_OUTPUT) + 586: TypePointer Output 572(fvec4) + 587(Color): 586(ptr) Variable Output 4(main): 2 Function None 3 5: Label - 252(r00): 8(ptr) Variable Function - 255(r01): 8(ptr) Variable Function - 258(r02): 8(ptr) Variable Function - 261(r03): 8(ptr) Variable Function - 264(r10): 15(ptr) Variable Function - 267(r11): 15(ptr) Variable Function - 270(r12): 15(ptr) Variable Function - 273(r13): 15(ptr) Variable Function - 276(r20): 22(ptr) Variable Function - 279(r21): 22(ptr) Variable Function - 282(r22): 22(ptr) Variable Function - 285(r23): 22(ptr) Variable Function - 288(r30): 29(ptr) Variable Function - 291(r31): 29(ptr) Variable Function - 294(r32): 29(ptr) Variable Function - 297(r33): 29(ptr) Variable Function - 300(r40): 36(ptr) Variable Function - 303(r41): 36(ptr) Variable Function - 306(r42): 36(ptr) Variable Function - 309(r43): 36(ptr) Variable Function - 459(c1): 458(ptr) Variable Function - 461(c2): 458(ptr) Variable Function - 464(outval): 463(ptr) Variable Function - 473(psout): 472(ptr) Variable Function - 253: 14(ivec3) Load 107(i3) - 254: 7(fvec3) ConvertSToF 253 - Store 252(r00) 254 - 256: 28(bvec3) Load 123(b3) - 257: 7(fvec3) Select 256 128 127 - Store 255(r01) 257 - 259: 21(ivec3) Load 115(u3) - 260: 7(fvec3) ConvertUToF 259 - Store 258(r02) 260 - 262: 35(fvec3) Load 135(d3) - 263: 7(fvec3) FConvert 262 - Store 261(r03) 263 - 265: 28(bvec3) Load 123(b3) - 266: 14(ivec3) Select 265 152 151 - Store 264(r10) 266 - 268: 21(ivec3) Load 115(u3) - 269: 14(ivec3) Bitcast 268 - Store 267(r11) 269 - 271: 7(fvec3) Load 159(f3) - 272: 14(ivec3) ConvertFToS 271 - Store 270(r12) 272 - 274: 35(fvec3) Load 135(d3) - 275: 14(ivec3) ConvertFToS 274 - Store 273(r13) 275 - 277: 28(bvec3) Load 123(b3) - 278: 21(ivec3) Select 277 188 187 - Store 276(r20) 278 - 280: 14(ivec3) Load 107(i3) - 281: 21(ivec3) Bitcast 280 - Store 279(r21) 281 - 283: 7(fvec3) Load 159(f3) - 284: 21(ivec3) ConvertFToU 283 - Store 282(r22) 284 - 286: 35(fvec3) Load 135(d3) - 287: 21(ivec3) ConvertFToU 286 - Store 285(r23) 287 - 289: 14(ivec3) Load 107(i3) - 290: 28(bvec3) INotEqual 289 187 - Store 288(r30) 290 - 292: 21(ivec3) Load 115(u3) - 293: 28(bvec3) INotEqual 292 187 - Store 291(r31) 293 - 295: 7(fvec3) Load 159(f3) - 296: 28(bvec3) FOrdNotEqual 295 127 - Store 294(r32) 296 - 298: 35(fvec3) Load 135(d3) - 299: 28(bvec3) FOrdNotEqual 298 220 - Store 297(r33) 299 - 301: 14(ivec3) Load 107(i3) - 302: 35(fvec3) ConvertSToF 301 - Store 300(r40) 302 - 304: 21(ivec3) Load 115(u3) - 305: 35(fvec3) ConvertUToF 304 - Store 303(r41) 305 - 307: 7(fvec3) Load 159(f3) - 308: 35(fvec3) FConvert 307 - Store 306(r42) 308 - 310: 28(bvec3) Load 123(b3) - 311: 35(fvec3) Select 310 240 220 - Store 309(r43) 311 - 312: 14(ivec3) Load 107(i3) - 313: 7(fvec3) ConvertSToF 312 - 314: 7(fvec3) Load 252(r00) - 315: 7(fvec3) FMul 314 313 - Store 252(r00) 315 - 316: 28(bvec3) Load 123(b3) - 317: 7(fvec3) Select 316 128 127 - 318: 7(fvec3) Load 255(r01) - 319: 7(fvec3) FMul 318 317 - Store 255(r01) 319 - 320: 21(ivec3) Load 115(u3) - 321: 7(fvec3) ConvertUToF 320 - 322: 7(fvec3) Load 258(r02) - 323: 7(fvec3) FMul 322 321 - Store 258(r02) 323 - 324: 35(fvec3) Load 135(d3) - 325: 7(fvec3) FConvert 324 - 326: 7(fvec3) Load 261(r03) - 327: 7(fvec3) FMul 326 325 - Store 261(r03) 327 - 328: 28(bvec3) Load 123(b3) - 329: 14(ivec3) Select 328 152 151 - 330: 14(ivec3) Load 264(r10) - 331: 14(ivec3) IMul 330 329 - Store 264(r10) 331 - 332: 21(ivec3) Load 115(u3) - 333: 14(ivec3) Bitcast 332 - 334: 14(ivec3) Load 267(r11) - 335: 14(ivec3) IMul 334 333 - Store 267(r11) 335 - 336: 7(fvec3) Load 159(f3) - 337: 14(ivec3) ConvertFToS 336 - 338: 14(ivec3) Load 270(r12) - 339: 14(ivec3) IMul 338 337 - Store 270(r12) 339 - 340: 35(fvec3) Load 135(d3) - 341: 14(ivec3) ConvertFToS 340 - 342: 14(ivec3) Load 273(r13) - 343: 14(ivec3) IMul 342 341 - Store 273(r13) 343 - 344: 28(bvec3) Load 123(b3) - 345: 21(ivec3) Select 344 188 187 - 346: 21(ivec3) Load 276(r20) - 347: 21(ivec3) IMul 346 345 - Store 276(r20) 347 - 348: 14(ivec3) Load 107(i3) - 349: 21(ivec3) Bitcast 348 - 350: 21(ivec3) Load 279(r21) - 351: 21(ivec3) IMul 350 349 - Store 279(r21) 351 - 352: 7(fvec3) Load 159(f3) - 353: 21(ivec3) ConvertFToU 352 - 354: 21(ivec3) Load 282(r22) - 355: 21(ivec3) IMul 354 353 - Store 282(r22) 355 - 356: 35(fvec3) Load 135(d3) - 357: 21(ivec3) ConvertFToU 356 - 358: 21(ivec3) Load 285(r23) - 359: 21(ivec3) IMul 358 357 - Store 285(r23) 359 - 360: 14(ivec3) Load 107(i3) - 361: 35(fvec3) ConvertSToF 360 - 362: 35(fvec3) Load 300(r40) - 363: 35(fvec3) FMul 362 361 - Store 300(r40) 363 - 364: 21(ivec3) Load 115(u3) - 365: 35(fvec3) ConvertUToF 364 - 366: 35(fvec3) Load 303(r41) - 367: 35(fvec3) FMul 366 365 - Store 303(r41) 367 - 368: 7(fvec3) Load 159(f3) - 369: 35(fvec3) FConvert 368 - 370: 35(fvec3) Load 306(r42) - 371: 35(fvec3) FMul 370 369 - Store 306(r42) 371 - 372: 28(bvec3) Load 123(b3) - 373: 35(fvec3) Select 372 240 220 - 374: 35(fvec3) Load 309(r43) - 375: 35(fvec3) FMul 374 373 - Store 309(r43) 375 - 378: 13(int) Load 377(is) - 379: 6(float) ConvertSToF 378 - 380: 7(fvec3) Load 252(r00) - 381: 7(fvec3) VectorTimesScalar 380 379 - Store 252(r00) 381 - 384: 27(bool) Load 383(bs) - 385: 6(float) Select 384 126 125 - 386: 7(fvec3) Load 255(r01) - 387: 7(fvec3) VectorTimesScalar 386 385 - Store 255(r01) 387 - 390: 20(int) Load 389(us) - 391: 6(float) ConvertUToF 390 - 392: 7(fvec3) Load 258(r02) - 393: 7(fvec3) VectorTimesScalar 392 391 - Store 258(r02) 393 - 396: 34(float) Load 395(ds) - 397: 6(float) FConvert 396 - 398: 7(fvec3) Load 261(r03) - 399: 7(fvec3) VectorTimesScalar 398 397 - Store 261(r03) 399 - 400: 27(bool) Load 383(bs) - 401: 13(int) Select 400 150 149 - 402: 14(ivec3) Load 264(r10) - 403: 14(ivec3) CompositeConstruct 401 401 401 - 404: 14(ivec3) IMul 402 403 - Store 264(r10) 404 - 405: 20(int) Load 389(us) - 406: 13(int) Bitcast 405 - 407: 14(ivec3) Load 267(r11) - 408: 14(ivec3) CompositeConstruct 406 406 406 - 409: 14(ivec3) IMul 407 408 - Store 267(r11) 409 - 412: 6(float) Load 411(fs) - 413: 13(int) ConvertFToS 412 - 414: 14(ivec3) Load 270(r12) - 415: 14(ivec3) CompositeConstruct 413 413 413 - 416: 14(ivec3) IMul 414 415 - Store 270(r12) 416 - 417: 34(float) Load 395(ds) - 418: 13(int) ConvertFToS 417 - 419: 14(ivec3) Load 273(r13) - 420: 14(ivec3) CompositeConstruct 418 418 418 - 421: 14(ivec3) IMul 419 420 - Store 273(r13) 421 - 422: 27(bool) Load 383(bs) - 423: 20(int) Select 422 186 185 - 424: 21(ivec3) Load 276(r20) - 425: 21(ivec3) CompositeConstruct 423 423 423 - 426: 21(ivec3) IMul 424 425 - Store 276(r20) 426 - 427: 13(int) Load 377(is) - 428: 20(int) Bitcast 427 - 429: 21(ivec3) Load 279(r21) - 430: 21(ivec3) CompositeConstruct 428 428 428 - 431: 21(ivec3) IMul 429 430 - Store 279(r21) 431 - 432: 6(float) Load 411(fs) - 433: 20(int) ConvertFToU 432 - 434: 21(ivec3) Load 282(r22) - 435: 21(ivec3) CompositeConstruct 433 433 433 - 436: 21(ivec3) IMul 434 435 - Store 282(r22) 436 - 437: 34(float) Load 395(ds) - 438: 20(int) ConvertFToU 437 - 439: 21(ivec3) Load 285(r23) - 440: 21(ivec3) CompositeConstruct 438 438 438 - 441: 21(ivec3) IMul 439 440 - Store 285(r23) 441 - 442: 13(int) Load 377(is) - 443: 34(float) ConvertSToF 442 - 444: 35(fvec3) Load 300(r40) - 445: 35(fvec3) VectorTimesScalar 444 443 - Store 300(r40) 445 - 446: 20(int) Load 389(us) - 447: 34(float) ConvertUToF 446 - 448: 35(fvec3) Load 303(r41) - 449: 35(fvec3) VectorTimesScalar 448 447 - Store 303(r41) 449 - 450: 6(float) Load 411(fs) - 451: 34(float) FConvert 450 - 452: 35(fvec3) Load 306(r42) - 453: 35(fvec3) VectorTimesScalar 452 451 - Store 306(r42) 453 - 454: 27(bool) Load 383(bs) - 455: 34(float) Select 454 239 219 - 456: 35(fvec3) Load 309(r43) - 457: 35(fvec3) VectorTimesScalar 456 455 - Store 309(r43) 457 - Store 459(c1) 460 - Store 461(c2) 460 - 466: 13(int) Load 459(c1) - 467: 6(float) ConvertSToF 466 - 468: 13(int) Load 461(c2) - 469: 6(float) ConvertSToF 468 - 470: 462(fvec4) CompositeConstruct 465 465 467 469 - Store 464(outval) 470 - 474: 462(fvec4) Load 464(outval) - 475: 463(ptr) AccessChain 473(psout) 149 - Store 475 474 - 478: 463(ptr) AccessChain 473(psout) 149 - 479: 462(fvec4) Load 478 - Store 477(Color) 479 + 300(r00): 8(ptr) Variable Function + 304(r01): 8(ptr) Variable Function + 309(r02): 8(ptr) Variable Function + 313(r03): 8(ptr) Variable Function + 317(r10): 15(ptr) Variable Function + 322(r11): 15(ptr) Variable Function + 326(r12): 15(ptr) Variable Function + 330(r13): 15(ptr) Variable Function + 334(r20): 22(ptr) Variable Function + 339(r21): 22(ptr) Variable Function + 343(r22): 22(ptr) Variable Function + 347(r23): 22(ptr) Variable Function + 351(r30): 29(ptr) Variable Function + 355(r31): 29(ptr) Variable Function + 359(r32): 29(ptr) Variable Function + 363(r33): 29(ptr) Variable Function + 367(r40): 36(ptr) Variable Function + 371(r41): 36(ptr) Variable Function + 375(r42): 36(ptr) Variable Function + 379(r43): 36(ptr) Variable Function + 570(c1): 569(ptr) Variable Function + 571(c2): 569(ptr) Variable Function + 574(outval): 573(ptr) Variable Function + 583(psout): 582(ptr) Variable Function + 301: 110(ptr) AccessChain 108 109 + 302: 14(ivec3) Load 301 + 303: 7(fvec3) ConvertSToF 302 + Store 300(r00) 303 + 305: 120(ptr) AccessChain 108 129 + 306: 21(ivec3) Load 305 + 307: 28(bvec3) INotEqual 306 133 + 308: 7(fvec3) Select 307 138 137 + Store 304(r01) 308 + 310: 120(ptr) AccessChain 108 119 + 311: 21(ivec3) Load 310 + 312: 7(fvec3) ConvertUToF 311 + Store 309(r02) 312 + 314: 147(ptr) AccessChain 108 146 + 315: 35(fvec3) Load 314 + 316: 7(fvec3) FConvert 315 + Store 313(r03) 316 + 318: 120(ptr) AccessChain 108 129 + 319: 21(ivec3) Load 318 + 320: 28(bvec3) INotEqual 319 133 + 321: 14(ivec3) Select 320 168 167 + Store 317(r10) 321 + 323: 120(ptr) AccessChain 108 119 + 324: 21(ivec3) Load 323 + 325: 14(ivec3) Bitcast 324 + Store 322(r11) 325 + 327: 177(ptr) AccessChain 108 176 + 328: 7(fvec3) Load 327 + 329: 14(ivec3) ConvertFToS 328 + Store 326(r12) 329 + 331: 147(ptr) AccessChain 108 146 + 332: 35(fvec3) Load 331 + 333: 14(ivec3) ConvertFToS 332 + Store 330(r13) 333 + 335: 120(ptr) AccessChain 108 129 + 336: 21(ivec3) Load 335 + 337: 28(bvec3) INotEqual 336 133 + 338: 21(ivec3) Select 337 214 133 + Store 334(r20) 338 + 340: 110(ptr) AccessChain 108 109 + 341: 14(ivec3) Load 340 + 342: 21(ivec3) Bitcast 341 + Store 339(r21) 342 + 344: 177(ptr) AccessChain 108 176 + 345: 7(fvec3) Load 344 + 346: 21(ivec3) ConvertFToU 345 + Store 343(r22) 346 + 348: 147(ptr) AccessChain 108 146 + 349: 35(fvec3) Load 348 + 350: 21(ivec3) ConvertFToU 349 + Store 347(r23) 350 + 352: 110(ptr) AccessChain 108 109 + 353: 14(ivec3) Load 352 + 354: 28(bvec3) INotEqual 353 133 + Store 351(r30) 354 + 356: 120(ptr) AccessChain 108 119 + 357: 21(ivec3) Load 356 + 358: 28(bvec3) INotEqual 357 133 + Store 355(r31) 358 + 360: 177(ptr) AccessChain 108 176 + 361: 7(fvec3) Load 360 + 362: 28(bvec3) FOrdNotEqual 361 137 + Store 359(r32) 362 + 364: 147(ptr) AccessChain 108 146 + 365: 35(fvec3) Load 364 + 366: 28(bvec3) FOrdNotEqual 365 257 + Store 363(r33) 366 + 368: 110(ptr) AccessChain 108 109 + 369: 14(ivec3) Load 368 + 370: 35(fvec3) ConvertSToF 369 + Store 367(r40) 370 + 372: 120(ptr) AccessChain 108 119 + 373: 21(ivec3) Load 372 + 374: 35(fvec3) ConvertUToF 373 + Store 371(r41) 374 + 376: 177(ptr) AccessChain 108 176 + 377: 7(fvec3) Load 376 + 378: 35(fvec3) FConvert 377 + Store 375(r42) 378 + 380: 120(ptr) AccessChain 108 129 + 381: 21(ivec3) Load 380 + 382: 28(bvec3) INotEqual 381 133 + 383: 35(fvec3) Select 382 284 257 + Store 379(r43) 383 + 384: 110(ptr) AccessChain 108 109 + 385: 14(ivec3) Load 384 + 386: 7(fvec3) ConvertSToF 385 + 387: 7(fvec3) Load 300(r00) + 388: 7(fvec3) FMul 387 386 + Store 300(r00) 388 + 389: 120(ptr) AccessChain 108 129 + 390: 21(ivec3) Load 389 + 391: 28(bvec3) INotEqual 390 133 + 392: 7(fvec3) Select 391 138 137 + 393: 7(fvec3) Load 304(r01) + 394: 7(fvec3) FMul 393 392 + Store 304(r01) 394 + 395: 120(ptr) AccessChain 108 119 + 396: 21(ivec3) Load 395 + 397: 7(fvec3) ConvertUToF 396 + 398: 7(fvec3) Load 309(r02) + 399: 7(fvec3) FMul 398 397 + Store 309(r02) 399 + 400: 147(ptr) AccessChain 108 146 + 401: 35(fvec3) Load 400 + 402: 7(fvec3) FConvert 401 + 403: 7(fvec3) Load 313(r03) + 404: 7(fvec3) FMul 403 402 + Store 313(r03) 404 + 405: 120(ptr) AccessChain 108 129 + 406: 21(ivec3) Load 405 + 407: 28(bvec3) INotEqual 406 133 + 408: 14(ivec3) Select 407 168 167 + 409: 14(ivec3) Load 317(r10) + 410: 14(ivec3) IMul 409 408 + Store 317(r10) 410 + 411: 120(ptr) AccessChain 108 119 + 412: 21(ivec3) Load 411 + 413: 14(ivec3) Bitcast 412 + 414: 14(ivec3) Load 322(r11) + 415: 14(ivec3) IMul 414 413 + Store 322(r11) 415 + 416: 177(ptr) AccessChain 108 176 + 417: 7(fvec3) Load 416 + 418: 14(ivec3) ConvertFToS 417 + 419: 14(ivec3) Load 326(r12) + 420: 14(ivec3) IMul 419 418 + Store 326(r12) 420 + 421: 147(ptr) AccessChain 108 146 + 422: 35(fvec3) Load 421 + 423: 14(ivec3) ConvertFToS 422 + 424: 14(ivec3) Load 330(r13) + 425: 14(ivec3) IMul 424 423 + Store 330(r13) 425 + 426: 120(ptr) AccessChain 108 129 + 427: 21(ivec3) Load 426 + 428: 28(bvec3) INotEqual 427 133 + 429: 21(ivec3) Select 428 214 133 + 430: 21(ivec3) Load 334(r20) + 431: 21(ivec3) IMul 430 429 + Store 334(r20) 431 + 432: 110(ptr) AccessChain 108 109 + 433: 14(ivec3) Load 432 + 434: 21(ivec3) Bitcast 433 + 435: 21(ivec3) Load 339(r21) + 436: 21(ivec3) IMul 435 434 + Store 339(r21) 436 + 437: 177(ptr) AccessChain 108 176 + 438: 7(fvec3) Load 437 + 439: 21(ivec3) ConvertFToU 438 + 440: 21(ivec3) Load 343(r22) + 441: 21(ivec3) IMul 440 439 + Store 343(r22) 441 + 442: 147(ptr) AccessChain 108 146 + 443: 35(fvec3) Load 442 + 444: 21(ivec3) ConvertFToU 443 + 445: 21(ivec3) Load 347(r23) + 446: 21(ivec3) IMul 445 444 + Store 347(r23) 446 + 447: 110(ptr) AccessChain 108 109 + 448: 14(ivec3) Load 447 + 449: 35(fvec3) ConvertSToF 448 + 450: 35(fvec3) Load 367(r40) + 451: 35(fvec3) FMul 450 449 + Store 367(r40) 451 + 452: 120(ptr) AccessChain 108 119 + 453: 21(ivec3) Load 452 + 454: 35(fvec3) ConvertUToF 453 + 455: 35(fvec3) Load 371(r41) + 456: 35(fvec3) FMul 455 454 + Store 371(r41) 456 + 457: 177(ptr) AccessChain 108 176 + 458: 7(fvec3) Load 457 + 459: 35(fvec3) FConvert 458 + 460: 35(fvec3) Load 375(r42) + 461: 35(fvec3) FMul 460 459 + Store 375(r42) 461 + 462: 120(ptr) AccessChain 108 129 + 463: 21(ivec3) Load 462 + 464: 28(bvec3) INotEqual 463 133 + 465: 35(fvec3) Select 464 284 257 + 466: 35(fvec3) Load 379(r43) + 467: 35(fvec3) FMul 466 465 + Store 379(r43) 467 + 470: 469(ptr) AccessChain 108 468 + 471: 13(int) Load 470 + 472: 6(float) ConvertSToF 471 + 473: 7(fvec3) Load 300(r00) + 474: 7(fvec3) VectorTimesScalar 473 472 + Store 300(r00) 474 + 477: 476(ptr) AccessChain 108 475 + 478: 20(int) Load 477 + 479: 27(bool) INotEqual 478 132 + 480: 6(float) Select 479 136 135 + 481: 7(fvec3) Load 304(r01) + 482: 7(fvec3) VectorTimesScalar 481 480 + Store 304(r01) 482 + 484: 476(ptr) AccessChain 108 483 + 485: 20(int) Load 484 + 486: 6(float) ConvertUToF 485 + 487: 7(fvec3) Load 309(r02) + 488: 7(fvec3) VectorTimesScalar 487 486 + Store 309(r02) 488 + 491: 490(ptr) AccessChain 108 489 + 492: 34(float) Load 491 + 493: 6(float) FConvert 492 + 494: 7(fvec3) Load 313(r03) + 495: 7(fvec3) VectorTimesScalar 494 493 + Store 313(r03) 495 + 496: 476(ptr) AccessChain 108 475 + 497: 20(int) Load 496 + 498: 27(bool) INotEqual 497 132 + 499: 13(int) Select 498 129 109 + 500: 14(ivec3) Load 317(r10) + 501: 14(ivec3) CompositeConstruct 499 499 499 + 502: 14(ivec3) IMul 500 501 + Store 317(r10) 502 + 503: 476(ptr) AccessChain 108 483 + 504: 20(int) Load 503 + 505: 13(int) Bitcast 504 + 506: 14(ivec3) Load 322(r11) + 507: 14(ivec3) CompositeConstruct 505 505 505 + 508: 14(ivec3) IMul 506 507 + Store 322(r11) 508 + 511: 510(ptr) AccessChain 108 509 + 512: 6(float) Load 511 + 513: 13(int) ConvertFToS 512 + 514: 14(ivec3) Load 326(r12) + 515: 14(ivec3) CompositeConstruct 513 513 513 + 516: 14(ivec3) IMul 514 515 + Store 326(r12) 516 + 517: 490(ptr) AccessChain 108 489 + 518: 34(float) Load 517 + 519: 13(int) ConvertFToS 518 + 520: 14(ivec3) Load 330(r13) + 521: 14(ivec3) CompositeConstruct 519 519 519 + 522: 14(ivec3) IMul 520 521 + Store 330(r13) 522 + 523: 476(ptr) AccessChain 108 475 + 524: 20(int) Load 523 + 525: 27(bool) INotEqual 524 132 + 526: 20(int) Select 525 213 132 + 527: 21(ivec3) Load 334(r20) + 528: 21(ivec3) CompositeConstruct 526 526 526 + 529: 21(ivec3) IMul 527 528 + Store 334(r20) 529 + 530: 469(ptr) AccessChain 108 468 + 531: 13(int) Load 530 + 532: 20(int) Bitcast 531 + 533: 21(ivec3) Load 339(r21) + 534: 21(ivec3) CompositeConstruct 532 532 532 + 535: 21(ivec3) IMul 533 534 + Store 339(r21) 535 + 536: 510(ptr) AccessChain 108 509 + 537: 6(float) Load 536 + 538: 20(int) ConvertFToU 537 + 539: 21(ivec3) Load 343(r22) + 540: 21(ivec3) CompositeConstruct 538 538 538 + 541: 21(ivec3) IMul 539 540 + Store 343(r22) 541 + 542: 490(ptr) AccessChain 108 489 + 543: 34(float) Load 542 + 544: 20(int) ConvertFToU 543 + 545: 21(ivec3) Load 347(r23) + 546: 21(ivec3) CompositeConstruct 544 544 544 + 547: 21(ivec3) IMul 545 546 + Store 347(r23) 547 + 548: 469(ptr) AccessChain 108 468 + 549: 13(int) Load 548 + 550: 34(float) ConvertSToF 549 + 551: 35(fvec3) Load 367(r40) + 552: 35(fvec3) VectorTimesScalar 551 550 + Store 367(r40) 552 + 553: 476(ptr) AccessChain 108 483 + 554: 20(int) Load 553 + 555: 34(float) ConvertUToF 554 + 556: 35(fvec3) Load 371(r41) + 557: 35(fvec3) VectorTimesScalar 556 555 + Store 371(r41) 557 + 558: 510(ptr) AccessChain 108 509 + 559: 6(float) Load 558 + 560: 34(float) FConvert 559 + 561: 35(fvec3) Load 375(r42) + 562: 35(fvec3) VectorTimesScalar 561 560 + Store 375(r42) 562 + 563: 476(ptr) AccessChain 108 475 + 564: 20(int) Load 563 + 565: 27(bool) INotEqual 564 132 + 566: 34(float) Select 565 283 256 + 567: 35(fvec3) Load 379(r43) + 568: 35(fvec3) VectorTimesScalar 567 566 + Store 379(r43) 568 + Store 570(c1) 119 + Store 571(c2) 119 + 576: 13(int) Load 570(c1) + 577: 6(float) ConvertSToF 576 + 578: 13(int) Load 571(c2) + 579: 6(float) ConvertSToF 578 + 580: 572(fvec4) CompositeConstruct 575 575 577 579 + Store 574(outval) 580 + 584: 572(fvec4) Load 574(outval) + 585: 573(ptr) AccessChain 583(psout) 109 + Store 585 584 + 588: 573(ptr) AccessChain 583(psout) 109 + 589: 572(fvec4) Load 588 + Store 587(Color) 589 Return FunctionEnd 11(Fn_F3(vf3;): 2 Function None 9 @@ -1510,200 +2120,248 @@ gl_FragCoord origin is upper left 43(Fn_R_F3I(vf3;): 7(fvec3) Function None 41 42(p): 8(ptr) FunctionParameter 44: Label - 108: 14(ivec3) Load 107(i3) - 109: 7(fvec3) ConvertSToF 108 - Store 42(p) 109 - 110: 14(ivec3) Load 107(i3) - 111: 7(fvec3) ConvertSToF 110 - ReturnValue 111 + 111: 110(ptr) AccessChain 108 109 + 112: 14(ivec3) Load 111 + 113: 7(fvec3) ConvertSToF 112 + Store 42(p) 113 + 114: 110(ptr) AccessChain 108 109 + 115: 14(ivec3) Load 114 + 116: 7(fvec3) ConvertSToF 115 + ReturnValue 116 FunctionEnd 46(Fn_R_F3U(vf3;): 7(fvec3) Function None 41 45(p): 8(ptr) FunctionParameter 47: Label - 116: 21(ivec3) Load 115(u3) - 117: 7(fvec3) ConvertUToF 116 - Store 45(p) 117 - 118: 21(ivec3) Load 115(u3) - 119: 7(fvec3) ConvertUToF 118 - ReturnValue 119 + 121: 120(ptr) AccessChain 108 119 + 122: 21(ivec3) Load 121 + 123: 7(fvec3) ConvertUToF 122 + Store 45(p) 123 + 124: 120(ptr) AccessChain 108 119 + 125: 21(ivec3) Load 124 + 126: 7(fvec3) ConvertUToF 125 + ReturnValue 126 FunctionEnd 49(Fn_R_F3B(vf3;): 7(fvec3) Function None 41 48(p): 8(ptr) FunctionParameter 50: Label - 124: 28(bvec3) Load 123(b3) - 129: 7(fvec3) Select 124 128 127 - Store 48(p) 129 - 130: 28(bvec3) Load 123(b3) - 131: 7(fvec3) Select 130 128 127 - ReturnValue 131 + 130: 120(ptr) AccessChain 108 129 + 131: 21(ivec3) Load 130 + 134: 28(bvec3) INotEqual 131 133 + 139: 7(fvec3) Select 134 138 137 + Store 48(p) 139 + 140: 120(ptr) AccessChain 108 129 + 141: 21(ivec3) Load 140 + 142: 28(bvec3) INotEqual 141 133 + 143: 7(fvec3) Select 142 138 137 + ReturnValue 143 FunctionEnd 52(Fn_R_F3D(vf3;): 7(fvec3) Function None 41 51(p): 8(ptr) FunctionParameter 53: Label - 136: 35(fvec3) Load 135(d3) - 137: 7(fvec3) FConvert 136 - Store 51(p) 137 - 138: 35(fvec3) Load 135(d3) - 139: 7(fvec3) FConvert 138 - ReturnValue 139 + 148: 147(ptr) AccessChain 108 146 + 149: 35(fvec3) Load 148 + 150: 7(fvec3) FConvert 149 + Store 51(p) 150 + 151: 147(ptr) AccessChain 108 146 + 152: 35(fvec3) Load 151 + 153: 7(fvec3) FConvert 152 + ReturnValue 153 FunctionEnd 56(Fn_R_I3U(vi3;): 14(ivec3) Function None 54 55(p): 15(ptr) FunctionParameter 57: Label - 142: 21(ivec3) Load 115(u3) - 143: 14(ivec3) Bitcast 142 - Store 55(p) 143 - 144: 21(ivec3) Load 115(u3) - 145: 14(ivec3) Bitcast 144 - ReturnValue 145 + 156: 120(ptr) AccessChain 108 119 + 157: 21(ivec3) Load 156 + 158: 14(ivec3) Bitcast 157 + Store 55(p) 158 + 159: 120(ptr) AccessChain 108 119 + 160: 21(ivec3) Load 159 + 161: 14(ivec3) Bitcast 160 + ReturnValue 161 FunctionEnd 59(Fn_R_I3B(vi3;): 14(ivec3) Function None 54 58(p): 15(ptr) FunctionParameter 60: Label - 148: 28(bvec3) Load 123(b3) - 153: 14(ivec3) Select 148 152 151 - Store 58(p) 153 - 154: 28(bvec3) Load 123(b3) - 155: 14(ivec3) Select 154 152 151 - ReturnValue 155 + 164: 120(ptr) AccessChain 108 129 + 165: 21(ivec3) Load 164 + 166: 28(bvec3) INotEqual 165 133 + 169: 14(ivec3) Select 166 168 167 + Store 58(p) 169 + 170: 120(ptr) AccessChain 108 129 + 171: 21(ivec3) Load 170 + 172: 28(bvec3) INotEqual 171 133 + 173: 14(ivec3) Select 172 168 167 + ReturnValue 173 FunctionEnd 62(Fn_R_I3F(vi3;): 14(ivec3) Function None 54 61(p): 15(ptr) FunctionParameter 63: Label - 160: 7(fvec3) Load 159(f3) - 161: 14(ivec3) ConvertFToS 160 - Store 61(p) 161 - 162: 7(fvec3) Load 159(f3) - 163: 14(ivec3) ConvertFToS 162 - ReturnValue 163 + 178: 177(ptr) AccessChain 108 176 + 179: 7(fvec3) Load 178 + 180: 14(ivec3) ConvertFToS 179 + Store 61(p) 180 + 181: 177(ptr) AccessChain 108 176 + 182: 7(fvec3) Load 181 + 183: 14(ivec3) ConvertFToS 182 + ReturnValue 183 FunctionEnd 65(Fn_R_I3D(vi3;): 14(ivec3) Function None 54 64(p): 15(ptr) FunctionParameter 66: Label - 166: 35(fvec3) Load 135(d3) - 167: 14(ivec3) ConvertFToS 166 - Store 64(p) 167 - 168: 35(fvec3) Load 135(d3) - 169: 14(ivec3) ConvertFToS 168 - ReturnValue 169 + 186: 147(ptr) AccessChain 108 146 + 187: 35(fvec3) Load 186 + 188: 14(ivec3) ConvertFToS 187 + Store 64(p) 188 + 189: 147(ptr) AccessChain 108 146 + 190: 35(fvec3) Load 189 + 191: 14(ivec3) ConvertFToS 190 + ReturnValue 191 FunctionEnd 69(Fn_R_U3I(vu3;): 21(ivec3) Function None 67 68(p): 22(ptr) FunctionParameter 70: Label - 172: 14(ivec3) Load 107(i3) - 173: 21(ivec3) Bitcast 172 - Store 68(p) 173 - 174: 14(ivec3) Load 107(i3) - 175: 21(ivec3) Bitcast 174 - ReturnValue 175 + 194: 110(ptr) AccessChain 108 109 + 195: 14(ivec3) Load 194 + 196: 21(ivec3) Bitcast 195 + Store 68(p) 196 + 197: 110(ptr) AccessChain 108 109 + 198: 14(ivec3) Load 197 + 199: 21(ivec3) Bitcast 198 + ReturnValue 199 FunctionEnd 72(Fn_R_U3F(vu3;): 21(ivec3) Function None 67 71(p): 22(ptr) FunctionParameter 73: Label - 178: 7(fvec3) Load 159(f3) - 179: 21(ivec3) ConvertFToU 178 - Store 71(p) 179 - 180: 7(fvec3) Load 159(f3) - 181: 21(ivec3) ConvertFToU 180 - ReturnValue 181 + 202: 177(ptr) AccessChain 108 176 + 203: 7(fvec3) Load 202 + 204: 21(ivec3) ConvertFToU 203 + Store 71(p) 204 + 205: 177(ptr) AccessChain 108 176 + 206: 7(fvec3) Load 205 + 207: 21(ivec3) ConvertFToU 206 + ReturnValue 207 FunctionEnd 75(Fn_R_U3B(vu3;): 21(ivec3) Function None 67 74(p): 22(ptr) FunctionParameter 76: Label - 184: 28(bvec3) Load 123(b3) - 189: 21(ivec3) Select 184 188 187 - Store 74(p) 189 - 190: 28(bvec3) Load 123(b3) - 191: 21(ivec3) Select 190 188 187 - ReturnValue 191 + 210: 120(ptr) AccessChain 108 129 + 211: 21(ivec3) Load 210 + 212: 28(bvec3) INotEqual 211 133 + 215: 21(ivec3) Select 212 214 133 + Store 74(p) 215 + 216: 120(ptr) AccessChain 108 129 + 217: 21(ivec3) Load 216 + 218: 28(bvec3) INotEqual 217 133 + 219: 21(ivec3) Select 218 214 133 + ReturnValue 219 FunctionEnd 78(Fn_R_U3D(vu3;): 21(ivec3) Function None 67 77(p): 22(ptr) FunctionParameter 79: Label - 194: 35(fvec3) Load 135(d3) - 195: 21(ivec3) ConvertFToU 194 - Store 77(p) 195 - 196: 35(fvec3) Load 135(d3) - 197: 21(ivec3) ConvertFToU 196 - ReturnValue 197 + 222: 147(ptr) AccessChain 108 146 + 223: 35(fvec3) Load 222 + 224: 21(ivec3) ConvertFToU 223 + Store 77(p) 224 + 225: 147(ptr) AccessChain 108 146 + 226: 35(fvec3) Load 225 + 227: 21(ivec3) ConvertFToU 226 + ReturnValue 227 FunctionEnd 82(Fn_R_B3I(vb3;): 28(bvec3) Function None 80 81(p): 29(ptr) FunctionParameter 83: Label - 200: 14(ivec3) Load 107(i3) - 201: 28(bvec3) INotEqual 200 187 - Store 81(p) 201 - 202: 14(ivec3) Load 107(i3) - 203: 28(bvec3) INotEqual 202 187 - ReturnValue 203 + 230: 110(ptr) AccessChain 108 109 + 231: 14(ivec3) Load 230 + 232: 28(bvec3) INotEqual 231 133 + Store 81(p) 232 + 233: 110(ptr) AccessChain 108 109 + 234: 14(ivec3) Load 233 + 235: 28(bvec3) INotEqual 234 133 + ReturnValue 235 FunctionEnd 85(Fn_R_B3U(vb3;): 28(bvec3) Function None 80 84(p): 29(ptr) FunctionParameter 86: Label - 206: 21(ivec3) Load 115(u3) - 207: 28(bvec3) INotEqual 206 187 - Store 84(p) 207 - 208: 21(ivec3) Load 115(u3) - 209: 28(bvec3) INotEqual 208 187 - ReturnValue 209 + 238: 120(ptr) AccessChain 108 119 + 239: 21(ivec3) Load 238 + 240: 28(bvec3) INotEqual 239 133 + Store 84(p) 240 + 241: 120(ptr) AccessChain 108 119 + 242: 21(ivec3) Load 241 + 243: 28(bvec3) INotEqual 242 133 + ReturnValue 243 FunctionEnd 88(Fn_R_B3F(vb3;): 28(bvec3) Function None 80 87(p): 29(ptr) FunctionParameter 89: Label - 212: 7(fvec3) Load 159(f3) - 213: 28(bvec3) FOrdNotEqual 212 127 - Store 87(p) 213 - 214: 7(fvec3) Load 159(f3) - 215: 28(bvec3) FOrdNotEqual 214 127 - ReturnValue 215 + 246: 177(ptr) AccessChain 108 176 + 247: 7(fvec3) Load 246 + 248: 28(bvec3) FOrdNotEqual 247 137 + Store 87(p) 248 + 249: 177(ptr) AccessChain 108 176 + 250: 7(fvec3) Load 249 + 251: 28(bvec3) FOrdNotEqual 250 137 + ReturnValue 251 FunctionEnd 91(Fn_R_B3D(vb3;): 28(bvec3) Function None 80 90(p): 29(ptr) FunctionParameter 92: Label - 218: 35(fvec3) Load 135(d3) - 221: 28(bvec3) FOrdNotEqual 218 220 - Store 90(p) 221 - 222: 35(fvec3) Load 135(d3) - 223: 28(bvec3) FOrdNotEqual 222 220 - ReturnValue 223 + 254: 147(ptr) AccessChain 108 146 + 255: 35(fvec3) Load 254 + 258: 28(bvec3) FOrdNotEqual 255 257 + Store 90(p) 258 + 259: 147(ptr) AccessChain 108 146 + 260: 35(fvec3) Load 259 + 261: 28(bvec3) FOrdNotEqual 260 257 + ReturnValue 261 FunctionEnd 95(Fn_R_D3I(vd3;): 35(fvec3) Function None 93 94(p): 36(ptr) FunctionParameter 96: Label - 226: 14(ivec3) Load 107(i3) - 227: 35(fvec3) ConvertSToF 226 - Store 94(p) 227 - 228: 14(ivec3) Load 107(i3) - 229: 35(fvec3) ConvertSToF 228 - ReturnValue 229 + 264: 110(ptr) AccessChain 108 109 + 265: 14(ivec3) Load 264 + 266: 35(fvec3) ConvertSToF 265 + Store 94(p) 266 + 267: 110(ptr) AccessChain 108 109 + 268: 14(ivec3) Load 267 + 269: 35(fvec3) ConvertSToF 268 + ReturnValue 269 FunctionEnd 98(Fn_R_D3U(vd3;): 35(fvec3) Function None 93 97(p): 36(ptr) FunctionParameter 99: Label - 232: 21(ivec3) Load 115(u3) - 233: 35(fvec3) ConvertUToF 232 - Store 97(p) 233 - 234: 21(ivec3) Load 115(u3) - 235: 35(fvec3) ConvertUToF 234 - ReturnValue 235 + 272: 120(ptr) AccessChain 108 119 + 273: 21(ivec3) Load 272 + 274: 35(fvec3) ConvertUToF 273 + Store 97(p) 274 + 275: 120(ptr) AccessChain 108 119 + 276: 21(ivec3) Load 275 + 277: 35(fvec3) ConvertUToF 276 + ReturnValue 277 FunctionEnd 101(Fn_R_D3B(vd3;): 35(fvec3) Function None 93 100(p): 36(ptr) FunctionParameter 102: Label - 238: 28(bvec3) Load 123(b3) - 241: 35(fvec3) Select 238 240 220 - Store 100(p) 241 - 242: 28(bvec3) Load 123(b3) - 243: 35(fvec3) Select 242 240 220 - ReturnValue 243 + 280: 120(ptr) AccessChain 108 129 + 281: 21(ivec3) Load 280 + 282: 28(bvec3) INotEqual 281 133 + 285: 35(fvec3) Select 282 284 257 + Store 100(p) 285 + 286: 120(ptr) AccessChain 108 129 + 287: 21(ivec3) Load 286 + 288: 28(bvec3) INotEqual 287 133 + 289: 35(fvec3) Select 288 284 257 + ReturnValue 289 FunctionEnd 104(Fn_R_D3F(vd3;): 35(fvec3) Function None 93 103(p): 36(ptr) FunctionParameter 105: Label - 246: 7(fvec3) Load 159(f3) - 247: 35(fvec3) FConvert 246 - Store 103(p) 247 - 248: 7(fvec3) Load 159(f3) - 249: 35(fvec3) FConvert 248 - ReturnValue 249 + 292: 177(ptr) AccessChain 108 176 + 293: 7(fvec3) Load 292 + 294: 35(fvec3) FConvert 293 + Store 103(p) 294 + 295: 177(ptr) AccessChain 108 176 + 296: 7(fvec3) Load 295 + 297: 35(fvec3) FConvert 296 + ReturnValue 297 FunctionEnd diff --git a/Test/baseResults/hlsl.reflection.binding.frag.out b/Test/baseResults/hlsl.reflection.binding.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..dd19621c3e8298579603e849717a5827e951a09c --- /dev/null +++ b/Test/baseResults/hlsl.reflection.binding.frag.out @@ -0,0 +1,19 @@ +hlsl.reflection.binding.frag +Uniform reflection: +t1: offset -1, type 8b5d, size 1, index -1, binding 15 +s1: offset -1, type 0, size 1, index -1, binding 5 +t1a: offset -1, type 8b5d, size 1, index -1, binding 16 +s1a: offset -1, type 0, size 1, index -1, binding 6 +c1_a: offset 0, type 8b52, size 1, index 0, binding -1 +c1_b: offset 16, type 1404, size 1, index 0, binding -1 +c1_c: offset 20, type 1406, size 1, index 0, binding -1 +c2_a: offset 0, type 8b52, size 1, index 1, binding -1 +c2_b: offset 16, type 1404, size 1, index 1, binding -1 +c2_c: offset 20, type 1406, size 1, index 1, binding -1 + +Uniform block reflection: +cbuff1: offset -1, type ffffffff, size 24, index -1, binding 2 +cbuff2: offset -1, type ffffffff, size 24, index -1, binding 3 + +Vertex attribute reflection: + diff --git a/Test/baseResults/hlsl.reflection.binding.vert.out b/Test/baseResults/hlsl.reflection.binding.vert.out new file mode 100644 index 0000000000000000000000000000000000000000..f1368df935747884a3b455006a80f4c0568aa1d0 --- /dev/null +++ b/Test/baseResults/hlsl.reflection.binding.vert.out @@ -0,0 +1,15 @@ +hlsl.reflection.binding.vert + +Linked vertex stage: + + +Uniform reflection: +t1: offset -1, type 8b5d, size 1, index -1, binding 15 +s1: offset -1, type 0, size 1, index -1, binding 5 +t1a: offset -1, type 8b5d, size 1, index -1, binding 16 +s1a: offset -1, type 0, size 1, index -1, binding 6 + +Uniform block reflection: + +Vertex attribute reflection: + diff --git a/Test/baseResults/hlsl.reflection.vert.out b/Test/baseResults/hlsl.reflection.vert.out index b97de1595f27b4c187a8667d2f85001907ea7ed3..8ecfde6168f5c63d73351c3ebb0c060c47400895 100644 --- a/Test/baseResults/hlsl.reflection.vert.out +++ b/Test/baseResults/hlsl.reflection.vert.out @@ -1,84 +1,84 @@ hlsl.reflection.vert - -Linked vertex stage: - - Uniform reflection: -anonMember3: offset 96, type 8b52, size 1, index 0 -s.a: offset -1, type 1404, size 1, index -1 -scalar: offset 12, type 1404, size 1, index 0 -m23: offset 16, type 8b67, size 1, index 0 -scalarAfterm23: offset 64, type 1404, size 1, index 0 -c_m23: offset 16, type 8b67, size 1, index 0 -c_scalarAfterm23: offset 64, type 1404, size 1, index 0 -scalarBeforeArray: offset 112, type 1404, size 1, index 0 -floatArray: offset 128, type 1406, size 5, index 0 -scalarAfterArray: offset 208, type 1404, size 1, index 0 -memfloat2: offset 48, type 8b50, size 1, index 0 -memf1: offset 56, type 1406, size 1, index 0 -memf2: offset 60, type 8b56, size 1, index 0 -memf3: offset 64, type 1404, size 1, index 0 -memfloat2a: offset 72, type 8b50, size 1, index 0 -m22: offset 80, type 8b5a, size 7, index 0 -dm22: offset -1, type 8b5a, size 4, index -1 -foo.n1.a: offset 0, type 1406, size 1, index 0 -foo.n2.b: offset 16, type 1406, size 1, index 0 -foo.n2.c: offset 20, type 1406, size 1, index 0 -foo.n2.d: offset 24, type 1406, size 1, index 0 -deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 -deepC[1].iv4: offset -1, type 8b52, size 1, index -1 -deepC[1].d2.i: offset -1, type 1404, size 1, index -1 -deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepC[1].v3: offset -1, type 8b54, size 1, index -1 -deepD[0].iv4: offset -1, type 8b52, size 1, index -1 -deepD[0].d2.i: offset -1, type 1404, size 1, index -1 -deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepD[0].v3: offset -1, type 8b54, size 1, index -1 -deepD[1].iv4: offset -1, type 8b52, size 1, index -1 -deepD[1].d2.i: offset -1, type 1404, size 1, index -1 -deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepD[1].v3: offset -1, type 8b54, size 1, index -1 -foo: offset 0, type 1406, size 1, index 0 -anonMember1: offset 0, type 8b51, size 1, index 0 -uf1: offset -1, type 1406, size 1, index -1 +anonMember3: offset 80, type 8b52, size 1, index 0, binding -1 +s.a: offset 0, type 1404, size 1, index 1, binding -1 +ablock.scalar: offset 12, type 1404, size 1, index 2, binding -1 +m23: offset 16, type 8b67, size 1, index 0, binding -1 +scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 +c_m23: offset 16, type 8b67, size 1, index 3, binding -1 +c_scalarAfterm23: offset 48, type 1404, size 1, index 3, binding -1 +scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 +floatArray: offset 112, type 1406, size 5, index 0, binding -1 +scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 +ablock.memfloat2: offset 48, type 8b50, size 1, index 2, binding -1 +ablock.memf1: offset 56, type 1406, size 1, index 2, binding -1 +ablock.memf2: offset 60, type 8b56, size 1, index 2, binding -1 +ablock.memf3: offset 64, type 1404, size 1, index 2, binding -1 +ablock.memfloat2a: offset 72, type 8b50, size 1, index 2, binding -1 +ablock.m22: offset 80, type 8b5a, size 7, index 2, binding -1 +dm22: offset 32, type 8b5a, size 4, index 1, binding -1 +m22: offset 208, type 8b5a, size 3, index 0, binding -1 +nest.foo.n1.a: offset 0, type 1406, size 1, index 4, binding -1 +nest.foo.n2.b: offset 16, type 1406, size 1, index 4, binding -1 +nest.foo.n2.c: offset 20, type 1406, size 1, index 4, binding -1 +nest.foo.n2.d: offset 24, type 1406, size 1, index 4, binding -1 +deepA.d2.d1[2].va: offset 376, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1.va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[0].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[1].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[2].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepB.d2.d1[3].va: offset 984, type 8b50, size 2, index 1, binding -1 +deepC.iv4: offset 1568, type 8b52, size 1, index 1, binding -1 +deepC.d2.i: offset 1568, type 1404, size 1, index 1, binding -1 +deepC.d2.d1[0].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[0].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[1].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[1].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[2].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[2].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.d2.d1[3].va: offset 1568, type 8b50, size 3, index 1, binding -1 +deepC.d2.d1[3].b: offset 1568, type 8b56, size 1, index 1, binding -1 +deepC.v3: offset 1568, type 8b54, size 1, index 1, binding -1 +deepD[0].iv4: offset 2480, type 8b52, size 1, index 1, binding -1 +deepD[0].d2.i: offset 2480, type 1404, size 1, index 1, binding -1 +deepD[0].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[0].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[0].v3: offset 2480, type 8b54, size 1, index 1, binding -1 +deepD[1].iv4: offset 2480, type 8b52, size 1, index 1, binding -1 +deepD[1].d2.i: offset 2480, type 1404, size 1, index 1, binding -1 +deepD[1].d2.d1[0].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[0].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[1].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[1].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[2].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[2].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].d2.d1[3].va: offset 2480, type 8b50, size 3, index 1, binding -1 +deepD[1].d2.d1[3].b: offset 2480, type 8b56, size 1, index 1, binding -1 +deepD[1].v3: offset 2480, type 8b54, size 1, index 1, binding -1 +arrBl.foo: offset 0, type 1406, size 1, index 5, binding -1 +arrBl2.foo: offset 0, type 1406, size 1, index 6, binding -1 +anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 +uf1: offset 16, type 1406, size 1, index 1, binding -1 Uniform block reflection: -: offset -1, type ffffffff, size 512, index -1 +nameless: offset -1, type ffffffff, size 496, index -1, binding -1 +$Global: offset -1, type ffffffff, size 3088, index -1, binding -1 +ablock: offset -1, type ffffffff, size 304, index -1, binding -1 +c_nameless: offset -1, type ffffffff, size 96, index -1, binding -1 +nest: offset -1, type ffffffff, size 32, index -1, binding -1 +arrBl: offset -1, type ffffffff, size 4, index -1, binding -1 +arrBl2: offset -1, type ffffffff, size 4, index -1, binding -1 Vertex attribute reflection: -attributeFloat: offset 0, type 1406, size 0, index 0 -attributeFloat2: offset 0, type 8b50, size 0, index 0 -attributeFloat3: offset 0, type 8b51, size 0, index 0 -attributeFloat4: offset 0, type 8b52, size 0, index 0 -attributeMat4: offset 0, type 8b5c, size 0, index 0 +attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 +attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1 +attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1 +attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1 +attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1 diff --git a/Test/baseResults/hlsl.rw.atomics.frag.out b/Test/baseResults/hlsl.rw.atomics.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..123bd4cbee3b6f6ece057c87c7b197ccd39eaee9 --- /dev/null +++ b/Test/baseResults/hlsl.rw.atomics.frag.out @@ -0,0 +1,5261 @@ +hlsl.rw.atomics.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd (temp int) +0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:50 i1: direct index for structure (layout(offset=36 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child (temp int) +0:51 'out_i1' (temp int) +0:51 imageAtomicAdd (temp int) +0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd (temp int) +0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:52 i1: direct index for structure (layout(offset=36 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child (temp int) +0:53 'out_i1' (temp int) +0:53 imageAtomicAnd (temp int) +0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child (temp int) +0:54 'out_i1' (temp int) +0:54 imageAtomicCompSwap (temp int) +0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:54 i1: direct index for structure (layout(offset=36 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child (temp int) +0:55 'out_i1' (temp int) +0:55 imageAtomicExchange (temp int) +0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax (temp int) +0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:56 i1: direct index for structure (layout(offset=36 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child (temp int) +0:57 'out_i1' (temp int) +0:57 imageAtomicMax (temp int) +0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin (temp int) +0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:58 i1: direct index for structure (layout(offset=36 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child (temp int) +0:59 'out_i1' (temp int) +0:59 imageAtomicMin (temp int) +0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 i1: direct index for structure (layout(offset=36 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child (temp int) +0:61 'out_i1' (temp int) +0:61 imageAtomicOr (temp int) +0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor (temp int) +0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:62 i1: direct index for structure (layout(offset=36 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child (temp int) +0:63 'out_i1' (temp int) +0:63 imageAtomicXor (temp int) +0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd (temp uint) +0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child (temp uint) +0:67 'out_u1' (temp uint) +0:67 imageAtomicAdd (temp uint) +0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd (temp uint) +0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child (temp uint) +0:69 'out_u1' (temp uint) +0:69 imageAtomicAnd (temp uint) +0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child (temp uint) +0:70 'out_u1' (temp uint) +0:70 imageAtomicCompSwap (temp uint) +0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:70 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child (temp uint) +0:71 'out_u1' (temp uint) +0:71 imageAtomicExchange (temp uint) +0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax (temp uint) +0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child (temp uint) +0:73 'out_u1' (temp uint) +0:73 imageAtomicMax (temp uint) +0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin (temp uint) +0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child (temp uint) +0:75 'out_u1' (temp uint) +0:75 imageAtomicMin (temp uint) +0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr (temp uint) +0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child (temp uint) +0:77 'out_u1' (temp uint) +0:77 imageAtomicOr (temp uint) +0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor (temp uint) +0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child (temp uint) +0:79 'out_u1' (temp uint) +0:79 imageAtomicXor (temp uint) +0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd (temp int) +0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child (temp int) +0:83 'out_i1' (temp int) +0:83 imageAtomicAdd (temp int) +0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure (layout(offset=36 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd (temp int) +0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child (temp int) +0:85 'out_i1' (temp int) +0:85 imageAtomicAnd (temp int) +0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure (layout(offset=36 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child (temp int) +0:86 'out_i1' (temp int) +0:86 imageAtomicCompSwap (temp int) +0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child (temp int) +0:87 'out_i1' (temp int) +0:87 imageAtomicExchange (temp int) +0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure (layout(offset=36 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax (temp int) +0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child (temp int) +0:89 'out_i1' (temp int) +0:89 imageAtomicMax (temp int) +0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure (layout(offset=36 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin (temp int) +0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child (temp int) +0:91 'out_i1' (temp int) +0:91 imageAtomicMin (temp int) +0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure (layout(offset=36 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr (temp int) +0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child (temp int) +0:93 'out_i1' (temp int) +0:93 imageAtomicOr (temp int) +0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure (layout(offset=36 ) uniform int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor (temp int) +0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child (temp int) +0:95 'out_i1' (temp int) +0:95 imageAtomicXor (temp int) +0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure (layout(offset=36 ) uniform int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd (temp uint) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child (temp uint) +0:99 'out_u1' (temp uint) +0:99 imageAtomicAdd (temp uint) +0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd (temp uint) +0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child (temp uint) +0:101 'out_u1' (temp uint) +0:101 imageAtomicAnd (temp uint) +0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child (temp uint) +0:102 'out_u1' (temp uint) +0:102 imageAtomicCompSwap (temp uint) +0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child (temp uint) +0:103 'out_u1' (temp uint) +0:103 imageAtomicExchange (temp uint) +0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax (temp uint) +0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child (temp uint) +0:105 'out_u1' (temp uint) +0:105 imageAtomicMax (temp uint) +0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin (temp uint) +0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child (temp uint) +0:107 'out_u1' (temp uint) +0:107 imageAtomicMin (temp uint) +0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr (temp uint) +0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child (temp uint) +0:109 'out_u1' (temp uint) +0:109 imageAtomicOr (temp uint) +0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor (temp uint) +0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child (temp uint) +0:111 'out_u1' (temp uint) +0:111 imageAtomicXor (temp uint) +0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd (temp int) +0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child (temp int) +0:115 'out_i1' (temp int) +0:115 imageAtomicAdd (temp int) +0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure (layout(offset=36 ) uniform int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd (temp int) +0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child (temp int) +0:117 'out_i1' (temp int) +0:117 imageAtomicAnd (temp int) +0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure (layout(offset=36 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child (temp int) +0:118 'out_i1' (temp int) +0:118 imageAtomicCompSwap (temp int) +0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child (temp int) +0:119 'out_i1' (temp int) +0:119 imageAtomicExchange (temp int) +0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure (layout(offset=36 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax (temp int) +0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child (temp int) +0:121 'out_i1' (temp int) +0:121 imageAtomicMax (temp int) +0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure (layout(offset=36 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin (temp int) +0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child (temp int) +0:123 'out_i1' (temp int) +0:123 imageAtomicMin (temp int) +0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure (layout(offset=36 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr (temp int) +0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child (temp int) +0:125 'out_i1' (temp int) +0:125 imageAtomicOr (temp int) +0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure (layout(offset=36 ) uniform int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor (temp int) +0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child (temp int) +0:127 'out_i1' (temp int) +0:127 imageAtomicXor (temp int) +0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure (layout(offset=36 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd (temp uint) +0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child (temp uint) +0:131 'out_u1' (temp uint) +0:131 imageAtomicAdd (temp uint) +0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd (temp uint) +0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child (temp uint) +0:133 'out_u1' (temp uint) +0:133 imageAtomicAnd (temp uint) +0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child (temp uint) +0:134 'out_u1' (temp uint) +0:134 imageAtomicCompSwap (temp uint) +0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child (temp uint) +0:135 'out_u1' (temp uint) +0:135 imageAtomicExchange (temp uint) +0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax (temp uint) +0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child (temp uint) +0:137 'out_u1' (temp uint) +0:137 imageAtomicMax (temp uint) +0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin (temp uint) +0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child (temp uint) +0:139 'out_u1' (temp uint) +0:139 imageAtomicMin (temp uint) +0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr (temp uint) +0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child (temp uint) +0:141 'out_u1' (temp uint) +0:141 imageAtomicOr (temp uint) +0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor (temp uint) +0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child (temp uint) +0:143 'out_u1' (temp uint) +0:143 imageAtomicXor (temp uint) +0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd (temp int) +0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child (temp int) +0:147 'out_i1' (temp int) +0:147 imageAtomicAdd (temp int) +0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure (layout(offset=36 ) uniform int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd (temp int) +0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child (temp int) +0:149 'out_i1' (temp int) +0:149 imageAtomicAnd (temp int) +0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure (layout(offset=36 ) uniform int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child (temp int) +0:150 'out_i1' (temp int) +0:150 imageAtomicCompSwap (temp int) +0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child (temp int) +0:151 'out_i1' (temp int) +0:151 imageAtomicExchange (temp int) +0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure (layout(offset=36 ) uniform int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax (temp int) +0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child (temp int) +0:153 'out_i1' (temp int) +0:153 imageAtomicMax (temp int) +0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure (layout(offset=36 ) uniform int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin (temp int) +0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child (temp int) +0:155 'out_i1' (temp int) +0:155 imageAtomicMin (temp int) +0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure (layout(offset=36 ) uniform int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr (temp int) +0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child (temp int) +0:157 'out_i1' (temp int) +0:157 imageAtomicOr (temp int) +0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure (layout(offset=36 ) uniform int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor (temp int) +0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child (temp int) +0:159 'out_i1' (temp int) +0:159 imageAtomicXor (temp int) +0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure (layout(offset=36 ) uniform int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd (temp uint) +0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child (temp uint) +0:163 'out_u1' (temp uint) +0:163 imageAtomicAdd (temp uint) +0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd (temp uint) +0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child (temp uint) +0:165 'out_u1' (temp uint) +0:165 imageAtomicAnd (temp uint) +0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child (temp uint) +0:166 'out_u1' (temp uint) +0:166 imageAtomicCompSwap (temp uint) +0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child (temp uint) +0:167 'out_u1' (temp uint) +0:167 imageAtomicExchange (temp uint) +0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax (temp uint) +0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child (temp uint) +0:169 'out_u1' (temp uint) +0:169 imageAtomicMax (temp uint) +0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin (temp uint) +0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child (temp uint) +0:171 'out_u1' (temp uint) +0:171 imageAtomicMin (temp uint) +0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr (temp uint) +0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child (temp uint) +0:173 'out_u1' (temp uint) +0:173 imageAtomicOr (temp uint) +0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor (temp uint) +0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child (temp uint) +0:175 'out_u1' (temp uint) +0:175 imageAtomicXor (temp uint) +0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd (temp int) +0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child (temp int) +0:179 'out_i1' (temp int) +0:179 imageAtomicAdd (temp int) +0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure (layout(offset=36 ) uniform int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd (temp int) +0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child (temp int) +0:181 'out_i1' (temp int) +0:181 imageAtomicAnd (temp int) +0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure (layout(offset=36 ) uniform int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child (temp int) +0:182 'out_i1' (temp int) +0:182 imageAtomicCompSwap (temp int) +0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child (temp int) +0:183 'out_i1' (temp int) +0:183 imageAtomicExchange (temp int) +0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure (layout(offset=36 ) uniform int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax (temp int) +0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child (temp int) +0:185 'out_i1' (temp int) +0:185 imageAtomicMax (temp int) +0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure (layout(offset=36 ) uniform int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin (temp int) +0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child (temp int) +0:187 'out_i1' (temp int) +0:187 imageAtomicMin (temp int) +0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure (layout(offset=36 ) uniform int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr (temp int) +0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child (temp int) +0:189 'out_i1' (temp int) +0:189 imageAtomicOr (temp int) +0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure (layout(offset=36 ) uniform int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor (temp int) +0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child (temp int) +0:191 'out_i1' (temp int) +0:191 imageAtomicXor (temp int) +0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure (layout(offset=36 ) uniform int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd (temp uint) +0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child (temp uint) +0:195 'out_u1' (temp uint) +0:195 imageAtomicAdd (temp uint) +0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd (temp uint) +0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child (temp uint) +0:197 'out_u1' (temp uint) +0:197 imageAtomicAnd (temp uint) +0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child (temp uint) +0:198 'out_u1' (temp uint) +0:198 imageAtomicCompSwap (temp uint) +0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child (temp uint) +0:199 'out_u1' (temp uint) +0:199 imageAtomicExchange (temp uint) +0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax (temp uint) +0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child (temp uint) +0:201 'out_u1' (temp uint) +0:201 imageAtomicMax (temp uint) +0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin (temp uint) +0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child (temp uint) +0:203 'out_u1' (temp uint) +0:203 imageAtomicMin (temp uint) +0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr (temp uint) +0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child (temp uint) +0:205 'out_u1' (temp uint) +0:205 imageAtomicOr (temp uint) +0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor (temp uint) +0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child (temp uint) +0:207 'out_u1' (temp uint) +0:207 imageAtomicXor (temp uint) +0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd (temp int) +0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:210 i1: direct index for structure (layout(offset=36 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child (temp int) +0:211 'out_i1' (temp int) +0:211 imageAtomicAdd (temp int) +0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd (temp int) +0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:212 i1: direct index for structure (layout(offset=36 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child (temp int) +0:213 'out_i1' (temp int) +0:213 imageAtomicAnd (temp int) +0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child (temp int) +0:214 'out_i1' (temp int) +0:214 imageAtomicCompSwap (temp int) +0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:214 i1: direct index for structure (layout(offset=36 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child (temp int) +0:215 'out_i1' (temp int) +0:215 imageAtomicExchange (temp int) +0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax (temp int) +0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:216 i1: direct index for structure (layout(offset=36 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child (temp int) +0:217 'out_i1' (temp int) +0:217 imageAtomicMax (temp int) +0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin (temp int) +0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:218 i1: direct index for structure (layout(offset=36 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child (temp int) +0:219 'out_i1' (temp int) +0:219 imageAtomicMin (temp int) +0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr (temp int) +0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:220 i1: direct index for structure (layout(offset=36 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child (temp int) +0:221 'out_i1' (temp int) +0:221 imageAtomicOr (temp int) +0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor (temp int) +0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:222 i1: direct index for structure (layout(offset=36 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child (temp int) +0:223 'out_i1' (temp int) +0:223 imageAtomicXor (temp int) +0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd (temp uint) +0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child (temp uint) +0:227 'out_u1' (temp uint) +0:227 imageAtomicAdd (temp uint) +0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd (temp uint) +0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child (temp uint) +0:229 'out_u1' (temp uint) +0:229 imageAtomicAnd (temp uint) +0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child (temp uint) +0:230 'out_u1' (temp uint) +0:230 imageAtomicCompSwap (temp uint) +0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:230 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child (temp uint) +0:231 'out_u1' (temp uint) +0:231 imageAtomicExchange (temp uint) +0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax (temp uint) +0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child (temp uint) +0:233 'out_u1' (temp uint) +0:233 imageAtomicMax (temp uint) +0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin (temp uint) +0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child (temp uint) +0:235 'out_u1' (temp uint) +0:235 imageAtomicMin (temp uint) +0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr (temp uint) +0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child (temp uint) +0:237 'out_u1' (temp uint) +0:237 imageAtomicOr (temp uint) +0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor (temp uint) +0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child (temp uint) +0:239 'out_u1' (temp uint) +0:239 imageAtomicXor (temp uint) +0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child (temp 4-component vector of float) +0:242 Color: direct index for structure (temp 4-component vector of float) +0:242 'psout' (temp structure{temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Sequence +0:243 Sequence +0:243 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:243 Color: direct index for structure (temp 4-component vector of float) +0:243 'psout' (temp structure{temp 4-component vector of float Color}) +0:243 Constant: +0:243 0 (const int) +0:243 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:50 imageAtomicAdd (temp int) +0:50 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:50 i1: direct index for structure (layout(offset=36 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 5 (const uint) +0:50 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:50 Constant: +0:50 8 (const uint) +0:51 move second child to first child (temp int) +0:51 'out_i1' (temp int) +0:51 imageAtomicAdd (temp int) +0:51 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:51 i1: direct index for structure (layout(offset=36 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:51 Constant: +0:51 5 (const uint) +0:52 imageAtomicAnd (temp int) +0:52 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:52 i1: direct index for structure (layout(offset=36 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 5 (const uint) +0:52 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:52 Constant: +0:52 8 (const uint) +0:53 move second child to first child (temp int) +0:53 'out_i1' (temp int) +0:53 imageAtomicAnd (temp int) +0:53 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:53 i1: direct index for structure (layout(offset=36 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:53 Constant: +0:53 5 (const uint) +0:54 move second child to first child (temp int) +0:54 'out_i1' (temp int) +0:54 imageAtomicCompSwap (temp int) +0:54 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:54 i1: direct index for structure (layout(offset=36 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 5 (const uint) +0:54 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 8 (const uint) +0:54 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:54 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:54 Constant: +0:54 9 (const uint) +0:55 move second child to first child (temp int) +0:55 'out_i1' (temp int) +0:55 imageAtomicExchange (temp int) +0:55 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:55 i1: direct index for structure (layout(offset=36 ) uniform int) +0:55 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:55 Constant: +0:55 5 (const uint) +0:56 imageAtomicMax (temp int) +0:56 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:56 i1: direct index for structure (layout(offset=36 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 5 (const uint) +0:56 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:56 Constant: +0:56 8 (const uint) +0:57 move second child to first child (temp int) +0:57 'out_i1' (temp int) +0:57 imageAtomicMax (temp int) +0:57 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:57 i1: direct index for structure (layout(offset=36 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:57 Constant: +0:57 5 (const uint) +0:58 imageAtomicMin (temp int) +0:58 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:58 i1: direct index for structure (layout(offset=36 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 5 (const uint) +0:58 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:58 Constant: +0:58 8 (const uint) +0:59 move second child to first child (temp int) +0:59 'out_i1' (temp int) +0:59 imageAtomicMin (temp int) +0:59 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:59 i1: direct index for structure (layout(offset=36 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:59 Constant: +0:59 5 (const uint) +0:60 imageAtomicOr (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 i1: direct index for structure (layout(offset=36 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 5 (const uint) +0:60 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:60 Constant: +0:60 8 (const uint) +0:61 move second child to first child (temp int) +0:61 'out_i1' (temp int) +0:61 imageAtomicOr (temp int) +0:61 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:61 i1: direct index for structure (layout(offset=36 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:61 Constant: +0:61 5 (const uint) +0:62 imageAtomicXor (temp int) +0:62 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:62 i1: direct index for structure (layout(offset=36 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 5 (const uint) +0:62 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:62 Constant: +0:62 8 (const uint) +0:63 move second child to first child (temp int) +0:63 'out_i1' (temp int) +0:63 imageAtomicXor (temp int) +0:63 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:63 i1: direct index for structure (layout(offset=36 ) uniform int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:63 Constant: +0:63 5 (const uint) +0:66 imageAtomicAdd (temp uint) +0:66 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:66 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:66 Constant: +0:66 0 (const uint) +0:67 move second child to first child (temp uint) +0:67 'out_u1' (temp uint) +0:67 imageAtomicAdd (temp uint) +0:67 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:67 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:67 Constant: +0:67 0 (const uint) +0:68 imageAtomicAnd (temp uint) +0:68 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:68 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:68 Constant: +0:68 0 (const uint) +0:69 move second child to first child (temp uint) +0:69 'out_u1' (temp uint) +0:69 imageAtomicAnd (temp uint) +0:69 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:69 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:69 Constant: +0:69 0 (const uint) +0:70 move second child to first child (temp uint) +0:70 'out_u1' (temp uint) +0:70 imageAtomicCompSwap (temp uint) +0:70 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:70 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 0 (const uint) +0:70 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 3 (const uint) +0:70 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:70 Constant: +0:70 4 (const uint) +0:71 move second child to first child (temp uint) +0:71 'out_u1' (temp uint) +0:71 imageAtomicExchange (temp uint) +0:71 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:71 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:71 Constant: +0:71 0 (const uint) +0:72 imageAtomicMax (temp uint) +0:72 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:72 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:72 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:72 Constant: +0:72 0 (const uint) +0:73 move second child to first child (temp uint) +0:73 'out_u1' (temp uint) +0:73 imageAtomicMax (temp uint) +0:73 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:73 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:73 Constant: +0:73 0 (const uint) +0:74 imageAtomicMin (temp uint) +0:74 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:74 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:74 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:74 Constant: +0:74 0 (const uint) +0:75 move second child to first child (temp uint) +0:75 'out_u1' (temp uint) +0:75 imageAtomicMin (temp uint) +0:75 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:75 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:75 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:75 Constant: +0:75 0 (const uint) +0:76 imageAtomicOr (temp uint) +0:76 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:76 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:76 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:76 Constant: +0:76 0 (const uint) +0:77 move second child to first child (temp uint) +0:77 'out_u1' (temp uint) +0:77 imageAtomicOr (temp uint) +0:77 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:77 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:77 Constant: +0:77 0 (const uint) +0:78 imageAtomicXor (temp uint) +0:78 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:78 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:78 Constant: +0:78 0 (const uint) +0:79 move second child to first child (temp uint) +0:79 'out_u1' (temp uint) +0:79 imageAtomicXor (temp uint) +0:79 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:79 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:79 Constant: +0:79 0 (const uint) +0:82 imageAtomicAdd (temp int) +0:82 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:82 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 6 (const uint) +0:82 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:82 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:82 Constant: +0:82 8 (const uint) +0:83 move second child to first child (temp int) +0:83 'out_i1' (temp int) +0:83 imageAtomicAdd (temp int) +0:83 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:83 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 6 (const uint) +0:83 i1: direct index for structure (layout(offset=36 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:83 Constant: +0:83 5 (const uint) +0:84 imageAtomicAnd (temp int) +0:84 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:84 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 6 (const uint) +0:84 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:84 Constant: +0:84 8 (const uint) +0:85 move second child to first child (temp int) +0:85 'out_i1' (temp int) +0:85 imageAtomicAnd (temp int) +0:85 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:85 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 6 (const uint) +0:85 i1: direct index for structure (layout(offset=36 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:85 Constant: +0:85 5 (const uint) +0:86 move second child to first child (temp int) +0:86 'out_i1' (temp int) +0:86 imageAtomicCompSwap (temp int) +0:86 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:86 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 6 (const uint) +0:86 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 8 (const uint) +0:86 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:86 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:86 Constant: +0:86 9 (const uint) +0:87 move second child to first child (temp int) +0:87 'out_i1' (temp int) +0:87 imageAtomicExchange (temp int) +0:87 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:87 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 6 (const uint) +0:87 i1: direct index for structure (layout(offset=36 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:87 Constant: +0:87 5 (const uint) +0:88 imageAtomicMax (temp int) +0:88 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:88 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 6 (const uint) +0:88 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:88 Constant: +0:88 8 (const uint) +0:89 move second child to first child (temp int) +0:89 'out_i1' (temp int) +0:89 imageAtomicMax (temp int) +0:89 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:89 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 6 (const uint) +0:89 i1: direct index for structure (layout(offset=36 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:89 Constant: +0:89 5 (const uint) +0:90 imageAtomicMin (temp int) +0:90 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:90 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 6 (const uint) +0:90 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:90 Constant: +0:90 8 (const uint) +0:91 move second child to first child (temp int) +0:91 'out_i1' (temp int) +0:91 imageAtomicMin (temp int) +0:91 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:91 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 6 (const uint) +0:91 i1: direct index for structure (layout(offset=36 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:91 Constant: +0:91 5 (const uint) +0:92 imageAtomicOr (temp int) +0:92 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:92 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 6 (const uint) +0:92 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:92 Constant: +0:92 8 (const uint) +0:93 move second child to first child (temp int) +0:93 'out_i1' (temp int) +0:93 imageAtomicOr (temp int) +0:93 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:93 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 6 (const uint) +0:93 i1: direct index for structure (layout(offset=36 ) uniform int) +0:93 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:93 Constant: +0:93 5 (const uint) +0:94 imageAtomicXor (temp int) +0:94 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:94 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 6 (const uint) +0:94 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:94 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:94 Constant: +0:94 8 (const uint) +0:95 move second child to first child (temp int) +0:95 'out_i1' (temp int) +0:95 imageAtomicXor (temp int) +0:95 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:95 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 6 (const uint) +0:95 i1: direct index for structure (layout(offset=36 ) uniform int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:95 Constant: +0:95 5 (const uint) +0:98 imageAtomicAdd (temp uint) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 1 (const uint) +0:98 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:98 Constant: +0:98 0 (const uint) +0:99 move second child to first child (temp uint) +0:99 'out_u1' (temp uint) +0:99 imageAtomicAdd (temp uint) +0:99 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:99 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 1 (const uint) +0:99 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:99 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:99 Constant: +0:99 0 (const uint) +0:100 imageAtomicAnd (temp uint) +0:100 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:100 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 1 (const uint) +0:100 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:100 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:100 Constant: +0:100 0 (const uint) +0:101 move second child to first child (temp uint) +0:101 'out_u1' (temp uint) +0:101 imageAtomicAnd (temp uint) +0:101 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:101 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 1 (const uint) +0:101 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:101 Constant: +0:101 0 (const uint) +0:102 move second child to first child (temp uint) +0:102 'out_u1' (temp uint) +0:102 imageAtomicCompSwap (temp uint) +0:102 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:102 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 1 (const uint) +0:102 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 3 (const uint) +0:102 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:102 Constant: +0:102 4 (const uint) +0:103 move second child to first child (temp uint) +0:103 'out_u1' (temp uint) +0:103 imageAtomicExchange (temp uint) +0:103 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:103 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 1 (const uint) +0:103 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:103 Constant: +0:103 0 (const uint) +0:104 imageAtomicMax (temp uint) +0:104 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:104 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 1 (const uint) +0:104 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:104 Constant: +0:104 0 (const uint) +0:105 move second child to first child (temp uint) +0:105 'out_u1' (temp uint) +0:105 imageAtomicMax (temp uint) +0:105 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:105 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 1 (const uint) +0:105 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:105 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:105 Constant: +0:105 0 (const uint) +0:106 imageAtomicMin (temp uint) +0:106 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:106 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 1 (const uint) +0:106 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:106 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:106 Constant: +0:106 0 (const uint) +0:107 move second child to first child (temp uint) +0:107 'out_u1' (temp uint) +0:107 imageAtomicMin (temp uint) +0:107 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:107 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 1 (const uint) +0:107 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:107 Constant: +0:107 0 (const uint) +0:108 imageAtomicOr (temp uint) +0:108 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:108 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 1 (const uint) +0:108 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:108 Constant: +0:108 0 (const uint) +0:109 move second child to first child (temp uint) +0:109 'out_u1' (temp uint) +0:109 imageAtomicOr (temp uint) +0:109 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:109 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 1 (const uint) +0:109 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:109 Constant: +0:109 0 (const uint) +0:110 imageAtomicXor (temp uint) +0:110 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:110 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 1 (const uint) +0:110 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:110 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:110 Constant: +0:110 0 (const uint) +0:111 move second child to first child (temp uint) +0:111 'out_u1' (temp uint) +0:111 imageAtomicXor (temp uint) +0:111 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:111 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 1 (const uint) +0:111 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:111 Constant: +0:111 0 (const uint) +0:114 imageAtomicAdd (temp int) +0:114 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:114 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 7 (const uint) +0:114 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:114 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:114 Constant: +0:114 8 (const uint) +0:115 move second child to first child (temp int) +0:115 'out_i1' (temp int) +0:115 imageAtomicAdd (temp int) +0:115 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:115 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 7 (const uint) +0:115 i1: direct index for structure (layout(offset=36 ) uniform int) +0:115 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:115 Constant: +0:115 5 (const uint) +0:116 imageAtomicAnd (temp int) +0:116 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:116 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 7 (const uint) +0:116 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:116 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:116 Constant: +0:116 8 (const uint) +0:117 move second child to first child (temp int) +0:117 'out_i1' (temp int) +0:117 imageAtomicAnd (temp int) +0:117 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:117 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 7 (const uint) +0:117 i1: direct index for structure (layout(offset=36 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:117 Constant: +0:117 5 (const uint) +0:118 move second child to first child (temp int) +0:118 'out_i1' (temp int) +0:118 imageAtomicCompSwap (temp int) +0:118 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:118 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 7 (const uint) +0:118 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 8 (const uint) +0:118 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:118 Constant: +0:118 9 (const uint) +0:119 move second child to first child (temp int) +0:119 'out_i1' (temp int) +0:119 imageAtomicExchange (temp int) +0:119 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:119 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 7 (const uint) +0:119 i1: direct index for structure (layout(offset=36 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:119 Constant: +0:119 5 (const uint) +0:120 imageAtomicMax (temp int) +0:120 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:120 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 7 (const uint) +0:120 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:120 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:120 Constant: +0:120 8 (const uint) +0:121 move second child to first child (temp int) +0:121 'out_i1' (temp int) +0:121 imageAtomicMax (temp int) +0:121 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:121 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 7 (const uint) +0:121 i1: direct index for structure (layout(offset=36 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:121 Constant: +0:121 5 (const uint) +0:122 imageAtomicMin (temp int) +0:122 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:122 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 7 (const uint) +0:122 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:122 Constant: +0:122 8 (const uint) +0:123 move second child to first child (temp int) +0:123 'out_i1' (temp int) +0:123 imageAtomicMin (temp int) +0:123 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:123 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 7 (const uint) +0:123 i1: direct index for structure (layout(offset=36 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:123 Constant: +0:123 5 (const uint) +0:124 imageAtomicOr (temp int) +0:124 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:124 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 7 (const uint) +0:124 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:124 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:124 Constant: +0:124 8 (const uint) +0:125 move second child to first child (temp int) +0:125 'out_i1' (temp int) +0:125 imageAtomicOr (temp int) +0:125 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:125 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 7 (const uint) +0:125 i1: direct index for structure (layout(offset=36 ) uniform int) +0:125 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:125 Constant: +0:125 5 (const uint) +0:126 imageAtomicXor (temp int) +0:126 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:126 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 7 (const uint) +0:126 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:126 Constant: +0:126 8 (const uint) +0:127 move second child to first child (temp int) +0:127 'out_i1' (temp int) +0:127 imageAtomicXor (temp int) +0:127 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:127 i3: direct index for structure (layout(offset=48 ) uniform 3-component vector of int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 7 (const uint) +0:127 i1: direct index for structure (layout(offset=36 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:127 Constant: +0:127 5 (const uint) +0:130 imageAtomicAdd (temp uint) +0:130 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:130 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 2 (const uint) +0:130 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:130 Constant: +0:130 0 (const uint) +0:131 move second child to first child (temp uint) +0:131 'out_u1' (temp uint) +0:131 imageAtomicAdd (temp uint) +0:131 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:131 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 2 (const uint) +0:131 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:131 Constant: +0:131 0 (const uint) +0:132 imageAtomicAnd (temp uint) +0:132 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:132 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 2 (const uint) +0:132 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:132 Constant: +0:132 0 (const uint) +0:133 move second child to first child (temp uint) +0:133 'out_u1' (temp uint) +0:133 imageAtomicAnd (temp uint) +0:133 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:133 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 2 (const uint) +0:133 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:133 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:133 Constant: +0:133 0 (const uint) +0:134 move second child to first child (temp uint) +0:134 'out_u1' (temp uint) +0:134 imageAtomicCompSwap (temp uint) +0:134 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:134 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 2 (const uint) +0:134 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 3 (const uint) +0:134 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:134 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:134 Constant: +0:134 4 (const uint) +0:135 move second child to first child (temp uint) +0:135 'out_u1' (temp uint) +0:135 imageAtomicExchange (temp uint) +0:135 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:135 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 2 (const uint) +0:135 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:135 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:135 Constant: +0:135 0 (const uint) +0:136 imageAtomicMax (temp uint) +0:136 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:136 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 2 (const uint) +0:136 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:136 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:136 Constant: +0:136 0 (const uint) +0:137 move second child to first child (temp uint) +0:137 'out_u1' (temp uint) +0:137 imageAtomicMax (temp uint) +0:137 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:137 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 2 (const uint) +0:137 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:137 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:137 Constant: +0:137 0 (const uint) +0:138 imageAtomicMin (temp uint) +0:138 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:138 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 2 (const uint) +0:138 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:138 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:138 Constant: +0:138 0 (const uint) +0:139 move second child to first child (temp uint) +0:139 'out_u1' (temp uint) +0:139 imageAtomicMin (temp uint) +0:139 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:139 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 2 (const uint) +0:139 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:139 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:139 Constant: +0:139 0 (const uint) +0:140 imageAtomicOr (temp uint) +0:140 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:140 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 2 (const uint) +0:140 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:140 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:140 Constant: +0:140 0 (const uint) +0:141 move second child to first child (temp uint) +0:141 'out_u1' (temp uint) +0:141 imageAtomicOr (temp uint) +0:141 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:141 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 2 (const uint) +0:141 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:141 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:141 Constant: +0:141 0 (const uint) +0:142 imageAtomicXor (temp uint) +0:142 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:142 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 2 (const uint) +0:142 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:142 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:142 Constant: +0:142 0 (const uint) +0:143 move second child to first child (temp uint) +0:143 'out_u1' (temp uint) +0:143 imageAtomicXor (temp uint) +0:143 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:143 u3: direct index for structure (layout(offset=16 ) uniform 3-component vector of uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 2 (const uint) +0:143 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:143 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:143 Constant: +0:143 0 (const uint) +0:146 imageAtomicAdd (temp int) +0:146 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:146 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 6 (const uint) +0:146 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:146 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:146 Constant: +0:146 8 (const uint) +0:147 move second child to first child (temp int) +0:147 'out_i1' (temp int) +0:147 imageAtomicAdd (temp int) +0:147 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:147 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 6 (const uint) +0:147 i1: direct index for structure (layout(offset=36 ) uniform int) +0:147 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:147 Constant: +0:147 5 (const uint) +0:148 imageAtomicAnd (temp int) +0:148 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:148 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 6 (const uint) +0:148 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:148 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:148 Constant: +0:148 8 (const uint) +0:149 move second child to first child (temp int) +0:149 'out_i1' (temp int) +0:149 imageAtomicAnd (temp int) +0:149 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:149 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 6 (const uint) +0:149 i1: direct index for structure (layout(offset=36 ) uniform int) +0:149 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:149 Constant: +0:149 5 (const uint) +0:150 move second child to first child (temp int) +0:150 'out_i1' (temp int) +0:150 imageAtomicCompSwap (temp int) +0:150 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:150 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 6 (const uint) +0:150 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 8 (const uint) +0:150 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:150 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:150 Constant: +0:150 9 (const uint) +0:151 move second child to first child (temp int) +0:151 'out_i1' (temp int) +0:151 imageAtomicExchange (temp int) +0:151 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:151 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 6 (const uint) +0:151 i1: direct index for structure (layout(offset=36 ) uniform int) +0:151 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:151 Constant: +0:151 5 (const uint) +0:152 imageAtomicMax (temp int) +0:152 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:152 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 6 (const uint) +0:152 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:152 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:152 Constant: +0:152 8 (const uint) +0:153 move second child to first child (temp int) +0:153 'out_i1' (temp int) +0:153 imageAtomicMax (temp int) +0:153 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:153 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 6 (const uint) +0:153 i1: direct index for structure (layout(offset=36 ) uniform int) +0:153 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:153 Constant: +0:153 5 (const uint) +0:154 imageAtomicMin (temp int) +0:154 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:154 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 6 (const uint) +0:154 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:154 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:154 Constant: +0:154 8 (const uint) +0:155 move second child to first child (temp int) +0:155 'out_i1' (temp int) +0:155 imageAtomicMin (temp int) +0:155 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:155 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 6 (const uint) +0:155 i1: direct index for structure (layout(offset=36 ) uniform int) +0:155 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:155 Constant: +0:155 5 (const uint) +0:156 imageAtomicOr (temp int) +0:156 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:156 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 6 (const uint) +0:156 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:156 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:156 Constant: +0:156 8 (const uint) +0:157 move second child to first child (temp int) +0:157 'out_i1' (temp int) +0:157 imageAtomicOr (temp int) +0:157 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:157 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 6 (const uint) +0:157 i1: direct index for structure (layout(offset=36 ) uniform int) +0:157 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:157 Constant: +0:157 5 (const uint) +0:158 imageAtomicXor (temp int) +0:158 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:158 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 6 (const uint) +0:158 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:158 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:158 Constant: +0:158 8 (const uint) +0:159 move second child to first child (temp int) +0:159 'out_i1' (temp int) +0:159 imageAtomicXor (temp int) +0:159 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:159 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 6 (const uint) +0:159 i1: direct index for structure (layout(offset=36 ) uniform int) +0:159 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:159 Constant: +0:159 5 (const uint) +0:162 imageAtomicAdd (temp uint) +0:162 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:162 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 1 (const uint) +0:162 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:162 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:162 Constant: +0:162 0 (const uint) +0:163 move second child to first child (temp uint) +0:163 'out_u1' (temp uint) +0:163 imageAtomicAdd (temp uint) +0:163 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:163 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 1 (const uint) +0:163 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:163 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:163 Constant: +0:163 0 (const uint) +0:164 imageAtomicAnd (temp uint) +0:164 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:164 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 1 (const uint) +0:164 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:164 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:164 Constant: +0:164 0 (const uint) +0:165 move second child to first child (temp uint) +0:165 'out_u1' (temp uint) +0:165 imageAtomicAnd (temp uint) +0:165 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:165 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 1 (const uint) +0:165 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:165 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:165 Constant: +0:165 0 (const uint) +0:166 move second child to first child (temp uint) +0:166 'out_u1' (temp uint) +0:166 imageAtomicCompSwap (temp uint) +0:166 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:166 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 1 (const uint) +0:166 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 3 (const uint) +0:166 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:166 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:166 Constant: +0:166 4 (const uint) +0:167 move second child to first child (temp uint) +0:167 'out_u1' (temp uint) +0:167 imageAtomicExchange (temp uint) +0:167 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:167 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 1 (const uint) +0:167 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:167 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:167 Constant: +0:167 0 (const uint) +0:168 imageAtomicMax (temp uint) +0:168 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:168 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 1 (const uint) +0:168 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:168 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:168 Constant: +0:168 0 (const uint) +0:169 move second child to first child (temp uint) +0:169 'out_u1' (temp uint) +0:169 imageAtomicMax (temp uint) +0:169 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:169 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 1 (const uint) +0:169 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:169 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:169 Constant: +0:169 0 (const uint) +0:170 imageAtomicMin (temp uint) +0:170 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:170 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 1 (const uint) +0:170 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:170 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:170 Constant: +0:170 0 (const uint) +0:171 move second child to first child (temp uint) +0:171 'out_u1' (temp uint) +0:171 imageAtomicMin (temp uint) +0:171 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:171 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 1 (const uint) +0:171 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:171 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:171 Constant: +0:171 0 (const uint) +0:172 imageAtomicOr (temp uint) +0:172 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:172 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 1 (const uint) +0:172 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:172 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:172 Constant: +0:172 0 (const uint) +0:173 move second child to first child (temp uint) +0:173 'out_u1' (temp uint) +0:173 imageAtomicOr (temp uint) +0:173 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:173 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 1 (const uint) +0:173 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:173 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:173 Constant: +0:173 0 (const uint) +0:174 imageAtomicXor (temp uint) +0:174 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:174 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 1 (const uint) +0:174 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:174 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:174 Constant: +0:174 0 (const uint) +0:175 move second child to first child (temp uint) +0:175 'out_u1' (temp uint) +0:175 imageAtomicXor (temp uint) +0:175 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:175 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 1 (const uint) +0:175 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:175 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:175 Constant: +0:175 0 (const uint) +0:178 imageAtomicAdd (temp int) +0:178 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:178 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 6 (const uint) +0:178 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:178 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:178 Constant: +0:178 8 (const uint) +0:179 move second child to first child (temp int) +0:179 'out_i1' (temp int) +0:179 imageAtomicAdd (temp int) +0:179 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:179 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 6 (const uint) +0:179 i1: direct index for structure (layout(offset=36 ) uniform int) +0:179 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:179 Constant: +0:179 5 (const uint) +0:180 imageAtomicAnd (temp int) +0:180 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:180 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 6 (const uint) +0:180 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:180 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:180 Constant: +0:180 8 (const uint) +0:181 move second child to first child (temp int) +0:181 'out_i1' (temp int) +0:181 imageAtomicAnd (temp int) +0:181 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:181 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 6 (const uint) +0:181 i1: direct index for structure (layout(offset=36 ) uniform int) +0:181 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:181 Constant: +0:181 5 (const uint) +0:182 move second child to first child (temp int) +0:182 'out_i1' (temp int) +0:182 imageAtomicCompSwap (temp int) +0:182 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:182 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 6 (const uint) +0:182 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 8 (const uint) +0:182 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:182 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:182 Constant: +0:182 9 (const uint) +0:183 move second child to first child (temp int) +0:183 'out_i1' (temp int) +0:183 imageAtomicExchange (temp int) +0:183 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:183 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 6 (const uint) +0:183 i1: direct index for structure (layout(offset=36 ) uniform int) +0:183 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:183 Constant: +0:183 5 (const uint) +0:184 imageAtomicMax (temp int) +0:184 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:184 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 6 (const uint) +0:184 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:184 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:184 Constant: +0:184 8 (const uint) +0:185 move second child to first child (temp int) +0:185 'out_i1' (temp int) +0:185 imageAtomicMax (temp int) +0:185 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:185 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 6 (const uint) +0:185 i1: direct index for structure (layout(offset=36 ) uniform int) +0:185 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:185 Constant: +0:185 5 (const uint) +0:186 imageAtomicMin (temp int) +0:186 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:186 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 6 (const uint) +0:186 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:186 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:186 Constant: +0:186 8 (const uint) +0:187 move second child to first child (temp int) +0:187 'out_i1' (temp int) +0:187 imageAtomicMin (temp int) +0:187 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:187 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 6 (const uint) +0:187 i1: direct index for structure (layout(offset=36 ) uniform int) +0:187 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:187 Constant: +0:187 5 (const uint) +0:188 imageAtomicOr (temp int) +0:188 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:188 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 6 (const uint) +0:188 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:188 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:188 Constant: +0:188 8 (const uint) +0:189 move second child to first child (temp int) +0:189 'out_i1' (temp int) +0:189 imageAtomicOr (temp int) +0:189 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:189 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 6 (const uint) +0:189 i1: direct index for structure (layout(offset=36 ) uniform int) +0:189 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:189 Constant: +0:189 5 (const uint) +0:190 imageAtomicXor (temp int) +0:190 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:190 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 6 (const uint) +0:190 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:190 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:190 Constant: +0:190 8 (const uint) +0:191 move second child to first child (temp int) +0:191 'out_i1' (temp int) +0:191 imageAtomicXor (temp int) +0:191 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:191 i2: direct index for structure (layout(offset=40 ) uniform 2-component vector of int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 6 (const uint) +0:191 i1: direct index for structure (layout(offset=36 ) uniform int) +0:191 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:191 Constant: +0:191 5 (const uint) +0:194 imageAtomicAdd (temp uint) +0:194 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:194 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 1 (const uint) +0:194 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:194 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:194 Constant: +0:194 0 (const uint) +0:195 move second child to first child (temp uint) +0:195 'out_u1' (temp uint) +0:195 imageAtomicAdd (temp uint) +0:195 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:195 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 1 (const uint) +0:195 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:195 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:195 Constant: +0:195 0 (const uint) +0:196 imageAtomicAnd (temp uint) +0:196 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:196 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 1 (const uint) +0:196 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:196 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:196 Constant: +0:196 0 (const uint) +0:197 move second child to first child (temp uint) +0:197 'out_u1' (temp uint) +0:197 imageAtomicAnd (temp uint) +0:197 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:197 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 1 (const uint) +0:197 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:197 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:197 Constant: +0:197 0 (const uint) +0:198 move second child to first child (temp uint) +0:198 'out_u1' (temp uint) +0:198 imageAtomicCompSwap (temp uint) +0:198 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:198 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 1 (const uint) +0:198 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 3 (const uint) +0:198 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:198 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:198 Constant: +0:198 4 (const uint) +0:199 move second child to first child (temp uint) +0:199 'out_u1' (temp uint) +0:199 imageAtomicExchange (temp uint) +0:199 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:199 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 1 (const uint) +0:199 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:199 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:199 Constant: +0:199 0 (const uint) +0:200 imageAtomicMax (temp uint) +0:200 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:200 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 1 (const uint) +0:200 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:200 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:200 Constant: +0:200 0 (const uint) +0:201 move second child to first child (temp uint) +0:201 'out_u1' (temp uint) +0:201 imageAtomicMax (temp uint) +0:201 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:201 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 1 (const uint) +0:201 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:201 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:201 Constant: +0:201 0 (const uint) +0:202 imageAtomicMin (temp uint) +0:202 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:202 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 1 (const uint) +0:202 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:202 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:202 Constant: +0:202 0 (const uint) +0:203 move second child to first child (temp uint) +0:203 'out_u1' (temp uint) +0:203 imageAtomicMin (temp uint) +0:203 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:203 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 1 (const uint) +0:203 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:203 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:203 Constant: +0:203 0 (const uint) +0:204 imageAtomicOr (temp uint) +0:204 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:204 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 1 (const uint) +0:204 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:204 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:204 Constant: +0:204 0 (const uint) +0:205 move second child to first child (temp uint) +0:205 'out_u1' (temp uint) +0:205 imageAtomicOr (temp uint) +0:205 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:205 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 1 (const uint) +0:205 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:205 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:205 Constant: +0:205 0 (const uint) +0:206 imageAtomicXor (temp uint) +0:206 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:206 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 1 (const uint) +0:206 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:206 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:206 Constant: +0:206 0 (const uint) +0:207 move second child to first child (temp uint) +0:207 'out_u1' (temp uint) +0:207 imageAtomicXor (temp uint) +0:207 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:207 u2: direct index for structure (layout(offset=8 ) uniform 2-component vector of uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 1 (const uint) +0:207 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:207 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:207 Constant: +0:207 0 (const uint) +0:210 imageAtomicAdd (temp int) +0:210 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:210 i1: direct index for structure (layout(offset=36 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 5 (const uint) +0:210 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:210 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:210 Constant: +0:210 8 (const uint) +0:211 move second child to first child (temp int) +0:211 'out_i1' (temp int) +0:211 imageAtomicAdd (temp int) +0:211 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:211 i1: direct index for structure (layout(offset=36 ) uniform int) +0:211 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:211 Constant: +0:211 5 (const uint) +0:212 imageAtomicAnd (temp int) +0:212 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:212 i1: direct index for structure (layout(offset=36 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 5 (const uint) +0:212 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:212 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:212 Constant: +0:212 8 (const uint) +0:213 move second child to first child (temp int) +0:213 'out_i1' (temp int) +0:213 imageAtomicAnd (temp int) +0:213 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:213 i1: direct index for structure (layout(offset=36 ) uniform int) +0:213 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:213 Constant: +0:213 5 (const uint) +0:214 move second child to first child (temp int) +0:214 'out_i1' (temp int) +0:214 imageAtomicCompSwap (temp int) +0:214 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:214 i1: direct index for structure (layout(offset=36 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 5 (const uint) +0:214 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 8 (const uint) +0:214 i1c: direct index for structure (layout(offset=64 ) uniform int) +0:214 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:214 Constant: +0:214 9 (const uint) +0:215 move second child to first child (temp int) +0:215 'out_i1' (temp int) +0:215 imageAtomicExchange (temp int) +0:215 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:215 i1: direct index for structure (layout(offset=36 ) uniform int) +0:215 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:215 Constant: +0:215 5 (const uint) +0:216 imageAtomicMax (temp int) +0:216 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:216 i1: direct index for structure (layout(offset=36 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 5 (const uint) +0:216 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:216 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:216 Constant: +0:216 8 (const uint) +0:217 move second child to first child (temp int) +0:217 'out_i1' (temp int) +0:217 imageAtomicMax (temp int) +0:217 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:217 i1: direct index for structure (layout(offset=36 ) uniform int) +0:217 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:217 Constant: +0:217 5 (const uint) +0:218 imageAtomicMin (temp int) +0:218 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:218 i1: direct index for structure (layout(offset=36 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 5 (const uint) +0:218 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:218 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:218 Constant: +0:218 8 (const uint) +0:219 move second child to first child (temp int) +0:219 'out_i1' (temp int) +0:219 imageAtomicMin (temp int) +0:219 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:219 i1: direct index for structure (layout(offset=36 ) uniform int) +0:219 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:219 Constant: +0:219 5 (const uint) +0:220 imageAtomicOr (temp int) +0:220 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:220 i1: direct index for structure (layout(offset=36 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 5 (const uint) +0:220 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:220 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:220 Constant: +0:220 8 (const uint) +0:221 move second child to first child (temp int) +0:221 'out_i1' (temp int) +0:221 imageAtomicOr (temp int) +0:221 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:221 i1: direct index for structure (layout(offset=36 ) uniform int) +0:221 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:221 Constant: +0:221 5 (const uint) +0:222 imageAtomicXor (temp int) +0:222 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:222 i1: direct index for structure (layout(offset=36 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 5 (const uint) +0:222 i1b: direct index for structure (layout(offset=60 ) uniform int) +0:222 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:222 Constant: +0:222 8 (const uint) +0:223 move second child to first child (temp int) +0:223 'out_i1' (temp int) +0:223 imageAtomicXor (temp int) +0:223 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:223 i1: direct index for structure (layout(offset=36 ) uniform int) +0:223 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:223 Constant: +0:223 5 (const uint) +0:226 imageAtomicAdd (temp uint) +0:226 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:226 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:226 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:226 Constant: +0:226 0 (const uint) +0:227 move second child to first child (temp uint) +0:227 'out_u1' (temp uint) +0:227 imageAtomicAdd (temp uint) +0:227 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:227 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:227 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:227 Constant: +0:227 0 (const uint) +0:228 imageAtomicAnd (temp uint) +0:228 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:228 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:228 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:228 Constant: +0:228 0 (const uint) +0:229 move second child to first child (temp uint) +0:229 'out_u1' (temp uint) +0:229 imageAtomicAnd (temp uint) +0:229 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:229 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:229 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:229 Constant: +0:229 0 (const uint) +0:230 move second child to first child (temp uint) +0:230 'out_u1' (temp uint) +0:230 imageAtomicCompSwap (temp uint) +0:230 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:230 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 0 (const uint) +0:230 u1b: direct index for structure (layout(offset=28 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 3 (const uint) +0:230 u1c: direct index for structure (layout(offset=32 ) uniform uint) +0:230 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:230 Constant: +0:230 4 (const uint) +0:231 move second child to first child (temp uint) +0:231 'out_u1' (temp uint) +0:231 imageAtomicExchange (temp uint) +0:231 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:231 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:231 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:231 Constant: +0:231 0 (const uint) +0:232 imageAtomicMax (temp uint) +0:232 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:232 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:232 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:232 Constant: +0:232 0 (const uint) +0:233 move second child to first child (temp uint) +0:233 'out_u1' (temp uint) +0:233 imageAtomicMax (temp uint) +0:233 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:233 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:233 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:233 Constant: +0:233 0 (const uint) +0:234 imageAtomicMin (temp uint) +0:234 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:234 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:234 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:234 Constant: +0:234 0 (const uint) +0:235 move second child to first child (temp uint) +0:235 'out_u1' (temp uint) +0:235 imageAtomicMin (temp uint) +0:235 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:235 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:235 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:235 Constant: +0:235 0 (const uint) +0:236 imageAtomicOr (temp uint) +0:236 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:236 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:236 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:236 Constant: +0:236 0 (const uint) +0:237 move second child to first child (temp uint) +0:237 'out_u1' (temp uint) +0:237 imageAtomicOr (temp uint) +0:237 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:237 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:237 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:237 Constant: +0:237 0 (const uint) +0:238 imageAtomicXor (temp uint) +0:238 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:238 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:238 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:238 Constant: +0:238 0 (const uint) +0:239 move second child to first child (temp uint) +0:239 'out_u1' (temp uint) +0:239 imageAtomicXor (temp uint) +0:239 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:239 u1: direct index for structure (layout(offset=0 ) uniform uint) +0:239 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) +0:239 Constant: +0:239 0 (const uint) +0:242 move second child to first child (temp 4-component vector of float) +0:242 Color: direct index for structure (temp 4-component vector of float) +0:242 'psout' (temp structure{temp 4-component vector of float Color}) +0:242 Constant: +0:242 0 (const int) +0:242 Constant: +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:242 1.000000 +0:243 Sequence +0:243 Sequence +0:243 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:243 Color: direct index for structure (temp 4-component vector of float) +0:243 'psout' (temp structure{temp 4-component vector of float Color}) +0:243 Constant: +0:243 0 (const int) +0:243 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'g_tBuffF' (layout(r32f ) uniform imageBuffer) +0:? 'g_tBuffI' (layout(r32i ) uniform iimageBuffer) +0:? 'g_tBuffU' (layout(r32ui ) uniform uimageBuffer) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform uint u1, layout(offset=8 ) uniform 2-component vector of uint u2, layout(offset=16 ) uniform 3-component vector of uint u3, layout(offset=28 ) uniform uint u1b, layout(offset=32 ) uniform uint u1c, layout(offset=36 ) uniform int i1, layout(offset=40 ) uniform 2-component vector of int i2, layout(offset=48 ) uniform 3-component vector of int i3, layout(offset=60 ) uniform int i1b, layout(offset=64 ) uniform int i1c}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 1142 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 1111 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "g_tTex1di1" + Name 15 "$Global" + MemberName 15($Global) 0 "u1" + MemberName 15($Global) 1 "u2" + MemberName 15($Global) 2 "u3" + MemberName 15($Global) 3 "u1b" + MemberName 15($Global) 4 "u1c" + MemberName 15($Global) 5 "i1" + MemberName 15($Global) 6 "i2" + MemberName 15($Global) 7 "i3" + MemberName 15($Global) 8 "i1b" + MemberName 15($Global) 9 "i1c" + Name 17 "" + Name 31 "out_i1" + Name 115 "g_tTex1du1" + Name 126 "out_u1" + Name 211 "g_tTex2di1" + Name 302 "g_tTex2du1" + Name 393 "g_tTex3di1" + Name 484 "g_tTex3du1" + Name 575 "g_tTex1di1a" + Name 664 "g_tTex1du1a" + Name 925 "g_tBuffI" + Name 1014 "g_tBuffU" + Name 1103 "PS_OUTPUT" + MemberName 1103(PS_OUTPUT) 0 "Color" + Name 1105 "psout" + Name 1111 "Color" + Name 1117 "g_sSamp" + Name 1120 "g_tTex1df1" + Name 1123 "g_tTex2df1" + Name 1126 "g_tTex3df1" + Name 1129 "g_tTex1df1a" + Name 1132 "g_tTex2df1a" + Name 1135 "g_tTex2di1a" + Name 1138 "g_tTex2du1a" + Name 1141 "g_tBuffF" + Decorate 9(g_tTex1di1) DescriptorSet 0 + MemberDecorate 15($Global) 0 Offset 0 + MemberDecorate 15($Global) 1 Offset 8 + MemberDecorate 15($Global) 2 Offset 16 + MemberDecorate 15($Global) 3 Offset 28 + MemberDecorate 15($Global) 4 Offset 32 + MemberDecorate 15($Global) 5 Offset 36 + MemberDecorate 15($Global) 6 Offset 40 + MemberDecorate 15($Global) 7 Offset 48 + MemberDecorate 15($Global) 8 Offset 60 + MemberDecorate 15($Global) 9 Offset 64 + Decorate 15($Global) Block + Decorate 17 DescriptorSet 0 + Decorate 115(g_tTex1du1) DescriptorSet 0 + Decorate 211(g_tTex2di1) DescriptorSet 0 + Decorate 302(g_tTex2du1) DescriptorSet 0 + Decorate 393(g_tTex3di1) DescriptorSet 0 + Decorate 484(g_tTex3du1) DescriptorSet 0 + Decorate 575(g_tTex1di1a) DescriptorSet 0 + Decorate 664(g_tTex1du1a) DescriptorSet 0 + Decorate 925(g_tBuffI) DescriptorSet 0 + Decorate 1014(g_tBuffU) DescriptorSet 0 + Decorate 1111(Color) Location 0 + Decorate 1117(g_sSamp) DescriptorSet 0 + Decorate 1120(g_tTex1df1) DescriptorSet 0 + Decorate 1123(g_tTex2df1) DescriptorSet 0 + Decorate 1126(g_tTex3df1) DescriptorSet 0 + Decorate 1129(g_tTex1df1a) DescriptorSet 0 + Decorate 1132(g_tTex2df1a) DescriptorSet 0 + Decorate 1135(g_tTex2di1a) DescriptorSet 0 + Decorate 1138(g_tTex2du1a) DescriptorSet 0 + Decorate 1141(g_tBuffF) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeImage 6(int) 1D nonsampled format:R32i + 8: TypePointer UniformConstant 7 + 9(g_tTex1di1): 8(ptr) Variable UniformConstant + 10: TypeInt 32 0 + 11: TypeVector 10(int) 2 + 12: TypeVector 10(int) 3 + 13: TypeVector 6(int) 2 + 14: TypeVector 6(int) 3 + 15($Global): TypeStruct 10(int) 11(ivec2) 12(ivec3) 10(int) 10(int) 6(int) 13(ivec2) 14(ivec3) 6(int) 6(int) + 16: TypePointer Uniform 15($Global) + 17: 16(ptr) Variable Uniform + 18: 6(int) Constant 5 + 19: TypePointer Uniform 6(int) + 22: 6(int) Constant 8 + 25: 10(int) Constant 0 + 26: TypePointer Image 6(int) + 28: 10(int) Constant 1 + 30: TypePointer Function 6(int) + 54: 6(int) Constant 9 + 113: TypeImage 10(int) 1D nonsampled format:R32ui + 114: TypePointer UniformConstant 113 + 115(g_tTex1du1): 114(ptr) Variable UniformConstant + 116: 6(int) Constant 0 + 117: TypePointer Uniform 10(int) + 122: TypePointer Image 10(int) + 125: TypePointer Function 10(int) + 147: 6(int) Constant 3 + 150: 6(int) Constant 4 + 209: TypeImage 6(int) 2D nonsampled format:R32i + 210: TypePointer UniformConstant 209 + 211(g_tTex2di1): 210(ptr) Variable UniformConstant + 212: 6(int) Constant 6 + 213: TypePointer Uniform 13(ivec2) + 300: TypeImage 10(int) 2D nonsampled format:R32ui + 301: TypePointer UniformConstant 300 + 302(g_tTex2du1): 301(ptr) Variable UniformConstant + 303: 6(int) Constant 1 + 304: TypePointer Uniform 11(ivec2) + 391: TypeImage 6(int) 3D nonsampled format:R32i + 392: TypePointer UniformConstant 391 + 393(g_tTex3di1): 392(ptr) Variable UniformConstant + 394: 6(int) Constant 7 + 395: TypePointer Uniform 14(ivec3) + 482: TypeImage 10(int) 3D nonsampled format:R32ui + 483: TypePointer UniformConstant 482 + 484(g_tTex3du1): 483(ptr) Variable UniformConstant + 485: 6(int) Constant 2 + 486: TypePointer Uniform 12(ivec3) + 573: TypeImage 6(int) 1D array nonsampled format:R32i + 574: TypePointer UniformConstant 573 +575(g_tTex1di1a): 574(ptr) Variable UniformConstant + 662: TypeImage 10(int) 1D array nonsampled format:R32ui + 663: TypePointer UniformConstant 662 +664(g_tTex1du1a): 663(ptr) Variable UniformConstant + 923: TypeImage 6(int) Buffer nonsampled format:R32i + 924: TypePointer UniformConstant 923 + 925(g_tBuffI): 924(ptr) Variable UniformConstant + 1012: TypeImage 10(int) Buffer nonsampled format:R32ui + 1013: TypePointer UniformConstant 1012 + 1014(g_tBuffU): 1013(ptr) Variable UniformConstant + 1101: TypeFloat 32 + 1102: TypeVector 1101(float) 4 + 1103(PS_OUTPUT): TypeStruct 1102(fvec4) + 1104: TypePointer Function 1103(PS_OUTPUT) + 1106: 1101(float) Constant 1065353216 + 1107: 1102(fvec4) ConstantComposite 1106 1106 1106 1106 + 1108: TypePointer Function 1102(fvec4) + 1110: TypePointer Output 1102(fvec4) + 1111(Color): 1110(ptr) Variable Output + 1115: TypeSampler + 1116: TypePointer UniformConstant 1115 + 1117(g_sSamp): 1116(ptr) Variable UniformConstant + 1118: TypeImage 1101(float) 1D nonsampled format:R32f + 1119: TypePointer UniformConstant 1118 +1120(g_tTex1df1): 1119(ptr) Variable UniformConstant + 1121: TypeImage 1101(float) 2D nonsampled format:R32f + 1122: TypePointer UniformConstant 1121 +1123(g_tTex2df1): 1122(ptr) Variable UniformConstant + 1124: TypeImage 1101(float) 3D nonsampled format:R32f + 1125: TypePointer UniformConstant 1124 +1126(g_tTex3df1): 1125(ptr) Variable UniformConstant + 1127: TypeImage 1101(float) 1D array nonsampled format:R32f + 1128: TypePointer UniformConstant 1127 +1129(g_tTex1df1a): 1128(ptr) Variable UniformConstant + 1130: TypeImage 1101(float) 2D array nonsampled format:R32f + 1131: TypePointer UniformConstant 1130 +1132(g_tTex2df1a): 1131(ptr) Variable UniformConstant + 1133: TypeImage 6(int) 2D array nonsampled format:R32i + 1134: TypePointer UniformConstant 1133 +1135(g_tTex2di1a): 1134(ptr) Variable UniformConstant + 1136: TypeImage 10(int) 2D array nonsampled format:R32ui + 1137: TypePointer UniformConstant 1136 +1138(g_tTex2du1a): 1137(ptr) Variable UniformConstant + 1139: TypeImage 1101(float) Buffer nonsampled format:R32f + 1140: TypePointer UniformConstant 1139 + 1141(g_tBuffF): 1140(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 31(out_i1): 30(ptr) Variable Function + 126(out_u1): 125(ptr) Variable Function + 1105(psout): 1104(ptr) Variable Function + 20: 19(ptr) AccessChain 17 18 + 21: 6(int) Load 20 + 23: 19(ptr) AccessChain 17 22 + 24: 6(int) Load 23 + 27: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 21 25 + 29: 6(int) AtomicIAdd 27 28 25 24 + 32: 19(ptr) AccessChain 17 18 + 33: 6(int) Load 32 + 34: 19(ptr) AccessChain 17 18 + 35: 6(int) Load 34 + 36: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 33 25 + 37: 6(int) AtomicIAdd 36 28 25 35 + Store 31(out_i1) 37 + 38: 19(ptr) AccessChain 17 18 + 39: 6(int) Load 38 + 40: 19(ptr) AccessChain 17 22 + 41: 6(int) Load 40 + 42: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 39 25 + 43: 6(int) AtomicAnd 42 28 25 41 + 44: 19(ptr) AccessChain 17 18 + 45: 6(int) Load 44 + 46: 19(ptr) AccessChain 17 18 + 47: 6(int) Load 46 + 48: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 45 25 + 49: 6(int) AtomicAnd 48 28 25 47 + Store 31(out_i1) 49 + 50: 19(ptr) AccessChain 17 18 + 51: 6(int) Load 50 + 52: 19(ptr) AccessChain 17 22 + 53: 6(int) Load 52 + 55: 19(ptr) AccessChain 17 54 + 56: 6(int) Load 55 + 57: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 51 25 + 58: 6(int) AtomicCompareExchange 57 28 25 25 56 53 + Store 31(out_i1) 58 + 59: 19(ptr) AccessChain 17 18 + 60: 6(int) Load 59 + 61: 19(ptr) AccessChain 17 18 + 62: 6(int) Load 61 + 63: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 60 25 + 64: 6(int) AtomicExchange 63 28 25 62 + Store 31(out_i1) 64 + 65: 19(ptr) AccessChain 17 18 + 66: 6(int) Load 65 + 67: 19(ptr) AccessChain 17 22 + 68: 6(int) Load 67 + 69: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 66 25 + 70: 6(int) AtomicSMax 69 28 25 68 + 71: 19(ptr) AccessChain 17 18 + 72: 6(int) Load 71 + 73: 19(ptr) AccessChain 17 18 + 74: 6(int) Load 73 + 75: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 72 25 + 76: 6(int) AtomicSMax 75 28 25 74 + Store 31(out_i1) 76 + 77: 19(ptr) AccessChain 17 18 + 78: 6(int) Load 77 + 79: 19(ptr) AccessChain 17 22 + 80: 6(int) Load 79 + 81: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 78 25 + 82: 6(int) AtomicSMin 81 28 25 80 + 83: 19(ptr) AccessChain 17 18 + 84: 6(int) Load 83 + 85: 19(ptr) AccessChain 17 18 + 86: 6(int) Load 85 + 87: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 84 25 + 88: 6(int) AtomicSMin 87 28 25 86 + Store 31(out_i1) 88 + 89: 19(ptr) AccessChain 17 18 + 90: 6(int) Load 89 + 91: 19(ptr) AccessChain 17 22 + 92: 6(int) Load 91 + 93: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 90 25 + 94: 6(int) AtomicOr 93 28 25 92 + 95: 19(ptr) AccessChain 17 18 + 96: 6(int) Load 95 + 97: 19(ptr) AccessChain 17 18 + 98: 6(int) Load 97 + 99: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 96 25 + 100: 6(int) AtomicOr 99 28 25 98 + Store 31(out_i1) 100 + 101: 19(ptr) AccessChain 17 18 + 102: 6(int) Load 101 + 103: 19(ptr) AccessChain 17 22 + 104: 6(int) Load 103 + 105: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 102 25 + 106: 6(int) AtomicXor 105 28 25 104 + 107: 19(ptr) AccessChain 17 18 + 108: 6(int) Load 107 + 109: 19(ptr) AccessChain 17 18 + 110: 6(int) Load 109 + 111: 26(ptr) ImageTexelPointer 9(g_tTex1di1) 108 25 + 112: 6(int) AtomicXor 111 28 25 110 + Store 31(out_i1) 112 + 118: 117(ptr) AccessChain 17 116 + 119: 10(int) Load 118 + 120: 117(ptr) AccessChain 17 116 + 121: 10(int) Load 120 + 123: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 119 25 + 124: 10(int) AtomicIAdd 123 28 25 121 + 127: 117(ptr) AccessChain 17 116 + 128: 10(int) Load 127 + 129: 117(ptr) AccessChain 17 116 + 130: 10(int) Load 129 + 131: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 128 25 + 132: 10(int) AtomicIAdd 131 28 25 130 + Store 126(out_u1) 132 + 133: 117(ptr) AccessChain 17 116 + 134: 10(int) Load 133 + 135: 117(ptr) AccessChain 17 116 + 136: 10(int) Load 135 + 137: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 134 25 + 138: 10(int) AtomicAnd 137 28 25 136 + 139: 117(ptr) AccessChain 17 116 + 140: 10(int) Load 139 + 141: 117(ptr) AccessChain 17 116 + 142: 10(int) Load 141 + 143: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 140 25 + 144: 10(int) AtomicAnd 143 28 25 142 + Store 126(out_u1) 144 + 145: 117(ptr) AccessChain 17 116 + 146: 10(int) Load 145 + 148: 117(ptr) AccessChain 17 147 + 149: 10(int) Load 148 + 151: 117(ptr) AccessChain 17 150 + 152: 10(int) Load 151 + 153: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 146 25 + 154: 10(int) AtomicCompareExchange 153 28 25 25 152 149 + Store 126(out_u1) 154 + 155: 117(ptr) AccessChain 17 116 + 156: 10(int) Load 155 + 157: 117(ptr) AccessChain 17 116 + 158: 10(int) Load 157 + 159: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 156 25 + 160: 10(int) AtomicExchange 159 28 25 158 + Store 126(out_u1) 160 + 161: 117(ptr) AccessChain 17 116 + 162: 10(int) Load 161 + 163: 117(ptr) AccessChain 17 116 + 164: 10(int) Load 163 + 165: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 162 25 + 166: 10(int) AtomicUMax 165 28 25 164 + 167: 117(ptr) AccessChain 17 116 + 168: 10(int) Load 167 + 169: 117(ptr) AccessChain 17 116 + 170: 10(int) Load 169 + 171: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 168 25 + 172: 10(int) AtomicUMax 171 28 25 170 + Store 126(out_u1) 172 + 173: 117(ptr) AccessChain 17 116 + 174: 10(int) Load 173 + 175: 117(ptr) AccessChain 17 116 + 176: 10(int) Load 175 + 177: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 174 25 + 178: 10(int) AtomicUMin 177 28 25 176 + 179: 117(ptr) AccessChain 17 116 + 180: 10(int) Load 179 + 181: 117(ptr) AccessChain 17 116 + 182: 10(int) Load 181 + 183: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 180 25 + 184: 10(int) AtomicUMin 183 28 25 182 + Store 126(out_u1) 184 + 185: 117(ptr) AccessChain 17 116 + 186: 10(int) Load 185 + 187: 117(ptr) AccessChain 17 116 + 188: 10(int) Load 187 + 189: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 186 25 + 190: 10(int) AtomicOr 189 28 25 188 + 191: 117(ptr) AccessChain 17 116 + 192: 10(int) Load 191 + 193: 117(ptr) AccessChain 17 116 + 194: 10(int) Load 193 + 195: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 192 25 + 196: 10(int) AtomicOr 195 28 25 194 + Store 126(out_u1) 196 + 197: 117(ptr) AccessChain 17 116 + 198: 10(int) Load 197 + 199: 117(ptr) AccessChain 17 116 + 200: 10(int) Load 199 + 201: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 198 25 + 202: 10(int) AtomicXor 201 28 25 200 + 203: 117(ptr) AccessChain 17 116 + 204: 10(int) Load 203 + 205: 117(ptr) AccessChain 17 116 + 206: 10(int) Load 205 + 207: 122(ptr) ImageTexelPointer 115(g_tTex1du1) 204 25 + 208: 10(int) AtomicXor 207 28 25 206 + Store 126(out_u1) 208 + 214: 213(ptr) AccessChain 17 212 + 215: 13(ivec2) Load 214 + 216: 19(ptr) AccessChain 17 22 + 217: 6(int) Load 216 + 218: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 215 25 + 219: 6(int) AtomicIAdd 218 28 25 217 + 220: 213(ptr) AccessChain 17 212 + 221: 13(ivec2) Load 220 + 222: 19(ptr) AccessChain 17 18 + 223: 6(int) Load 222 + 224: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 221 25 + 225: 6(int) AtomicIAdd 224 28 25 223 + Store 31(out_i1) 225 + 226: 213(ptr) AccessChain 17 212 + 227: 13(ivec2) Load 226 + 228: 19(ptr) AccessChain 17 22 + 229: 6(int) Load 228 + 230: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 227 25 + 231: 6(int) AtomicAnd 230 28 25 229 + 232: 213(ptr) AccessChain 17 212 + 233: 13(ivec2) Load 232 + 234: 19(ptr) AccessChain 17 18 + 235: 6(int) Load 234 + 236: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 233 25 + 237: 6(int) AtomicAnd 236 28 25 235 + Store 31(out_i1) 237 + 238: 213(ptr) AccessChain 17 212 + 239: 13(ivec2) Load 238 + 240: 19(ptr) AccessChain 17 22 + 241: 6(int) Load 240 + 242: 19(ptr) AccessChain 17 54 + 243: 6(int) Load 242 + 244: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 239 25 + 245: 6(int) AtomicCompareExchange 244 28 25 25 243 241 + Store 31(out_i1) 245 + 246: 213(ptr) AccessChain 17 212 + 247: 13(ivec2) Load 246 + 248: 19(ptr) AccessChain 17 18 + 249: 6(int) Load 248 + 250: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 247 25 + 251: 6(int) AtomicExchange 250 28 25 249 + Store 31(out_i1) 251 + 252: 213(ptr) AccessChain 17 212 + 253: 13(ivec2) Load 252 + 254: 19(ptr) AccessChain 17 22 + 255: 6(int) Load 254 + 256: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 253 25 + 257: 6(int) AtomicSMax 256 28 25 255 + 258: 213(ptr) AccessChain 17 212 + 259: 13(ivec2) Load 258 + 260: 19(ptr) AccessChain 17 18 + 261: 6(int) Load 260 + 262: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 259 25 + 263: 6(int) AtomicSMax 262 28 25 261 + Store 31(out_i1) 263 + 264: 213(ptr) AccessChain 17 212 + 265: 13(ivec2) Load 264 + 266: 19(ptr) AccessChain 17 22 + 267: 6(int) Load 266 + 268: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 265 25 + 269: 6(int) AtomicSMin 268 28 25 267 + 270: 213(ptr) AccessChain 17 212 + 271: 13(ivec2) Load 270 + 272: 19(ptr) AccessChain 17 18 + 273: 6(int) Load 272 + 274: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 271 25 + 275: 6(int) AtomicSMin 274 28 25 273 + Store 31(out_i1) 275 + 276: 213(ptr) AccessChain 17 212 + 277: 13(ivec2) Load 276 + 278: 19(ptr) AccessChain 17 22 + 279: 6(int) Load 278 + 280: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 277 25 + 281: 6(int) AtomicOr 280 28 25 279 + 282: 213(ptr) AccessChain 17 212 + 283: 13(ivec2) Load 282 + 284: 19(ptr) AccessChain 17 18 + 285: 6(int) Load 284 + 286: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 283 25 + 287: 6(int) AtomicOr 286 28 25 285 + Store 31(out_i1) 287 + 288: 213(ptr) AccessChain 17 212 + 289: 13(ivec2) Load 288 + 290: 19(ptr) AccessChain 17 22 + 291: 6(int) Load 290 + 292: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 289 25 + 293: 6(int) AtomicXor 292 28 25 291 + 294: 213(ptr) AccessChain 17 212 + 295: 13(ivec2) Load 294 + 296: 19(ptr) AccessChain 17 18 + 297: 6(int) Load 296 + 298: 26(ptr) ImageTexelPointer 211(g_tTex2di1) 295 25 + 299: 6(int) AtomicXor 298 28 25 297 + Store 31(out_i1) 299 + 305: 304(ptr) AccessChain 17 303 + 306: 11(ivec2) Load 305 + 307: 117(ptr) AccessChain 17 116 + 308: 10(int) Load 307 + 309: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 306 25 + 310: 10(int) AtomicIAdd 309 28 25 308 + 311: 304(ptr) AccessChain 17 303 + 312: 11(ivec2) Load 311 + 313: 117(ptr) AccessChain 17 116 + 314: 10(int) Load 313 + 315: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 312 25 + 316: 10(int) AtomicIAdd 315 28 25 314 + Store 126(out_u1) 316 + 317: 304(ptr) AccessChain 17 303 + 318: 11(ivec2) Load 317 + 319: 117(ptr) AccessChain 17 116 + 320: 10(int) Load 319 + 321: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 318 25 + 322: 10(int) AtomicAnd 321 28 25 320 + 323: 304(ptr) AccessChain 17 303 + 324: 11(ivec2) Load 323 + 325: 117(ptr) AccessChain 17 116 + 326: 10(int) Load 325 + 327: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 324 25 + 328: 10(int) AtomicAnd 327 28 25 326 + Store 126(out_u1) 328 + 329: 304(ptr) AccessChain 17 303 + 330: 11(ivec2) Load 329 + 331: 117(ptr) AccessChain 17 147 + 332: 10(int) Load 331 + 333: 117(ptr) AccessChain 17 150 + 334: 10(int) Load 333 + 335: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 330 25 + 336: 10(int) AtomicCompareExchange 335 28 25 25 334 332 + Store 126(out_u1) 336 + 337: 304(ptr) AccessChain 17 303 + 338: 11(ivec2) Load 337 + 339: 117(ptr) AccessChain 17 116 + 340: 10(int) Load 339 + 341: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 338 25 + 342: 10(int) AtomicExchange 341 28 25 340 + Store 126(out_u1) 342 + 343: 304(ptr) AccessChain 17 303 + 344: 11(ivec2) Load 343 + 345: 117(ptr) AccessChain 17 116 + 346: 10(int) Load 345 + 347: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 344 25 + 348: 10(int) AtomicUMax 347 28 25 346 + 349: 304(ptr) AccessChain 17 303 + 350: 11(ivec2) Load 349 + 351: 117(ptr) AccessChain 17 116 + 352: 10(int) Load 351 + 353: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 350 25 + 354: 10(int) AtomicUMax 353 28 25 352 + Store 126(out_u1) 354 + 355: 304(ptr) AccessChain 17 303 + 356: 11(ivec2) Load 355 + 357: 117(ptr) AccessChain 17 116 + 358: 10(int) Load 357 + 359: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 356 25 + 360: 10(int) AtomicUMin 359 28 25 358 + 361: 304(ptr) AccessChain 17 303 + 362: 11(ivec2) Load 361 + 363: 117(ptr) AccessChain 17 116 + 364: 10(int) Load 363 + 365: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 362 25 + 366: 10(int) AtomicUMin 365 28 25 364 + Store 126(out_u1) 366 + 367: 304(ptr) AccessChain 17 303 + 368: 11(ivec2) Load 367 + 369: 117(ptr) AccessChain 17 116 + 370: 10(int) Load 369 + 371: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 368 25 + 372: 10(int) AtomicOr 371 28 25 370 + 373: 304(ptr) AccessChain 17 303 + 374: 11(ivec2) Load 373 + 375: 117(ptr) AccessChain 17 116 + 376: 10(int) Load 375 + 377: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 374 25 + 378: 10(int) AtomicOr 377 28 25 376 + Store 126(out_u1) 378 + 379: 304(ptr) AccessChain 17 303 + 380: 11(ivec2) Load 379 + 381: 117(ptr) AccessChain 17 116 + 382: 10(int) Load 381 + 383: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 380 25 + 384: 10(int) AtomicXor 383 28 25 382 + 385: 304(ptr) AccessChain 17 303 + 386: 11(ivec2) Load 385 + 387: 117(ptr) AccessChain 17 116 + 388: 10(int) Load 387 + 389: 122(ptr) ImageTexelPointer 302(g_tTex2du1) 386 25 + 390: 10(int) AtomicXor 389 28 25 388 + Store 126(out_u1) 390 + 396: 395(ptr) AccessChain 17 394 + 397: 14(ivec3) Load 396 + 398: 19(ptr) AccessChain 17 22 + 399: 6(int) Load 398 + 400: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 397 25 + 401: 6(int) AtomicIAdd 400 28 25 399 + 402: 395(ptr) AccessChain 17 394 + 403: 14(ivec3) Load 402 + 404: 19(ptr) AccessChain 17 18 + 405: 6(int) Load 404 + 406: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 403 25 + 407: 6(int) AtomicIAdd 406 28 25 405 + Store 31(out_i1) 407 + 408: 395(ptr) AccessChain 17 394 + 409: 14(ivec3) Load 408 + 410: 19(ptr) AccessChain 17 22 + 411: 6(int) Load 410 + 412: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 409 25 + 413: 6(int) AtomicAnd 412 28 25 411 + 414: 395(ptr) AccessChain 17 394 + 415: 14(ivec3) Load 414 + 416: 19(ptr) AccessChain 17 18 + 417: 6(int) Load 416 + 418: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 415 25 + 419: 6(int) AtomicAnd 418 28 25 417 + Store 31(out_i1) 419 + 420: 395(ptr) AccessChain 17 394 + 421: 14(ivec3) Load 420 + 422: 19(ptr) AccessChain 17 22 + 423: 6(int) Load 422 + 424: 19(ptr) AccessChain 17 54 + 425: 6(int) Load 424 + 426: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 421 25 + 427: 6(int) AtomicCompareExchange 426 28 25 25 425 423 + Store 31(out_i1) 427 + 428: 395(ptr) AccessChain 17 394 + 429: 14(ivec3) Load 428 + 430: 19(ptr) AccessChain 17 18 + 431: 6(int) Load 430 + 432: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 429 25 + 433: 6(int) AtomicExchange 432 28 25 431 + Store 31(out_i1) 433 + 434: 395(ptr) AccessChain 17 394 + 435: 14(ivec3) Load 434 + 436: 19(ptr) AccessChain 17 22 + 437: 6(int) Load 436 + 438: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 435 25 + 439: 6(int) AtomicSMax 438 28 25 437 + 440: 395(ptr) AccessChain 17 394 + 441: 14(ivec3) Load 440 + 442: 19(ptr) AccessChain 17 18 + 443: 6(int) Load 442 + 444: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 441 25 + 445: 6(int) AtomicSMax 444 28 25 443 + Store 31(out_i1) 445 + 446: 395(ptr) AccessChain 17 394 + 447: 14(ivec3) Load 446 + 448: 19(ptr) AccessChain 17 22 + 449: 6(int) Load 448 + 450: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 447 25 + 451: 6(int) AtomicSMin 450 28 25 449 + 452: 395(ptr) AccessChain 17 394 + 453: 14(ivec3) Load 452 + 454: 19(ptr) AccessChain 17 18 + 455: 6(int) Load 454 + 456: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 453 25 + 457: 6(int) AtomicSMin 456 28 25 455 + Store 31(out_i1) 457 + 458: 395(ptr) AccessChain 17 394 + 459: 14(ivec3) Load 458 + 460: 19(ptr) AccessChain 17 22 + 461: 6(int) Load 460 + 462: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 459 25 + 463: 6(int) AtomicOr 462 28 25 461 + 464: 395(ptr) AccessChain 17 394 + 465: 14(ivec3) Load 464 + 466: 19(ptr) AccessChain 17 18 + 467: 6(int) Load 466 + 468: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 465 25 + 469: 6(int) AtomicOr 468 28 25 467 + Store 31(out_i1) 469 + 470: 395(ptr) AccessChain 17 394 + 471: 14(ivec3) Load 470 + 472: 19(ptr) AccessChain 17 22 + 473: 6(int) Load 472 + 474: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 471 25 + 475: 6(int) AtomicXor 474 28 25 473 + 476: 395(ptr) AccessChain 17 394 + 477: 14(ivec3) Load 476 + 478: 19(ptr) AccessChain 17 18 + 479: 6(int) Load 478 + 480: 26(ptr) ImageTexelPointer 393(g_tTex3di1) 477 25 + 481: 6(int) AtomicXor 480 28 25 479 + Store 31(out_i1) 481 + 487: 486(ptr) AccessChain 17 485 + 488: 12(ivec3) Load 487 + 489: 117(ptr) AccessChain 17 116 + 490: 10(int) Load 489 + 491: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 488 25 + 492: 10(int) AtomicIAdd 491 28 25 490 + 493: 486(ptr) AccessChain 17 485 + 494: 12(ivec3) Load 493 + 495: 117(ptr) AccessChain 17 116 + 496: 10(int) Load 495 + 497: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 494 25 + 498: 10(int) AtomicIAdd 497 28 25 496 + Store 126(out_u1) 498 + 499: 486(ptr) AccessChain 17 485 + 500: 12(ivec3) Load 499 + 501: 117(ptr) AccessChain 17 116 + 502: 10(int) Load 501 + 503: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 500 25 + 504: 10(int) AtomicAnd 503 28 25 502 + 505: 486(ptr) AccessChain 17 485 + 506: 12(ivec3) Load 505 + 507: 117(ptr) AccessChain 17 116 + 508: 10(int) Load 507 + 509: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 506 25 + 510: 10(int) AtomicAnd 509 28 25 508 + Store 126(out_u1) 510 + 511: 486(ptr) AccessChain 17 485 + 512: 12(ivec3) Load 511 + 513: 117(ptr) AccessChain 17 147 + 514: 10(int) Load 513 + 515: 117(ptr) AccessChain 17 150 + 516: 10(int) Load 515 + 517: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 512 25 + 518: 10(int) AtomicCompareExchange 517 28 25 25 516 514 + Store 126(out_u1) 518 + 519: 486(ptr) AccessChain 17 485 + 520: 12(ivec3) Load 519 + 521: 117(ptr) AccessChain 17 116 + 522: 10(int) Load 521 + 523: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 520 25 + 524: 10(int) AtomicExchange 523 28 25 522 + Store 126(out_u1) 524 + 525: 486(ptr) AccessChain 17 485 + 526: 12(ivec3) Load 525 + 527: 117(ptr) AccessChain 17 116 + 528: 10(int) Load 527 + 529: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 526 25 + 530: 10(int) AtomicUMax 529 28 25 528 + 531: 486(ptr) AccessChain 17 485 + 532: 12(ivec3) Load 531 + 533: 117(ptr) AccessChain 17 116 + 534: 10(int) Load 533 + 535: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 532 25 + 536: 10(int) AtomicUMax 535 28 25 534 + Store 126(out_u1) 536 + 537: 486(ptr) AccessChain 17 485 + 538: 12(ivec3) Load 537 + 539: 117(ptr) AccessChain 17 116 + 540: 10(int) Load 539 + 541: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 538 25 + 542: 10(int) AtomicUMin 541 28 25 540 + 543: 486(ptr) AccessChain 17 485 + 544: 12(ivec3) Load 543 + 545: 117(ptr) AccessChain 17 116 + 546: 10(int) Load 545 + 547: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 544 25 + 548: 10(int) AtomicUMin 547 28 25 546 + Store 126(out_u1) 548 + 549: 486(ptr) AccessChain 17 485 + 550: 12(ivec3) Load 549 + 551: 117(ptr) AccessChain 17 116 + 552: 10(int) Load 551 + 553: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 550 25 + 554: 10(int) AtomicOr 553 28 25 552 + 555: 486(ptr) AccessChain 17 485 + 556: 12(ivec3) Load 555 + 557: 117(ptr) AccessChain 17 116 + 558: 10(int) Load 557 + 559: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 556 25 + 560: 10(int) AtomicOr 559 28 25 558 + Store 126(out_u1) 560 + 561: 486(ptr) AccessChain 17 485 + 562: 12(ivec3) Load 561 + 563: 117(ptr) AccessChain 17 116 + 564: 10(int) Load 563 + 565: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 562 25 + 566: 10(int) AtomicXor 565 28 25 564 + 567: 486(ptr) AccessChain 17 485 + 568: 12(ivec3) Load 567 + 569: 117(ptr) AccessChain 17 116 + 570: 10(int) Load 569 + 571: 122(ptr) ImageTexelPointer 484(g_tTex3du1) 568 25 + 572: 10(int) AtomicXor 571 28 25 570 + Store 126(out_u1) 572 + 576: 213(ptr) AccessChain 17 212 + 577: 13(ivec2) Load 576 + 578: 19(ptr) AccessChain 17 22 + 579: 6(int) Load 578 + 580: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 577 25 + 581: 6(int) AtomicIAdd 580 28 25 579 + 582: 213(ptr) AccessChain 17 212 + 583: 13(ivec2) Load 582 + 584: 19(ptr) AccessChain 17 18 + 585: 6(int) Load 584 + 586: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 583 25 + 587: 6(int) AtomicIAdd 586 28 25 585 + Store 31(out_i1) 587 + 588: 213(ptr) AccessChain 17 212 + 589: 13(ivec2) Load 588 + 590: 19(ptr) AccessChain 17 22 + 591: 6(int) Load 590 + 592: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 589 25 + 593: 6(int) AtomicAnd 592 28 25 591 + 594: 213(ptr) AccessChain 17 212 + 595: 13(ivec2) Load 594 + 596: 19(ptr) AccessChain 17 18 + 597: 6(int) Load 596 + 598: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 595 25 + 599: 6(int) AtomicAnd 598 28 25 597 + Store 31(out_i1) 599 + 600: 213(ptr) AccessChain 17 212 + 601: 13(ivec2) Load 600 + 602: 19(ptr) AccessChain 17 22 + 603: 6(int) Load 602 + 604: 19(ptr) AccessChain 17 54 + 605: 6(int) Load 604 + 606: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 601 25 + 607: 6(int) AtomicCompareExchange 606 28 25 25 605 603 + Store 31(out_i1) 607 + 608: 213(ptr) AccessChain 17 212 + 609: 13(ivec2) Load 608 + 610: 19(ptr) AccessChain 17 18 + 611: 6(int) Load 610 + 612: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 609 25 + 613: 6(int) AtomicExchange 612 28 25 611 + Store 31(out_i1) 613 + 614: 213(ptr) AccessChain 17 212 + 615: 13(ivec2) Load 614 + 616: 19(ptr) AccessChain 17 22 + 617: 6(int) Load 616 + 618: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 615 25 + 619: 6(int) AtomicSMax 618 28 25 617 + 620: 213(ptr) AccessChain 17 212 + 621: 13(ivec2) Load 620 + 622: 19(ptr) AccessChain 17 18 + 623: 6(int) Load 622 + 624: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 621 25 + 625: 6(int) AtomicSMax 624 28 25 623 + Store 31(out_i1) 625 + 626: 213(ptr) AccessChain 17 212 + 627: 13(ivec2) Load 626 + 628: 19(ptr) AccessChain 17 22 + 629: 6(int) Load 628 + 630: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 627 25 + 631: 6(int) AtomicSMin 630 28 25 629 + 632: 213(ptr) AccessChain 17 212 + 633: 13(ivec2) Load 632 + 634: 19(ptr) AccessChain 17 18 + 635: 6(int) Load 634 + 636: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 633 25 + 637: 6(int) AtomicSMin 636 28 25 635 + Store 31(out_i1) 637 + 638: 213(ptr) AccessChain 17 212 + 639: 13(ivec2) Load 638 + 640: 19(ptr) AccessChain 17 22 + 641: 6(int) Load 640 + 642: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 639 25 + 643: 6(int) AtomicOr 642 28 25 641 + 644: 213(ptr) AccessChain 17 212 + 645: 13(ivec2) Load 644 + 646: 19(ptr) AccessChain 17 18 + 647: 6(int) Load 646 + 648: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 645 25 + 649: 6(int) AtomicOr 648 28 25 647 + Store 31(out_i1) 649 + 650: 213(ptr) AccessChain 17 212 + 651: 13(ivec2) Load 650 + 652: 19(ptr) AccessChain 17 22 + 653: 6(int) Load 652 + 654: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 651 25 + 655: 6(int) AtomicXor 654 28 25 653 + 656: 213(ptr) AccessChain 17 212 + 657: 13(ivec2) Load 656 + 658: 19(ptr) AccessChain 17 18 + 659: 6(int) Load 658 + 660: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 657 25 + 661: 6(int) AtomicXor 660 28 25 659 + Store 31(out_i1) 661 + 665: 304(ptr) AccessChain 17 303 + 666: 11(ivec2) Load 665 + 667: 117(ptr) AccessChain 17 116 + 668: 10(int) Load 667 + 669: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 666 25 + 670: 10(int) AtomicIAdd 669 28 25 668 + 671: 304(ptr) AccessChain 17 303 + 672: 11(ivec2) Load 671 + 673: 117(ptr) AccessChain 17 116 + 674: 10(int) Load 673 + 675: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 672 25 + 676: 10(int) AtomicIAdd 675 28 25 674 + Store 126(out_u1) 676 + 677: 304(ptr) AccessChain 17 303 + 678: 11(ivec2) Load 677 + 679: 117(ptr) AccessChain 17 116 + 680: 10(int) Load 679 + 681: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 678 25 + 682: 10(int) AtomicAnd 681 28 25 680 + 683: 304(ptr) AccessChain 17 303 + 684: 11(ivec2) Load 683 + 685: 117(ptr) AccessChain 17 116 + 686: 10(int) Load 685 + 687: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 684 25 + 688: 10(int) AtomicAnd 687 28 25 686 + Store 126(out_u1) 688 + 689: 304(ptr) AccessChain 17 303 + 690: 11(ivec2) Load 689 + 691: 117(ptr) AccessChain 17 147 + 692: 10(int) Load 691 + 693: 117(ptr) AccessChain 17 150 + 694: 10(int) Load 693 + 695: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 690 25 + 696: 10(int) AtomicCompareExchange 695 28 25 25 694 692 + Store 126(out_u1) 696 + 697: 304(ptr) AccessChain 17 303 + 698: 11(ivec2) Load 697 + 699: 117(ptr) AccessChain 17 116 + 700: 10(int) Load 699 + 701: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 698 25 + 702: 10(int) AtomicExchange 701 28 25 700 + Store 126(out_u1) 702 + 703: 304(ptr) AccessChain 17 303 + 704: 11(ivec2) Load 703 + 705: 117(ptr) AccessChain 17 116 + 706: 10(int) Load 705 + 707: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 704 25 + 708: 10(int) AtomicUMax 707 28 25 706 + 709: 304(ptr) AccessChain 17 303 + 710: 11(ivec2) Load 709 + 711: 117(ptr) AccessChain 17 116 + 712: 10(int) Load 711 + 713: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 710 25 + 714: 10(int) AtomicUMax 713 28 25 712 + Store 126(out_u1) 714 + 715: 304(ptr) AccessChain 17 303 + 716: 11(ivec2) Load 715 + 717: 117(ptr) AccessChain 17 116 + 718: 10(int) Load 717 + 719: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 716 25 + 720: 10(int) AtomicUMin 719 28 25 718 + 721: 304(ptr) AccessChain 17 303 + 722: 11(ivec2) Load 721 + 723: 117(ptr) AccessChain 17 116 + 724: 10(int) Load 723 + 725: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 722 25 + 726: 10(int) AtomicUMin 725 28 25 724 + Store 126(out_u1) 726 + 727: 304(ptr) AccessChain 17 303 + 728: 11(ivec2) Load 727 + 729: 117(ptr) AccessChain 17 116 + 730: 10(int) Load 729 + 731: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 728 25 + 732: 10(int) AtomicOr 731 28 25 730 + 733: 304(ptr) AccessChain 17 303 + 734: 11(ivec2) Load 733 + 735: 117(ptr) AccessChain 17 116 + 736: 10(int) Load 735 + 737: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 734 25 + 738: 10(int) AtomicOr 737 28 25 736 + Store 126(out_u1) 738 + 739: 304(ptr) AccessChain 17 303 + 740: 11(ivec2) Load 739 + 741: 117(ptr) AccessChain 17 116 + 742: 10(int) Load 741 + 743: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 740 25 + 744: 10(int) AtomicXor 743 28 25 742 + 745: 304(ptr) AccessChain 17 303 + 746: 11(ivec2) Load 745 + 747: 117(ptr) AccessChain 17 116 + 748: 10(int) Load 747 + 749: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 746 25 + 750: 10(int) AtomicXor 749 28 25 748 + Store 126(out_u1) 750 + 751: 213(ptr) AccessChain 17 212 + 752: 13(ivec2) Load 751 + 753: 19(ptr) AccessChain 17 22 + 754: 6(int) Load 753 + 755: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 752 25 + 756: 6(int) AtomicIAdd 755 28 25 754 + 757: 213(ptr) AccessChain 17 212 + 758: 13(ivec2) Load 757 + 759: 19(ptr) AccessChain 17 18 + 760: 6(int) Load 759 + 761: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 758 25 + 762: 6(int) AtomicIAdd 761 28 25 760 + Store 31(out_i1) 762 + 763: 213(ptr) AccessChain 17 212 + 764: 13(ivec2) Load 763 + 765: 19(ptr) AccessChain 17 22 + 766: 6(int) Load 765 + 767: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 764 25 + 768: 6(int) AtomicAnd 767 28 25 766 + 769: 213(ptr) AccessChain 17 212 + 770: 13(ivec2) Load 769 + 771: 19(ptr) AccessChain 17 18 + 772: 6(int) Load 771 + 773: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 770 25 + 774: 6(int) AtomicAnd 773 28 25 772 + Store 31(out_i1) 774 + 775: 213(ptr) AccessChain 17 212 + 776: 13(ivec2) Load 775 + 777: 19(ptr) AccessChain 17 22 + 778: 6(int) Load 777 + 779: 19(ptr) AccessChain 17 54 + 780: 6(int) Load 779 + 781: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 776 25 + 782: 6(int) AtomicCompareExchange 781 28 25 25 780 778 + Store 31(out_i1) 782 + 783: 213(ptr) AccessChain 17 212 + 784: 13(ivec2) Load 783 + 785: 19(ptr) AccessChain 17 18 + 786: 6(int) Load 785 + 787: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 784 25 + 788: 6(int) AtomicExchange 787 28 25 786 + Store 31(out_i1) 788 + 789: 213(ptr) AccessChain 17 212 + 790: 13(ivec2) Load 789 + 791: 19(ptr) AccessChain 17 22 + 792: 6(int) Load 791 + 793: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 790 25 + 794: 6(int) AtomicSMax 793 28 25 792 + 795: 213(ptr) AccessChain 17 212 + 796: 13(ivec2) Load 795 + 797: 19(ptr) AccessChain 17 18 + 798: 6(int) Load 797 + 799: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 796 25 + 800: 6(int) AtomicSMax 799 28 25 798 + Store 31(out_i1) 800 + 801: 213(ptr) AccessChain 17 212 + 802: 13(ivec2) Load 801 + 803: 19(ptr) AccessChain 17 22 + 804: 6(int) Load 803 + 805: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 802 25 + 806: 6(int) AtomicSMin 805 28 25 804 + 807: 213(ptr) AccessChain 17 212 + 808: 13(ivec2) Load 807 + 809: 19(ptr) AccessChain 17 18 + 810: 6(int) Load 809 + 811: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 808 25 + 812: 6(int) AtomicSMin 811 28 25 810 + Store 31(out_i1) 812 + 813: 213(ptr) AccessChain 17 212 + 814: 13(ivec2) Load 813 + 815: 19(ptr) AccessChain 17 22 + 816: 6(int) Load 815 + 817: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 814 25 + 818: 6(int) AtomicOr 817 28 25 816 + 819: 213(ptr) AccessChain 17 212 + 820: 13(ivec2) Load 819 + 821: 19(ptr) AccessChain 17 18 + 822: 6(int) Load 821 + 823: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 820 25 + 824: 6(int) AtomicOr 823 28 25 822 + Store 31(out_i1) 824 + 825: 213(ptr) AccessChain 17 212 + 826: 13(ivec2) Load 825 + 827: 19(ptr) AccessChain 17 22 + 828: 6(int) Load 827 + 829: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 826 25 + 830: 6(int) AtomicXor 829 28 25 828 + 831: 213(ptr) AccessChain 17 212 + 832: 13(ivec2) Load 831 + 833: 19(ptr) AccessChain 17 18 + 834: 6(int) Load 833 + 835: 26(ptr) ImageTexelPointer 575(g_tTex1di1a) 832 25 + 836: 6(int) AtomicXor 835 28 25 834 + Store 31(out_i1) 836 + 837: 304(ptr) AccessChain 17 303 + 838: 11(ivec2) Load 837 + 839: 117(ptr) AccessChain 17 116 + 840: 10(int) Load 839 + 841: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 838 25 + 842: 10(int) AtomicIAdd 841 28 25 840 + 843: 304(ptr) AccessChain 17 303 + 844: 11(ivec2) Load 843 + 845: 117(ptr) AccessChain 17 116 + 846: 10(int) Load 845 + 847: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 844 25 + 848: 10(int) AtomicIAdd 847 28 25 846 + Store 126(out_u1) 848 + 849: 304(ptr) AccessChain 17 303 + 850: 11(ivec2) Load 849 + 851: 117(ptr) AccessChain 17 116 + 852: 10(int) Load 851 + 853: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 850 25 + 854: 10(int) AtomicAnd 853 28 25 852 + 855: 304(ptr) AccessChain 17 303 + 856: 11(ivec2) Load 855 + 857: 117(ptr) AccessChain 17 116 + 858: 10(int) Load 857 + 859: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 856 25 + 860: 10(int) AtomicAnd 859 28 25 858 + Store 126(out_u1) 860 + 861: 304(ptr) AccessChain 17 303 + 862: 11(ivec2) Load 861 + 863: 117(ptr) AccessChain 17 147 + 864: 10(int) Load 863 + 865: 117(ptr) AccessChain 17 150 + 866: 10(int) Load 865 + 867: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 862 25 + 868: 10(int) AtomicCompareExchange 867 28 25 25 866 864 + Store 126(out_u1) 868 + 869: 304(ptr) AccessChain 17 303 + 870: 11(ivec2) Load 869 + 871: 117(ptr) AccessChain 17 116 + 872: 10(int) Load 871 + 873: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 870 25 + 874: 10(int) AtomicExchange 873 28 25 872 + Store 126(out_u1) 874 + 875: 304(ptr) AccessChain 17 303 + 876: 11(ivec2) Load 875 + 877: 117(ptr) AccessChain 17 116 + 878: 10(int) Load 877 + 879: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 876 25 + 880: 10(int) AtomicUMax 879 28 25 878 + 881: 304(ptr) AccessChain 17 303 + 882: 11(ivec2) Load 881 + 883: 117(ptr) AccessChain 17 116 + 884: 10(int) Load 883 + 885: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 882 25 + 886: 10(int) AtomicUMax 885 28 25 884 + Store 126(out_u1) 886 + 887: 304(ptr) AccessChain 17 303 + 888: 11(ivec2) Load 887 + 889: 117(ptr) AccessChain 17 116 + 890: 10(int) Load 889 + 891: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 888 25 + 892: 10(int) AtomicUMin 891 28 25 890 + 893: 304(ptr) AccessChain 17 303 + 894: 11(ivec2) Load 893 + 895: 117(ptr) AccessChain 17 116 + 896: 10(int) Load 895 + 897: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 894 25 + 898: 10(int) AtomicUMin 897 28 25 896 + Store 126(out_u1) 898 + 899: 304(ptr) AccessChain 17 303 + 900: 11(ivec2) Load 899 + 901: 117(ptr) AccessChain 17 116 + 902: 10(int) Load 901 + 903: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 900 25 + 904: 10(int) AtomicOr 903 28 25 902 + 905: 304(ptr) AccessChain 17 303 + 906: 11(ivec2) Load 905 + 907: 117(ptr) AccessChain 17 116 + 908: 10(int) Load 907 + 909: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 906 25 + 910: 10(int) AtomicOr 909 28 25 908 + Store 126(out_u1) 910 + 911: 304(ptr) AccessChain 17 303 + 912: 11(ivec2) Load 911 + 913: 117(ptr) AccessChain 17 116 + 914: 10(int) Load 913 + 915: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 912 25 + 916: 10(int) AtomicXor 915 28 25 914 + 917: 304(ptr) AccessChain 17 303 + 918: 11(ivec2) Load 917 + 919: 117(ptr) AccessChain 17 116 + 920: 10(int) Load 919 + 921: 122(ptr) ImageTexelPointer 664(g_tTex1du1a) 918 25 + 922: 10(int) AtomicXor 921 28 25 920 + Store 126(out_u1) 922 + 926: 19(ptr) AccessChain 17 18 + 927: 6(int) Load 926 + 928: 19(ptr) AccessChain 17 22 + 929: 6(int) Load 928 + 930: 26(ptr) ImageTexelPointer 925(g_tBuffI) 927 25 + 931: 6(int) AtomicIAdd 930 28 25 929 + 932: 19(ptr) AccessChain 17 18 + 933: 6(int) Load 932 + 934: 19(ptr) AccessChain 17 18 + 935: 6(int) Load 934 + 936: 26(ptr) ImageTexelPointer 925(g_tBuffI) 933 25 + 937: 6(int) AtomicIAdd 936 28 25 935 + Store 31(out_i1) 937 + 938: 19(ptr) AccessChain 17 18 + 939: 6(int) Load 938 + 940: 19(ptr) AccessChain 17 22 + 941: 6(int) Load 940 + 942: 26(ptr) ImageTexelPointer 925(g_tBuffI) 939 25 + 943: 6(int) AtomicAnd 942 28 25 941 + 944: 19(ptr) AccessChain 17 18 + 945: 6(int) Load 944 + 946: 19(ptr) AccessChain 17 18 + 947: 6(int) Load 946 + 948: 26(ptr) ImageTexelPointer 925(g_tBuffI) 945 25 + 949: 6(int) AtomicAnd 948 28 25 947 + Store 31(out_i1) 949 + 950: 19(ptr) AccessChain 17 18 + 951: 6(int) Load 950 + 952: 19(ptr) AccessChain 17 22 + 953: 6(int) Load 952 + 954: 19(ptr) AccessChain 17 54 + 955: 6(int) Load 954 + 956: 26(ptr) ImageTexelPointer 925(g_tBuffI) 951 25 + 957: 6(int) AtomicCompareExchange 956 28 25 25 955 953 + Store 31(out_i1) 957 + 958: 19(ptr) AccessChain 17 18 + 959: 6(int) Load 958 + 960: 19(ptr) AccessChain 17 18 + 961: 6(int) Load 960 + 962: 26(ptr) ImageTexelPointer 925(g_tBuffI) 959 25 + 963: 6(int) AtomicExchange 962 28 25 961 + Store 31(out_i1) 963 + 964: 19(ptr) AccessChain 17 18 + 965: 6(int) Load 964 + 966: 19(ptr) AccessChain 17 22 + 967: 6(int) Load 966 + 968: 26(ptr) ImageTexelPointer 925(g_tBuffI) 965 25 + 969: 6(int) AtomicSMax 968 28 25 967 + 970: 19(ptr) AccessChain 17 18 + 971: 6(int) Load 970 + 972: 19(ptr) AccessChain 17 18 + 973: 6(int) Load 972 + 974: 26(ptr) ImageTexelPointer 925(g_tBuffI) 971 25 + 975: 6(int) AtomicSMax 974 28 25 973 + Store 31(out_i1) 975 + 976: 19(ptr) AccessChain 17 18 + 977: 6(int) Load 976 + 978: 19(ptr) AccessChain 17 22 + 979: 6(int) Load 978 + 980: 26(ptr) ImageTexelPointer 925(g_tBuffI) 977 25 + 981: 6(int) AtomicSMin 980 28 25 979 + 982: 19(ptr) AccessChain 17 18 + 983: 6(int) Load 982 + 984: 19(ptr) AccessChain 17 18 + 985: 6(int) Load 984 + 986: 26(ptr) ImageTexelPointer 925(g_tBuffI) 983 25 + 987: 6(int) AtomicSMin 986 28 25 985 + Store 31(out_i1) 987 + 988: 19(ptr) AccessChain 17 18 + 989: 6(int) Load 988 + 990: 19(ptr) AccessChain 17 22 + 991: 6(int) Load 990 + 992: 26(ptr) ImageTexelPointer 925(g_tBuffI) 989 25 + 993: 6(int) AtomicOr 992 28 25 991 + 994: 19(ptr) AccessChain 17 18 + 995: 6(int) Load 994 + 996: 19(ptr) AccessChain 17 18 + 997: 6(int) Load 996 + 998: 26(ptr) ImageTexelPointer 925(g_tBuffI) 995 25 + 999: 6(int) AtomicOr 998 28 25 997 + Store 31(out_i1) 999 + 1000: 19(ptr) AccessChain 17 18 + 1001: 6(int) Load 1000 + 1002: 19(ptr) AccessChain 17 22 + 1003: 6(int) Load 1002 + 1004: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1001 25 + 1005: 6(int) AtomicXor 1004 28 25 1003 + 1006: 19(ptr) AccessChain 17 18 + 1007: 6(int) Load 1006 + 1008: 19(ptr) AccessChain 17 18 + 1009: 6(int) Load 1008 + 1010: 26(ptr) ImageTexelPointer 925(g_tBuffI) 1007 25 + 1011: 6(int) AtomicXor 1010 28 25 1009 + Store 31(out_i1) 1011 + 1015: 117(ptr) AccessChain 17 116 + 1016: 10(int) Load 1015 + 1017: 117(ptr) AccessChain 17 116 + 1018: 10(int) Load 1017 + 1019: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1016 25 + 1020: 10(int) AtomicIAdd 1019 28 25 1018 + 1021: 117(ptr) AccessChain 17 116 + 1022: 10(int) Load 1021 + 1023: 117(ptr) AccessChain 17 116 + 1024: 10(int) Load 1023 + 1025: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1022 25 + 1026: 10(int) AtomicIAdd 1025 28 25 1024 + Store 126(out_u1) 1026 + 1027: 117(ptr) AccessChain 17 116 + 1028: 10(int) Load 1027 + 1029: 117(ptr) AccessChain 17 116 + 1030: 10(int) Load 1029 + 1031: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1028 25 + 1032: 10(int) AtomicAnd 1031 28 25 1030 + 1033: 117(ptr) AccessChain 17 116 + 1034: 10(int) Load 1033 + 1035: 117(ptr) AccessChain 17 116 + 1036: 10(int) Load 1035 + 1037: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1034 25 + 1038: 10(int) AtomicAnd 1037 28 25 1036 + Store 126(out_u1) 1038 + 1039: 117(ptr) AccessChain 17 116 + 1040: 10(int) Load 1039 + 1041: 117(ptr) AccessChain 17 147 + 1042: 10(int) Load 1041 + 1043: 117(ptr) AccessChain 17 150 + 1044: 10(int) Load 1043 + 1045: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1040 25 + 1046: 10(int) AtomicCompareExchange 1045 28 25 25 1044 1042 + Store 126(out_u1) 1046 + 1047: 117(ptr) AccessChain 17 116 + 1048: 10(int) Load 1047 + 1049: 117(ptr) AccessChain 17 116 + 1050: 10(int) Load 1049 + 1051: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1048 25 + 1052: 10(int) AtomicExchange 1051 28 25 1050 + Store 126(out_u1) 1052 + 1053: 117(ptr) AccessChain 17 116 + 1054: 10(int) Load 1053 + 1055: 117(ptr) AccessChain 17 116 + 1056: 10(int) Load 1055 + 1057: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1054 25 + 1058: 10(int) AtomicUMax 1057 28 25 1056 + 1059: 117(ptr) AccessChain 17 116 + 1060: 10(int) Load 1059 + 1061: 117(ptr) AccessChain 17 116 + 1062: 10(int) Load 1061 + 1063: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1060 25 + 1064: 10(int) AtomicUMax 1063 28 25 1062 + Store 126(out_u1) 1064 + 1065: 117(ptr) AccessChain 17 116 + 1066: 10(int) Load 1065 + 1067: 117(ptr) AccessChain 17 116 + 1068: 10(int) Load 1067 + 1069: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1066 25 + 1070: 10(int) AtomicUMin 1069 28 25 1068 + 1071: 117(ptr) AccessChain 17 116 + 1072: 10(int) Load 1071 + 1073: 117(ptr) AccessChain 17 116 + 1074: 10(int) Load 1073 + 1075: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1072 25 + 1076: 10(int) AtomicUMin 1075 28 25 1074 + Store 126(out_u1) 1076 + 1077: 117(ptr) AccessChain 17 116 + 1078: 10(int) Load 1077 + 1079: 117(ptr) AccessChain 17 116 + 1080: 10(int) Load 1079 + 1081: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1078 25 + 1082: 10(int) AtomicOr 1081 28 25 1080 + 1083: 117(ptr) AccessChain 17 116 + 1084: 10(int) Load 1083 + 1085: 117(ptr) AccessChain 17 116 + 1086: 10(int) Load 1085 + 1087: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1084 25 + 1088: 10(int) AtomicOr 1087 28 25 1086 + Store 126(out_u1) 1088 + 1089: 117(ptr) AccessChain 17 116 + 1090: 10(int) Load 1089 + 1091: 117(ptr) AccessChain 17 116 + 1092: 10(int) Load 1091 + 1093: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1090 25 + 1094: 10(int) AtomicXor 1093 28 25 1092 + 1095: 117(ptr) AccessChain 17 116 + 1096: 10(int) Load 1095 + 1097: 117(ptr) AccessChain 17 116 + 1098: 10(int) Load 1097 + 1099: 122(ptr) ImageTexelPointer 1014(g_tBuffU) 1096 25 + 1100: 10(int) AtomicXor 1099 28 25 1098 + Store 126(out_u1) 1100 + 1109: 1108(ptr) AccessChain 1105(psout) 116 + Store 1109 1107 + 1112: 1108(ptr) AccessChain 1105(psout) 116 + 1113: 1102(fvec4) Load 1112 + Store 1111(Color) 1113 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.rw.bracket.frag.out b/Test/baseResults/hlsl.rw.bracket.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..31ed4a9826531a51e60bfb5fad7fa035a5e7f865 --- /dev/null +++ b/Test/baseResults/hlsl.rw.bracket.frag.out @@ -0,0 +1,2651 @@ +hlsl.rw.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 4-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 4-component vector of int) +0:43 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 4-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 4-component vector of uint) +0:44 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 4-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 4-component vector of float) +0:46 Function Definition: Fn2(vi4; (temp void) +0:46 Function Parameters: +0:46 'x' (out 4-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'x' (out 4-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:47 Function Definition: Fn2(vu4; (temp void) +0:47 Function Parameters: +0:47 'x' (out 4-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'x' (out 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:48 Function Definition: Fn2(vf4; (temp void) +0:48 Function Parameters: +0:48 'x' (out 4-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:48 'x' (out 4-component vector of float) +0:48 Constant: +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp 4-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 4-component vector of float) +0:50 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:50 Constant: +0:50 3 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 4-component vector of float) +0:57 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'r00' (temp 4-component vector of float) +0:59 imageLoad (temp 4-component vector of float) +0:59 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of int) +0:60 'r01' (temp 4-component vector of int) +0:60 imageLoad (temp 4-component vector of int) +0:60 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'r02' (temp 4-component vector of uint) +0:61 imageLoad (temp 4-component vector of uint) +0:61 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of float) +0:64 'r10' (temp 4-component vector of float) +0:64 imageLoad (temp 4-component vector of float) +0:64 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of int) +0:65 'r11' (temp 4-component vector of int) +0:65 imageLoad (temp 4-component vector of int) +0:65 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of uint) +0:66 'r12' (temp 4-component vector of uint) +0:66 imageLoad (temp 4-component vector of uint) +0:66 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'r20' (temp 4-component vector of float) +0:69 imageLoad (temp 4-component vector of float) +0:69 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'r21' (temp 4-component vector of int) +0:70 imageLoad (temp 4-component vector of int) +0:70 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'r22' (temp 4-component vector of uint) +0:71 imageLoad (temp 4-component vector of uint) +0:71 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of float) +0:73 'lf4' (temp 4-component vector of float) +0:73 uf4: direct index for structure (layout(offset=96 ) uniform 4-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 Function Call: SomeValue( (temp 4-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf4' (temp 4-component vector of float) +0:78 'lf4' (temp 4-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of float) +0:83 'val1' (temp 4-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 imageLoad (temp 4-component vector of float) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 imageLoad (temp 4-component vector of float) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 imageLoad (temp 4-component vector of float) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 imageLoad (temp 4-component vector of int) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 imageLoad (temp 4-component vector of int) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 imageLoad (temp 4-component vector of int) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 imageLoad (temp 4-component vector of int) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 imageLoad (temp 4-component vector of int) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 imageLoad (temp 4-component vector of int) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 Function Call: SomeValue( (temp 4-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf4' (temp 4-component vector of float) +0:96 'lf4' (temp 4-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 Function Call: SomeValue( (temp 4-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf4' (temp 4-component vector of float) +0:102 'lf4' (temp 4-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:107 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:107 imageLoad (temp 4-component vector of float) +0:107 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:108 imageLoad (temp 4-component vector of int) +0:108 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:109 imageLoad (temp 4-component vector of uint) +0:109 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf4; (temp void) +0:111 'tempArg' (temp 4-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 4-component vector of float) +0:111 'tempArg' (temp 4-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi4; (temp void) +0:112 'tempArg' (temp 4-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 4-component vector of int) +0:112 'tempArg' (temp 4-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu4; (temp void) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageLoad (temp 4-component vector of float) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageLoad (temp 4-component vector of int) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageLoad (temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageLoad (temp 4-component vector of float) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageLoad (temp 4-component vector of int) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageLoad (temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 imageLoad (temp 4-component vector of float) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 Post-Increment (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 imageLoad (temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 Post-Decrement (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 imageLoad (temp 4-component vector of int) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 Post-Increment (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 imageLoad (temp 4-component vector of float) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 Post-Decrement (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 imageLoad (temp 4-component vector of int) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 Post-Increment (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 imageLoad (temp 4-component vector of uint) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 Post-Decrement (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:? imageLoad (temp 4-component vector of float) +0:135 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 4-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 4-component vector of int) +0:43 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 4-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 4-component vector of uint) +0:44 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 4-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 4-component vector of float) +0:46 Function Definition: Fn2(vi4; (temp void) +0:46 Function Parameters: +0:46 'x' (out 4-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 4-component vector of int) +0:46 'x' (out 4-component vector of int) +0:46 Constant: +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:46 0 (const int) +0:47 Function Definition: Fn2(vu4; (temp void) +0:47 Function Parameters: +0:47 'x' (out 4-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 4-component vector of uint) +0:47 'x' (out 4-component vector of uint) +0:47 Constant: +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:47 0 (const uint) +0:48 Function Definition: Fn2(vf4; (temp void) +0:48 Function Parameters: +0:48 'x' (out 4-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 4-component vector of float) +0:48 'x' (out 4-component vector of float) +0:48 Constant: +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp 4-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 4-component vector of float) +0:50 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:50 Constant: +0:50 3 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 4-component vector of float) +0:57 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 4-component vector of float) +0:59 'r00' (temp 4-component vector of float) +0:59 imageLoad (temp 4-component vector of float) +0:59 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 4-component vector of int) +0:60 'r01' (temp 4-component vector of int) +0:60 imageLoad (temp 4-component vector of int) +0:60 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of uint) +0:61 'r02' (temp 4-component vector of uint) +0:61 imageLoad (temp 4-component vector of uint) +0:61 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 4-component vector of float) +0:64 'r10' (temp 4-component vector of float) +0:64 imageLoad (temp 4-component vector of float) +0:64 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 4-component vector of int) +0:65 'r11' (temp 4-component vector of int) +0:65 imageLoad (temp 4-component vector of int) +0:65 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 4-component vector of uint) +0:66 'r12' (temp 4-component vector of uint) +0:66 imageLoad (temp 4-component vector of uint) +0:66 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 4-component vector of float) +0:69 'r20' (temp 4-component vector of float) +0:69 imageLoad (temp 4-component vector of float) +0:69 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 4-component vector of int) +0:70 'r21' (temp 4-component vector of int) +0:70 imageLoad (temp 4-component vector of int) +0:70 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 4-component vector of uint) +0:71 'r22' (temp 4-component vector of uint) +0:71 imageLoad (temp 4-component vector of uint) +0:71 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 4-component vector of float) +0:73 'lf4' (temp 4-component vector of float) +0:73 uf4: direct index for structure (layout(offset=96 ) uniform 4-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 Function Call: SomeValue( (temp 4-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 4-component vector of float) +0:77 'storeTemp' (temp 4-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf4' (temp 4-component vector of float) +0:78 'lf4' (temp 4-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 4-component vector of int) +0:79 'storeTemp' (temp 4-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:80 'storeTemp' (temp 4-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 4-component vector of float) +0:83 'val1' (temp 4-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 imageLoad (temp 4-component vector of float) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 4-component vector of float) +0:83 'storeTemp' (temp 4-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 imageLoad (temp 4-component vector of float) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 4-component vector of float) +0:84 'storeTemp' (temp 4-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 imageLoad (temp 4-component vector of float) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 4-component vector of float) +0:85 'storeTemp' (temp 4-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 imageLoad (temp 4-component vector of int) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 4-component vector of int) +0:87 'storeTemp' (temp 4-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 imageLoad (temp 4-component vector of int) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 4-component vector of int) +0:88 'storeTemp' (temp 4-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 imageLoad (temp 4-component vector of int) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 4-component vector of int) +0:89 'storeTemp' (temp 4-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 imageLoad (temp 4-component vector of int) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 4-component vector of int) +0:90 'storeTemp' (temp 4-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 imageLoad (temp 4-component vector of int) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 4-component vector of int) +0:91 'storeTemp' (temp 4-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 imageLoad (temp 4-component vector of int) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 4-component vector of int) +0:92 'storeTemp' (temp 4-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 Function Call: SomeValue( (temp 4-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 4-component vector of float) +0:95 'storeTemp' (temp 4-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf4' (temp 4-component vector of float) +0:96 'lf4' (temp 4-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:? 3 (const int) +0:? 4 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 4-component vector of int) +0:97 'storeTemp' (temp 4-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:98 'storeTemp' (temp 4-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 Function Call: SomeValue( (temp 4-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 4-component vector of float) +0:101 'storeTemp' (temp 4-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf4' (temp 4-component vector of float) +0:102 'lf4' (temp 4-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:? 7 (const int) +0:? 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 4-component vector of int) +0:103 'storeTemp' (temp 4-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:? 3 (const uint) +0:? 4 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:104 'storeTemp' (temp 4-component vector of uint) +0:107 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:107 imageLoad (temp 4-component vector of float) +0:107 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:108 imageLoad (temp 4-component vector of int) +0:108 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:109 imageLoad (temp 4-component vector of uint) +0:109 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf4; (temp void) +0:111 'tempArg' (temp 4-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 4-component vector of float) +0:111 'tempArg' (temp 4-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi4; (temp void) +0:112 'tempArg' (temp 4-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 4-component vector of int) +0:112 'tempArg' (temp 4-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu4; (temp void) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:113 'tempArg' (temp 4-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageLoad (temp 4-component vector of float) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 4-component vector of float) +0:117 'storeTemp' (temp 4-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageLoad (temp 4-component vector of int) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 4-component vector of int) +0:118 'storeTemp' (temp 4-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageLoad (temp 4-component vector of uint) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 4-component vector of uint) +0:119 'storeTemp' (temp 4-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageLoad (temp 4-component vector of float) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 4-component vector of float) +0:121 'storeTemp' (temp 4-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageLoad (temp 4-component vector of int) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 4-component vector of int) +0:122 'storeTemp' (temp 4-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageLoad (temp 4-component vector of uint) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 4-component vector of uint) +0:123 'storeTemp' (temp 4-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 imageLoad (temp 4-component vector of float) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:126 Post-Increment (temp 4-component vector of float) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 4-component vector of float) +0:126 'storeTempPre' (temp 4-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 imageLoad (temp 4-component vector of uint) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:127 Post-Decrement (temp 4-component vector of uint) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 4-component vector of uint) +0:127 'storeTempPre' (temp 4-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 imageLoad (temp 4-component vector of int) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:128 Post-Increment (temp 4-component vector of int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 4-component vector of int) +0:128 'storeTempPre' (temp 4-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 imageLoad (temp 4-component vector of float) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:130 Post-Decrement (temp 4-component vector of float) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 4-component vector of float) +0:130 'storeTempPre' (temp 4-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 imageLoad (temp 4-component vector of int) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:131 Post-Increment (temp 4-component vector of int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 4-component vector of int) +0:131 'storeTempPre' (temp 4-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 imageLoad (temp 4-component vector of uint) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:132 Post-Decrement (temp 4-component vector of uint) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 4-component vector of uint) +0:132 'storeTempPre' (temp 4-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:? imageLoad (temp 4-component vector of float) +0:135 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 4-component vector of float) +0:135 'storeTemp' (temp 4-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 rgba32f ) uniform image1D) +0:? 'g_tTex1di4' (layout(rgba32i ) uniform iimage1D) +0:? 'g_tTex1du4' (layout(rgba32ui ) uniform uimage1D) +0:? 'g_tTex2df4' (layout(rgba32f ) uniform image2D) +0:? 'g_tTex2di4' (layout(rgba32i ) uniform iimage2D) +0:? 'g_tTex2du4' (layout(rgba32ui ) uniform uimage2D) +0:? 'g_tTex3df4' (layout(rgba32f ) uniform image3D) +0:? 'g_tTex3di4' (layout(rgba32i ) uniform iimage3D) +0:? 'g_tTex3du4' (layout(rgba32ui ) uniform uimage3D) +0:? 'g_tTex1df4a' (layout(rgba32f ) uniform image1DArray) +0:? 'g_tTex1di4a' (layout(rgba32i ) uniform iimage1DArray) +0:? 'g_tTex1du4a' (layout(rgba32ui ) uniform uimage1DArray) +0:? 'g_tTex2df4a' (layout(rgba32f ) uniform image2DArray) +0:? 'g_tTex2di4a' (layout(rgba32i ) uniform iimage2DArray) +0:? 'g_tTex2du4a' (layout(rgba32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 4-component vector of float uf4, layout(offset=112 ) uniform 4-component vector of int ui4, layout(offset=128 ) uniform 4-component vector of uint uu4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 602 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 577 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi4;" + Name 10 "x" + Name 18 "Fn1(vu4;" + Name 17 "x" + Name 25 "Fn1(vf4;" + Name 24 "x" + Name 29 "Fn2(vi4;" + Name 28 "x" + Name 33 "Fn2(vu4;" + Name 32 "x" + Name 37 "Fn2(vf4;" + Name 36 "x" + Name 40 "SomeValue(" + Name 59 "$Global" + MemberName 59($Global) 0 "c1" + MemberName 59($Global) 1 "c2" + MemberName 59($Global) 2 "c3" + MemberName 59($Global) 3 "c4" + MemberName 59($Global) 4 "o1" + MemberName 59($Global) 5 "o2" + MemberName 59($Global) 6 "o3" + MemberName 59($Global) 7 "o4" + MemberName 59($Global) 8 "uf4" + MemberName 59($Global) 9 "ui4" + MemberName 59($Global) 10 "uu4" + Name 61 "" + Name 71 "g_tTex1df4" + Name 77 "r00" + Name 82 "r01" + Name 85 "g_tTex1di4" + Name 90 "r02" + Name 93 "g_tTex1du4" + Name 98 "r10" + Name 101 "g_tTex2df4" + Name 108 "r11" + Name 111 "g_tTex2di4" + Name 116 "r12" + Name 119 "g_tTex2du4" + Name 124 "r20" + Name 127 "g_tTex3df4" + Name 134 "r21" + Name 137 "g_tTex3di4" + Name 142 "r22" + Name 145 "g_tTex3du4" + Name 150 "lf4" + Name 155 "storeTemp" + Name 165 "storeTemp" + Name 172 "storeTemp" + Name 181 "val1" + Name 183 "coordTemp" + Name 186 "storeTemp" + Name 197 "coordTemp" + Name 200 "storeTemp" + Name 211 "coordTemp" + Name 214 "storeTemp" + Name 225 "coordTemp" + Name 228 "storeTemp" + Name 238 "coordTemp" + Name 241 "storeTemp" + Name 251 "coordTemp" + Name 254 "storeTemp" + Name 265 "coordTemp" + Name 268 "storeTemp" + Name 279 "coordTemp" + Name 282 "storeTemp" + Name 292 "coordTemp" + Name 295 "storeTemp" + Name 305 "storeTemp" + Name 315 "storeTemp" + Name 322 "storeTemp" + Name 329 "storeTemp" + Name 339 "storeTemp" + Name 347 "storeTemp" + Name 358 "param" + Name 364 "param" + Name 370 "param" + Name 372 "tempArg" + Name 373 "param" + Name 380 "tempArg" + Name 381 "param" + Name 388 "tempArg" + Name 389 "param" + Name 396 "coordTemp" + Name 399 "storeTemp" + Name 410 "coordTemp" + Name 413 "storeTemp" + Name 423 "coordTemp" + Name 426 "storeTemp" + Name 436 "coordTemp" + Name 439 "storeTemp" + Name 449 "coordTemp" + Name 452 "storeTemp" + Name 462 "coordTemp" + Name 465 "storeTemp" + Name 475 "coordTemp" + Name 478 "storeTempPre" + Name 482 "storeTempPost" + Name 490 "coordTemp" + Name 493 "storeTempPre" + Name 497 "storeTempPost" + Name 505 "coordTemp" + Name 508 "storeTempPre" + Name 512 "storeTempPost" + Name 520 "coordTemp" + Name 523 "storeTempPre" + Name 527 "storeTempPost" + Name 535 "coordTemp" + Name 538 "storeTempPre" + Name 542 "storeTempPost" + Name 550 "coordTemp" + Name 553 "storeTempPre" + Name 557 "storeTempPost" + Name 565 "storeTemp" + Name 571 "PS_OUTPUT" + MemberName 571(PS_OUTPUT) 0 "Color" + Name 573 "psout" + Name 577 "Color" + Name 583 "g_sSamp" + Name 586 "g_tTex1df4a" + Name 589 "g_tTex1di4a" + Name 592 "g_tTex1du4a" + Name 595 "g_tTex2df4a" + Name 598 "g_tTex2di4a" + Name 601 "g_tTex2du4a" + MemberDecorate 59($Global) 0 Offset 0 + MemberDecorate 59($Global) 1 Offset 8 + MemberDecorate 59($Global) 2 Offset 16 + MemberDecorate 59($Global) 3 Offset 32 + MemberDecorate 59($Global) 4 Offset 48 + MemberDecorate 59($Global) 5 Offset 56 + MemberDecorate 59($Global) 6 Offset 64 + MemberDecorate 59($Global) 7 Offset 80 + MemberDecorate 59($Global) 8 Offset 96 + MemberDecorate 59($Global) 9 Offset 112 + MemberDecorate 59($Global) 10 Offset 128 + Decorate 59($Global) Block + Decorate 61 DescriptorSet 0 + Decorate 71(g_tTex1df4) DescriptorSet 0 + Decorate 71(g_tTex1df4) Binding 0 + Decorate 85(g_tTex1di4) DescriptorSet 0 + Decorate 93(g_tTex1du4) DescriptorSet 0 + Decorate 101(g_tTex2df4) DescriptorSet 0 + Decorate 111(g_tTex2di4) DescriptorSet 0 + Decorate 119(g_tTex2du4) DescriptorSet 0 + Decorate 127(g_tTex3df4) DescriptorSet 0 + Decorate 137(g_tTex3di4) DescriptorSet 0 + Decorate 145(g_tTex3du4) DescriptorSet 0 + Decorate 577(Color) Location 0 + Decorate 583(g_sSamp) DescriptorSet 0 + Decorate 583(g_sSamp) Binding 0 + Decorate 586(g_tTex1df4a) DescriptorSet 0 + Decorate 589(g_tTex1di4a) DescriptorSet 0 + Decorate 592(g_tTex1du4a) DescriptorSet 0 + Decorate 595(g_tTex2df4a) DescriptorSet 0 + Decorate 598(g_tTex2di4a) DescriptorSet 0 + Decorate 601(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeFunction 7(ivec4) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 4 + 15: TypePointer Function 14(ivec4) + 16: TypeFunction 14(ivec4) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 23: TypeFunction 21(fvec4) 22(ptr) + 27: TypeFunction 2 8(ptr) + 31: TypeFunction 2 15(ptr) + 35: TypeFunction 2 22(ptr) + 39: TypeFunction 21(fvec4) + 51: 6(int) Constant 0 + 52: 7(ivec4) ConstantComposite 51 51 51 51 + 53: 13(int) Constant 0 + 54: 14(ivec4) ConstantComposite 53 53 53 53 + 55: 20(float) Constant 0 + 56: 21(fvec4) ConstantComposite 55 55 55 55 + 57: TypeVector 6(int) 2 + 58: TypeVector 6(int) 3 + 59($Global): TypeStruct 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 6(int) 57(ivec2) 58(ivec3) 7(ivec4) 21(fvec4) 7(ivec4) 14(ivec4) + 60: TypePointer Uniform 59($Global) + 61: 60(ptr) Variable Uniform + 62: 6(int) Constant 3 + 63: TypePointer Uniform 7(ivec4) + 69: TypeImage 20(float) 1D nonsampled format:Rgba32f + 70: TypePointer UniformConstant 69 + 71(g_tTex1df4): 70(ptr) Variable UniformConstant + 73: TypePointer Uniform 6(int) + 83: TypeImage 6(int) 1D nonsampled format:Rgba32i + 84: TypePointer UniformConstant 83 + 85(g_tTex1di4): 84(ptr) Variable UniformConstant + 91: TypeImage 13(int) 1D nonsampled format:Rgba32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du4): 92(ptr) Variable UniformConstant + 99: TypeImage 20(float) 2D nonsampled format:Rgba32f + 100: TypePointer UniformConstant 99 + 101(g_tTex2df4): 100(ptr) Variable UniformConstant + 103: 6(int) Constant 1 + 104: TypePointer Uniform 57(ivec2) + 109: TypeImage 6(int) 2D nonsampled format:Rgba32i + 110: TypePointer UniformConstant 109 + 111(g_tTex2di4): 110(ptr) Variable UniformConstant + 117: TypeImage 13(int) 2D nonsampled format:Rgba32ui + 118: TypePointer UniformConstant 117 + 119(g_tTex2du4): 118(ptr) Variable UniformConstant + 125: TypeImage 20(float) 3D nonsampled format:Rgba32f + 126: TypePointer UniformConstant 125 + 127(g_tTex3df4): 126(ptr) Variable UniformConstant + 129: 6(int) Constant 2 + 130: TypePointer Uniform 58(ivec3) + 135: TypeImage 6(int) 3D nonsampled format:Rgba32i + 136: TypePointer UniformConstant 135 + 137(g_tTex3di4): 136(ptr) Variable UniformConstant + 143: TypeImage 13(int) 3D nonsampled format:Rgba32ui + 144: TypePointer UniformConstant 143 + 145(g_tTex3du4): 144(ptr) Variable UniformConstant + 151: 6(int) Constant 8 + 152: TypePointer Uniform 21(fvec4) + 166: 6(int) Constant 4 + 167: 7(ivec4) ConstantComposite 129 129 62 166 + 173: 13(int) Constant 3 + 174: 13(int) Constant 2 + 175: 13(int) Constant 4 + 176: 14(ivec4) ConstantComposite 173 174 173 175 + 182: TypePointer Function 6(int) + 190: 20(float) Constant 1073741824 + 204: 20(float) Constant 1077936128 + 218: 20(float) Constant 1082130432 + 258: 6(int) Constant 65535 + 272: 6(int) Constant 61680 + 316: 6(int) Constant 5 + 317: 7(ivec4) ConstantComposite 316 129 62 166 + 323: 13(int) Constant 6 + 324: 14(ivec4) ConstantComposite 323 174 173 175 + 340: 6(int) Constant 6 + 341: 6(int) Constant 7 + 342: 7(ivec4) ConstantComposite 151 340 341 151 + 348: 13(int) Constant 9 + 349: 14(ivec4) ConstantComposite 348 174 173 175 + 404: 20(float) Constant 1065353216 + 567: 57(ivec2) ConstantComposite 129 62 + 571(PS_OUTPUT): TypeStruct 21(fvec4) + 572: TypePointer Function 571(PS_OUTPUT) + 574: 21(fvec4) ConstantComposite 404 404 404 404 + 576: TypePointer Output 21(fvec4) + 577(Color): 576(ptr) Variable Output + 581: TypeSampler + 582: TypePointer UniformConstant 581 + 583(g_sSamp): 582(ptr) Variable UniformConstant + 584: TypeImage 20(float) 1D array nonsampled format:Rgba32f + 585: TypePointer UniformConstant 584 +586(g_tTex1df4a): 585(ptr) Variable UniformConstant + 587: TypeImage 6(int) 1D array nonsampled format:Rgba32i + 588: TypePointer UniformConstant 587 +589(g_tTex1di4a): 588(ptr) Variable UniformConstant + 590: TypeImage 13(int) 1D array nonsampled format:Rgba32ui + 591: TypePointer UniformConstant 590 +592(g_tTex1du4a): 591(ptr) Variable UniformConstant + 593: TypeImage 20(float) 2D array nonsampled format:Rgba32f + 594: TypePointer UniformConstant 593 +595(g_tTex2df4a): 594(ptr) Variable UniformConstant + 596: TypeImage 6(int) 2D array nonsampled format:Rgba32i + 597: TypePointer UniformConstant 596 +598(g_tTex2di4a): 597(ptr) Variable UniformConstant + 599: TypeImage 13(int) 2D array nonsampled format:Rgba32ui + 600: TypePointer UniformConstant 599 +601(g_tTex2du4a): 600(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 77(r00): 22(ptr) Variable Function + 82(r01): 8(ptr) Variable Function + 90(r02): 15(ptr) Variable Function + 98(r10): 22(ptr) Variable Function + 108(r11): 8(ptr) Variable Function + 116(r12): 15(ptr) Variable Function + 124(r20): 22(ptr) Variable Function + 134(r21): 8(ptr) Variable Function + 142(r22): 15(ptr) Variable Function + 150(lf4): 22(ptr) Variable Function + 155(storeTemp): 22(ptr) Variable Function + 165(storeTemp): 8(ptr) Variable Function + 172(storeTemp): 15(ptr) Variable Function + 181(val1): 22(ptr) Variable Function + 183(coordTemp): 182(ptr) Variable Function + 186(storeTemp): 22(ptr) Variable Function + 197(coordTemp): 182(ptr) Variable Function + 200(storeTemp): 22(ptr) Variable Function + 211(coordTemp): 182(ptr) Variable Function + 214(storeTemp): 22(ptr) Variable Function + 225(coordTemp): 182(ptr) Variable Function + 228(storeTemp): 8(ptr) Variable Function + 238(coordTemp): 182(ptr) Variable Function + 241(storeTemp): 8(ptr) Variable Function + 251(coordTemp): 182(ptr) Variable Function + 254(storeTemp): 8(ptr) Variable Function + 265(coordTemp): 182(ptr) Variable Function + 268(storeTemp): 8(ptr) Variable Function + 279(coordTemp): 182(ptr) Variable Function + 282(storeTemp): 8(ptr) Variable Function + 292(coordTemp): 182(ptr) Variable Function + 295(storeTemp): 8(ptr) Variable Function + 305(storeTemp): 22(ptr) Variable Function + 315(storeTemp): 8(ptr) Variable Function + 322(storeTemp): 15(ptr) Variable Function + 329(storeTemp): 22(ptr) Variable Function + 339(storeTemp): 8(ptr) Variable Function + 347(storeTemp): 15(ptr) Variable Function + 358(param): 22(ptr) Variable Function + 364(param): 8(ptr) Variable Function + 370(param): 15(ptr) Variable Function + 372(tempArg): 22(ptr) Variable Function + 373(param): 22(ptr) Variable Function + 380(tempArg): 8(ptr) Variable Function + 381(param): 8(ptr) Variable Function + 388(tempArg): 15(ptr) Variable Function + 389(param): 15(ptr) Variable Function + 396(coordTemp): 182(ptr) Variable Function + 399(storeTemp): 22(ptr) Variable Function + 410(coordTemp): 182(ptr) Variable Function + 413(storeTemp): 8(ptr) Variable Function + 423(coordTemp): 182(ptr) Variable Function + 426(storeTemp): 15(ptr) Variable Function + 436(coordTemp): 182(ptr) Variable Function + 439(storeTemp): 22(ptr) Variable Function + 449(coordTemp): 182(ptr) Variable Function + 452(storeTemp): 8(ptr) Variable Function + 462(coordTemp): 182(ptr) Variable Function + 465(storeTemp): 15(ptr) Variable Function + 475(coordTemp): 182(ptr) Variable Function +478(storeTempPre): 22(ptr) Variable Function +482(storeTempPost): 22(ptr) Variable Function + 490(coordTemp): 182(ptr) Variable Function +493(storeTempPre): 15(ptr) Variable Function +497(storeTempPost): 15(ptr) Variable Function + 505(coordTemp): 182(ptr) Variable Function +508(storeTempPre): 8(ptr) Variable Function +512(storeTempPost): 8(ptr) Variable Function + 520(coordTemp): 182(ptr) Variable Function +523(storeTempPre): 22(ptr) Variable Function +527(storeTempPost): 22(ptr) Variable Function + 535(coordTemp): 182(ptr) Variable Function +538(storeTempPre): 8(ptr) Variable Function +542(storeTempPost): 8(ptr) Variable Function + 550(coordTemp): 182(ptr) Variable Function +553(storeTempPre): 15(ptr) Variable Function +557(storeTempPost): 15(ptr) Variable Function + 565(storeTemp): 22(ptr) Variable Function + 573(psout): 572(ptr) Variable Function + 72: 69 Load 71(g_tTex1df4) + 74: 73(ptr) AccessChain 61 51 + 75: 6(int) Load 74 + 76: 21(fvec4) ImageRead 72 75 + 78: 69 Load 71(g_tTex1df4) + 79: 73(ptr) AccessChain 61 51 + 80: 6(int) Load 79 + 81: 21(fvec4) ImageRead 78 80 + Store 77(r00) 81 + 86: 83 Load 85(g_tTex1di4) + 87: 73(ptr) AccessChain 61 51 + 88: 6(int) Load 87 + 89: 7(ivec4) ImageRead 86 88 + Store 82(r01) 89 + 94: 91 Load 93(g_tTex1du4) + 95: 73(ptr) AccessChain 61 51 + 96: 6(int) Load 95 + 97: 14(ivec4) ImageRead 94 96 + Store 90(r02) 97 + 102: 99 Load 101(g_tTex2df4) + 105: 104(ptr) AccessChain 61 103 + 106: 57(ivec2) Load 105 + 107: 21(fvec4) ImageRead 102 106 + Store 98(r10) 107 + 112: 109 Load 111(g_tTex2di4) + 113: 104(ptr) AccessChain 61 103 + 114: 57(ivec2) Load 113 + 115: 7(ivec4) ImageRead 112 114 + Store 108(r11) 115 + 120: 117 Load 119(g_tTex2du4) + 121: 104(ptr) AccessChain 61 103 + 122: 57(ivec2) Load 121 + 123: 14(ivec4) ImageRead 120 122 + Store 116(r12) 123 + 128: 125 Load 127(g_tTex3df4) + 131: 130(ptr) AccessChain 61 129 + 132: 58(ivec3) Load 131 + 133: 21(fvec4) ImageRead 128 132 + Store 124(r20) 133 + 138: 135 Load 137(g_tTex3di4) + 139: 130(ptr) AccessChain 61 129 + 140: 58(ivec3) Load 139 + 141: 7(ivec4) ImageRead 138 140 + Store 134(r21) 141 + 146: 143 Load 145(g_tTex3du4) + 147: 130(ptr) AccessChain 61 129 + 148: 58(ivec3) Load 147 + 149: 14(ivec4) ImageRead 146 148 + Store 142(r22) 149 + 153: 152(ptr) AccessChain 61 151 + 154: 21(fvec4) Load 153 + Store 150(lf4) 154 + 156: 21(fvec4) FunctionCall 40(SomeValue() + Store 155(storeTemp) 156 + 157: 69 Load 71(g_tTex1df4) + 158: 73(ptr) AccessChain 61 51 + 159: 6(int) Load 158 + 160: 21(fvec4) Load 155(storeTemp) + ImageWrite 157 159 160 + 161: 69 Load 71(g_tTex1df4) + 162: 73(ptr) AccessChain 61 51 + 163: 6(int) Load 162 + 164: 21(fvec4) Load 150(lf4) + ImageWrite 161 163 164 + Store 165(storeTemp) 167 + 168: 83 Load 85(g_tTex1di4) + 169: 73(ptr) AccessChain 61 51 + 170: 6(int) Load 169 + 171: 7(ivec4) Load 165(storeTemp) + ImageWrite 168 170 171 + Store 172(storeTemp) 176 + 177: 91 Load 93(g_tTex1du4) + 178: 73(ptr) AccessChain 61 51 + 179: 6(int) Load 178 + 180: 14(ivec4) Load 172(storeTemp) + ImageWrite 177 179 180 + 184: 73(ptr) AccessChain 61 51 + 185: 6(int) Load 184 + Store 183(coordTemp) 185 + 187: 69 Load 71(g_tTex1df4) + 188: 6(int) Load 183(coordTemp) + 189: 21(fvec4) ImageRead 187 188 + Store 186(storeTemp) 189 + 191: 21(fvec4) Load 186(storeTemp) + 192: 21(fvec4) VectorTimesScalar 191 190 + Store 186(storeTemp) 192 + 193: 69 Load 71(g_tTex1df4) + 194: 6(int) Load 183(coordTemp) + 195: 21(fvec4) Load 186(storeTemp) + ImageWrite 193 194 195 + 196: 21(fvec4) Load 186(storeTemp) + Store 181(val1) 196 + 198: 73(ptr) AccessChain 61 51 + 199: 6(int) Load 198 + Store 197(coordTemp) 199 + 201: 69 Load 71(g_tTex1df4) + 202: 6(int) Load 197(coordTemp) + 203: 21(fvec4) ImageRead 201 202 + Store 200(storeTemp) 203 + 205: 21(fvec4) Load 200(storeTemp) + 206: 21(fvec4) CompositeConstruct 204 204 204 204 + 207: 21(fvec4) FSub 205 206 + Store 200(storeTemp) 207 + 208: 69 Load 71(g_tTex1df4) + 209: 6(int) Load 197(coordTemp) + 210: 21(fvec4) Load 200(storeTemp) + ImageWrite 208 209 210 + 212: 73(ptr) AccessChain 61 51 + 213: 6(int) Load 212 + Store 211(coordTemp) 213 + 215: 69 Load 71(g_tTex1df4) + 216: 6(int) Load 211(coordTemp) + 217: 21(fvec4) ImageRead 215 216 + Store 214(storeTemp) 217 + 219: 21(fvec4) Load 214(storeTemp) + 220: 21(fvec4) CompositeConstruct 218 218 218 218 + 221: 21(fvec4) FAdd 219 220 + Store 214(storeTemp) 221 + 222: 69 Load 71(g_tTex1df4) + 223: 6(int) Load 211(coordTemp) + 224: 21(fvec4) Load 214(storeTemp) + ImageWrite 222 223 224 + 226: 73(ptr) AccessChain 61 51 + 227: 6(int) Load 226 + Store 225(coordTemp) 227 + 229: 83 Load 85(g_tTex1di4) + 230: 6(int) Load 225(coordTemp) + 231: 7(ivec4) ImageRead 229 230 + Store 228(storeTemp) 231 + 232: 7(ivec4) Load 228(storeTemp) + 233: 7(ivec4) CompositeConstruct 129 129 129 129 + 234: 7(ivec4) SDiv 232 233 + Store 228(storeTemp) 234 + 235: 83 Load 85(g_tTex1di4) + 236: 6(int) Load 225(coordTemp) + 237: 7(ivec4) Load 228(storeTemp) + ImageWrite 235 236 237 + 239: 73(ptr) AccessChain 61 51 + 240: 6(int) Load 239 + Store 238(coordTemp) 240 + 242: 83 Load 85(g_tTex1di4) + 243: 6(int) Load 238(coordTemp) + 244: 7(ivec4) ImageRead 242 243 + Store 241(storeTemp) 244 + 245: 7(ivec4) Load 241(storeTemp) + 246: 7(ivec4) CompositeConstruct 129 129 129 129 + 247: 7(ivec4) SMod 245 246 + Store 241(storeTemp) 247 + 248: 83 Load 85(g_tTex1di4) + 249: 6(int) Load 238(coordTemp) + 250: 7(ivec4) Load 241(storeTemp) + ImageWrite 248 249 250 + 252: 73(ptr) AccessChain 61 51 + 253: 6(int) Load 252 + Store 251(coordTemp) 253 + 255: 83 Load 85(g_tTex1di4) + 256: 6(int) Load 251(coordTemp) + 257: 7(ivec4) ImageRead 255 256 + Store 254(storeTemp) 257 + 259: 7(ivec4) Load 254(storeTemp) + 260: 7(ivec4) CompositeConstruct 258 258 258 258 + 261: 7(ivec4) BitwiseAnd 259 260 + Store 254(storeTemp) 261 + 262: 83 Load 85(g_tTex1di4) + 263: 6(int) Load 251(coordTemp) + 264: 7(ivec4) Load 254(storeTemp) + ImageWrite 262 263 264 + 266: 73(ptr) AccessChain 61 51 + 267: 6(int) Load 266 + Store 265(coordTemp) 267 + 269: 83 Load 85(g_tTex1di4) + 270: 6(int) Load 265(coordTemp) + 271: 7(ivec4) ImageRead 269 270 + Store 268(storeTemp) 271 + 273: 7(ivec4) Load 268(storeTemp) + 274: 7(ivec4) CompositeConstruct 272 272 272 272 + 275: 7(ivec4) BitwiseOr 273 274 + Store 268(storeTemp) 275 + 276: 83 Load 85(g_tTex1di4) + 277: 6(int) Load 265(coordTemp) + 278: 7(ivec4) Load 268(storeTemp) + ImageWrite 276 277 278 + 280: 73(ptr) AccessChain 61 51 + 281: 6(int) Load 280 + Store 279(coordTemp) 281 + 283: 83 Load 85(g_tTex1di4) + 284: 6(int) Load 279(coordTemp) + 285: 7(ivec4) ImageRead 283 284 + Store 282(storeTemp) 285 + 286: 7(ivec4) Load 282(storeTemp) + 287: 7(ivec4) CompositeConstruct 129 129 129 129 + 288: 7(ivec4) ShiftLeftLogical 286 287 + Store 282(storeTemp) 288 + 289: 83 Load 85(g_tTex1di4) + 290: 6(int) Load 279(coordTemp) + 291: 7(ivec4) Load 282(storeTemp) + ImageWrite 289 290 291 + 293: 73(ptr) AccessChain 61 51 + 294: 6(int) Load 293 + Store 292(coordTemp) 294 + 296: 83 Load 85(g_tTex1di4) + 297: 6(int) Load 292(coordTemp) + 298: 7(ivec4) ImageRead 296 297 + Store 295(storeTemp) 298 + 299: 7(ivec4) Load 295(storeTemp) + 300: 7(ivec4) CompositeConstruct 129 129 129 129 + 301: 7(ivec4) ShiftRightArithmetic 299 300 + Store 295(storeTemp) 301 + 302: 83 Load 85(g_tTex1di4) + 303: 6(int) Load 292(coordTemp) + 304: 7(ivec4) Load 295(storeTemp) + ImageWrite 302 303 304 + 306: 21(fvec4) FunctionCall 40(SomeValue() + Store 305(storeTemp) 306 + 307: 99 Load 101(g_tTex2df4) + 308: 104(ptr) AccessChain 61 103 + 309: 57(ivec2) Load 308 + 310: 21(fvec4) Load 305(storeTemp) + ImageWrite 307 309 310 + 311: 99 Load 101(g_tTex2df4) + 312: 104(ptr) AccessChain 61 103 + 313: 57(ivec2) Load 312 + 314: 21(fvec4) Load 150(lf4) + ImageWrite 311 313 314 + Store 315(storeTemp) 317 + 318: 109 Load 111(g_tTex2di4) + 319: 104(ptr) AccessChain 61 103 + 320: 57(ivec2) Load 319 + 321: 7(ivec4) Load 315(storeTemp) + ImageWrite 318 320 321 + Store 322(storeTemp) 324 + 325: 117 Load 119(g_tTex2du4) + 326: 104(ptr) AccessChain 61 103 + 327: 57(ivec2) Load 326 + 328: 14(ivec4) Load 322(storeTemp) + ImageWrite 325 327 328 + 330: 21(fvec4) FunctionCall 40(SomeValue() + Store 329(storeTemp) 330 + 331: 125 Load 127(g_tTex3df4) + 332: 130(ptr) AccessChain 61 129 + 333: 58(ivec3) Load 332 + 334: 21(fvec4) Load 329(storeTemp) + ImageWrite 331 333 334 + 335: 125 Load 127(g_tTex3df4) + 336: 130(ptr) AccessChain 61 129 + 337: 58(ivec3) Load 336 + 338: 21(fvec4) Load 150(lf4) + ImageWrite 335 337 338 + Store 339(storeTemp) 342 + 343: 135 Load 137(g_tTex3di4) + 344: 130(ptr) AccessChain 61 129 + 345: 58(ivec3) Load 344 + 346: 7(ivec4) Load 339(storeTemp) + ImageWrite 343 345 346 + Store 347(storeTemp) 349 + 350: 143 Load 145(g_tTex3du4) + 351: 130(ptr) AccessChain 61 129 + 352: 58(ivec3) Load 351 + 353: 14(ivec4) Load 347(storeTemp) + ImageWrite 350 352 353 + 354: 69 Load 71(g_tTex1df4) + 355: 73(ptr) AccessChain 61 51 + 356: 6(int) Load 355 + 357: 21(fvec4) ImageRead 354 356 + Store 358(param) 357 + 359: 21(fvec4) FunctionCall 25(Fn1(vf4;) 358(param) + 360: 83 Load 85(g_tTex1di4) + 361: 73(ptr) AccessChain 61 51 + 362: 6(int) Load 361 + 363: 7(ivec4) ImageRead 360 362 + Store 364(param) 363 + 365: 7(ivec4) FunctionCall 11(Fn1(vi4;) 364(param) + 366: 91 Load 93(g_tTex1du4) + 367: 73(ptr) AccessChain 61 51 + 368: 6(int) Load 367 + 369: 14(ivec4) ImageRead 366 368 + Store 370(param) 369 + 371: 14(ivec4) FunctionCall 18(Fn1(vu4;) 370(param) + 374: 2 FunctionCall 37(Fn2(vf4;) 373(param) + 375: 21(fvec4) Load 373(param) + Store 372(tempArg) 375 + 376: 69 Load 71(g_tTex1df4) + 377: 73(ptr) AccessChain 61 51 + 378: 6(int) Load 377 + 379: 21(fvec4) Load 372(tempArg) + ImageWrite 376 378 379 + 382: 2 FunctionCall 29(Fn2(vi4;) 381(param) + 383: 7(ivec4) Load 381(param) + Store 380(tempArg) 383 + 384: 83 Load 85(g_tTex1di4) + 385: 73(ptr) AccessChain 61 51 + 386: 6(int) Load 385 + 387: 7(ivec4) Load 380(tempArg) + ImageWrite 384 386 387 + 390: 2 FunctionCall 33(Fn2(vu4;) 389(param) + 391: 14(ivec4) Load 389(param) + Store 388(tempArg) 391 + 392: 91 Load 93(g_tTex1du4) + 393: 73(ptr) AccessChain 61 51 + 394: 6(int) Load 393 + 395: 14(ivec4) Load 388(tempArg) + ImageWrite 392 394 395 + 397: 73(ptr) AccessChain 61 51 + 398: 6(int) Load 397 + Store 396(coordTemp) 398 + 400: 69 Load 71(g_tTex1df4) + 401: 6(int) Load 396(coordTemp) + 402: 21(fvec4) ImageRead 400 401 + Store 399(storeTemp) 402 + 403: 21(fvec4) Load 399(storeTemp) + 405: 21(fvec4) CompositeConstruct 404 404 404 404 + 406: 21(fvec4) FAdd 403 405 + Store 399(storeTemp) 406 + 407: 69 Load 71(g_tTex1df4) + 408: 6(int) Load 396(coordTemp) + 409: 21(fvec4) Load 399(storeTemp) + ImageWrite 407 408 409 + 411: 73(ptr) AccessChain 61 51 + 412: 6(int) Load 411 + Store 410(coordTemp) 412 + 414: 83 Load 85(g_tTex1di4) + 415: 6(int) Load 410(coordTemp) + 416: 7(ivec4) ImageRead 414 415 + Store 413(storeTemp) 416 + 417: 7(ivec4) Load 413(storeTemp) + 418: 7(ivec4) CompositeConstruct 103 103 103 103 + 419: 7(ivec4) IAdd 417 418 + Store 413(storeTemp) 419 + 420: 83 Load 85(g_tTex1di4) + 421: 6(int) Load 410(coordTemp) + 422: 7(ivec4) Load 413(storeTemp) + ImageWrite 420 421 422 + 424: 73(ptr) AccessChain 61 51 + 425: 6(int) Load 424 + Store 423(coordTemp) 425 + 427: 91 Load 93(g_tTex1du4) + 428: 6(int) Load 423(coordTemp) + 429: 14(ivec4) ImageRead 427 428 + Store 426(storeTemp) 429 + 430: 14(ivec4) Load 426(storeTemp) + 431: 7(ivec4) CompositeConstruct 103 103 103 103 + 432: 14(ivec4) IAdd 430 431 + Store 426(storeTemp) 432 + 433: 91 Load 93(g_tTex1du4) + 434: 6(int) Load 423(coordTemp) + 435: 14(ivec4) Load 426(storeTemp) + ImageWrite 433 434 435 + 437: 73(ptr) AccessChain 61 51 + 438: 6(int) Load 437 + Store 436(coordTemp) 438 + 440: 69 Load 71(g_tTex1df4) + 441: 6(int) Load 436(coordTemp) + 442: 21(fvec4) ImageRead 440 441 + Store 439(storeTemp) 442 + 443: 21(fvec4) Load 439(storeTemp) + 444: 21(fvec4) CompositeConstruct 404 404 404 404 + 445: 21(fvec4) FSub 443 444 + Store 439(storeTemp) 445 + 446: 69 Load 71(g_tTex1df4) + 447: 6(int) Load 436(coordTemp) + 448: 21(fvec4) Load 439(storeTemp) + ImageWrite 446 447 448 + 450: 73(ptr) AccessChain 61 51 + 451: 6(int) Load 450 + Store 449(coordTemp) 451 + 453: 83 Load 85(g_tTex1di4) + 454: 6(int) Load 449(coordTemp) + 455: 7(ivec4) ImageRead 453 454 + Store 452(storeTemp) 455 + 456: 7(ivec4) Load 452(storeTemp) + 457: 7(ivec4) CompositeConstruct 103 103 103 103 + 458: 7(ivec4) ISub 456 457 + Store 452(storeTemp) 458 + 459: 83 Load 85(g_tTex1di4) + 460: 6(int) Load 449(coordTemp) + 461: 7(ivec4) Load 452(storeTemp) + ImageWrite 459 460 461 + 463: 73(ptr) AccessChain 61 51 + 464: 6(int) Load 463 + Store 462(coordTemp) 464 + 466: 91 Load 93(g_tTex1du4) + 467: 6(int) Load 462(coordTemp) + 468: 14(ivec4) ImageRead 466 467 + Store 465(storeTemp) 468 + 469: 14(ivec4) Load 465(storeTemp) + 470: 7(ivec4) CompositeConstruct 103 103 103 103 + 471: 14(ivec4) ISub 469 470 + Store 465(storeTemp) 471 + 472: 91 Load 93(g_tTex1du4) + 473: 6(int) Load 462(coordTemp) + 474: 14(ivec4) Load 465(storeTemp) + ImageWrite 472 473 474 + 476: 73(ptr) AccessChain 61 51 + 477: 6(int) Load 476 + Store 475(coordTemp) 477 + 479: 69 Load 71(g_tTex1df4) + 480: 6(int) Load 475(coordTemp) + 481: 21(fvec4) ImageRead 479 480 + Store 478(storeTempPre) 481 + 483: 21(fvec4) Load 478(storeTempPre) + Store 482(storeTempPost) 483 + 484: 21(fvec4) Load 482(storeTempPost) + 485: 21(fvec4) CompositeConstruct 404 404 404 404 + 486: 21(fvec4) FAdd 484 485 + Store 482(storeTempPost) 486 + 487: 69 Load 71(g_tTex1df4) + 488: 6(int) Load 475(coordTemp) + 489: 21(fvec4) Load 482(storeTempPost) + ImageWrite 487 488 489 + 491: 73(ptr) AccessChain 61 51 + 492: 6(int) Load 491 + Store 490(coordTemp) 492 + 494: 91 Load 93(g_tTex1du4) + 495: 6(int) Load 490(coordTemp) + 496: 14(ivec4) ImageRead 494 495 + Store 493(storeTempPre) 496 + 498: 14(ivec4) Load 493(storeTempPre) + Store 497(storeTempPost) 498 + 499: 14(ivec4) Load 497(storeTempPost) + 500: 7(ivec4) CompositeConstruct 103 103 103 103 + 501: 14(ivec4) ISub 499 500 + Store 497(storeTempPost) 501 + 502: 91 Load 93(g_tTex1du4) + 503: 6(int) Load 490(coordTemp) + 504: 14(ivec4) Load 497(storeTempPost) + ImageWrite 502 503 504 + 506: 73(ptr) AccessChain 61 51 + 507: 6(int) Load 506 + Store 505(coordTemp) 507 + 509: 83 Load 85(g_tTex1di4) + 510: 6(int) Load 505(coordTemp) + 511: 7(ivec4) ImageRead 509 510 + Store 508(storeTempPre) 511 + 513: 7(ivec4) Load 508(storeTempPre) + Store 512(storeTempPost) 513 + 514: 7(ivec4) Load 512(storeTempPost) + 515: 7(ivec4) CompositeConstruct 103 103 103 103 + 516: 7(ivec4) IAdd 514 515 + Store 512(storeTempPost) 516 + 517: 83 Load 85(g_tTex1di4) + 518: 6(int) Load 505(coordTemp) + 519: 7(ivec4) Load 512(storeTempPost) + ImageWrite 517 518 519 + 521: 73(ptr) AccessChain 61 51 + 522: 6(int) Load 521 + Store 520(coordTemp) 522 + 524: 69 Load 71(g_tTex1df4) + 525: 6(int) Load 520(coordTemp) + 526: 21(fvec4) ImageRead 524 525 + Store 523(storeTempPre) 526 + 528: 21(fvec4) Load 523(storeTempPre) + Store 527(storeTempPost) 528 + 529: 21(fvec4) Load 527(storeTempPost) + 530: 21(fvec4) CompositeConstruct 404 404 404 404 + 531: 21(fvec4) FSub 529 530 + Store 527(storeTempPost) 531 + 532: 69 Load 71(g_tTex1df4) + 533: 6(int) Load 520(coordTemp) + 534: 21(fvec4) Load 527(storeTempPost) + ImageWrite 532 533 534 + 536: 73(ptr) AccessChain 61 51 + 537: 6(int) Load 536 + Store 535(coordTemp) 537 + 539: 83 Load 85(g_tTex1di4) + 540: 6(int) Load 535(coordTemp) + 541: 7(ivec4) ImageRead 539 540 + Store 538(storeTempPre) 541 + 543: 7(ivec4) Load 538(storeTempPre) + Store 542(storeTempPost) 543 + 544: 7(ivec4) Load 542(storeTempPost) + 545: 7(ivec4) CompositeConstruct 103 103 103 103 + 546: 7(ivec4) IAdd 544 545 + Store 542(storeTempPost) 546 + 547: 83 Load 85(g_tTex1di4) + 548: 6(int) Load 535(coordTemp) + 549: 7(ivec4) Load 542(storeTempPost) + ImageWrite 547 548 549 + 551: 73(ptr) AccessChain 61 51 + 552: 6(int) Load 551 + Store 550(coordTemp) 552 + 554: 91 Load 93(g_tTex1du4) + 555: 6(int) Load 550(coordTemp) + 556: 14(ivec4) ImageRead 554 555 + Store 553(storeTempPre) 556 + 558: 14(ivec4) Load 553(storeTempPre) + Store 557(storeTempPost) 558 + 559: 14(ivec4) Load 557(storeTempPost) + 560: 7(ivec4) CompositeConstruct 103 103 103 103 + 561: 14(ivec4) ISub 559 560 + Store 557(storeTempPost) 561 + 562: 91 Load 93(g_tTex1du4) + 563: 6(int) Load 550(coordTemp) + 564: 14(ivec4) Load 557(storeTempPost) + ImageWrite 562 563 564 + 566: 99 Load 101(g_tTex2df4) + 568: 21(fvec4) ImageRead 566 567 + Store 565(storeTemp) 568 + 569: 69 Load 71(g_tTex1df4) + 570: 21(fvec4) Load 565(storeTemp) + ImageWrite 569 103 570 + 575: 22(ptr) AccessChain 573(psout) 51 + Store 575 574 + 578: 22(ptr) AccessChain 573(psout) 51 + 579: 21(fvec4) Load 578 + Store 577(Color) 579 + Return + FunctionEnd + 11(Fn1(vi4;): 7(ivec4) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 42: 7(ivec4) Load 10(x) + ReturnValue 42 + FunctionEnd + 18(Fn1(vu4;): 14(ivec4) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 45: 14(ivec4) Load 17(x) + ReturnValue 45 + FunctionEnd + 25(Fn1(vf4;): 21(fvec4) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 48: 21(fvec4) Load 24(x) + ReturnValue 48 + FunctionEnd + 29(Fn2(vi4;): 2 Function None 27 + 28(x): 8(ptr) FunctionParameter + 30: Label + Store 28(x) 52 + Return + FunctionEnd + 33(Fn2(vu4;): 2 Function None 31 + 32(x): 15(ptr) FunctionParameter + 34: Label + Store 32(x) 54 + Return + FunctionEnd + 37(Fn2(vf4;): 2 Function None 35 + 36(x): 22(ptr) FunctionParameter + 38: Label + Store 36(x) 56 + Return + FunctionEnd + 40(SomeValue(): 21(fvec4) Function None 39 + 41: Label + 64: 63(ptr) AccessChain 61 62 + 65: 7(ivec4) Load 64 + 66: 21(fvec4) ConvertSToF 65 + ReturnValue 66 + FunctionEnd diff --git a/Test/baseResults/hlsl.rw.register.frag.out b/Test/baseResults/hlsl.rw.register.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..f369cac79fc171baa52d158b64f8f71ad9688db5 --- /dev/null +++ b/Test/baseResults/hlsl.rw.register.frag.out @@ -0,0 +1,158 @@ +hlsl.rw.register.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'r00' (temp float) +0:12 imageLoad (temp float) +0:12 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:12 Constant: +0:12 0 (const int) +0:13 Sequence +0:13 move second child to first child (temp uint) +0:13 'r01' (temp uint) +0:13 imageLoad (temp uint) +0:13 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +0:13 Constant: +0:13 0 (const int) +0:16 move second child to first child (temp 4-component vector of float) +0:16 Color: direct index for structure (temp 4-component vector of float) +0:16 'psout' (temp structure{temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:11 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:11 Function Parameters: +0:? Sequence +0:12 Sequence +0:12 move second child to first child (temp float) +0:12 'r00' (temp float) +0:12 imageLoad (temp float) +0:12 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:12 Constant: +0:12 0 (const int) +0:13 Sequence +0:13 move second child to first child (temp uint) +0:13 'r01' (temp uint) +0:13 imageLoad (temp uint) +0:13 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) +0:13 Constant: +0:13 0 (const int) +0:16 move second child to first child (temp 4-component vector of float) +0:16 Color: direct index for structure (temp 4-component vector of float) +0:16 'psout' (temp structure{temp 4-component vector of float Color}) +0:16 Constant: +0:16 0 (const int) +0:16 Constant: +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:16 1.000000 +0:17 Sequence +0:17 Sequence +0:17 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:17 Color: direct index for structure (temp 4-component vector of float) +0:17 'psout' (temp structure{temp 4-component vector of float Color}) +0:17 Constant: +0:17 0 (const int) +0:17 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_tTex1df1' (layout(binding=2 r32f ) uniform image1D) +0:? 'g_tBuf1du1' (layout(binding=3 r32ui ) uniform uimageBuffer) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 37 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df1" + Name 18 "r01" + Name 21 "g_tBuf1du1" + Name 25 "PS_OUTPUT" + MemberName 25(PS_OUTPUT) 0 "Color" + Name 27 "psout" + Name 33 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 11(g_tTex1df1) Binding 2 + Decorate 21(g_tBuf1du1) DescriptorSet 0 + Decorate 21(g_tBuf1du1) Binding 3 + Decorate 33(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D nonsampled format:R32f + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 16: TypeInt 32 0 + 17: TypePointer Function 16(int) + 19: TypeImage 16(int) Buffer nonsampled format:R32ui + 20: TypePointer UniformConstant 19 + 21(g_tBuf1du1): 20(ptr) Variable UniformConstant + 24: TypeVector 6(float) 4 + 25(PS_OUTPUT): TypeStruct 24(fvec4) + 26: TypePointer Function 25(PS_OUTPUT) + 28: 6(float) Constant 1065353216 + 29: 24(fvec4) ConstantComposite 28 28 28 28 + 30: TypePointer Function 24(fvec4) + 32: TypePointer Output 24(fvec4) + 33(Color): 32(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 18(r01): 17(ptr) Variable Function + 27(psout): 26(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 15: 6(float) ImageRead 12 14 + Store 8(r00) 15 + 22: 19 Load 21(g_tBuf1du1) + 23: 16(int) ImageRead 22 14 + Store 18(r01) 23 + 31: 30(ptr) AccessChain 27(psout) 14 + Store 31 29 + 34: 30(ptr) AccessChain 27(psout) 14 + 35: 24(fvec4) Load 34 + Store 33(Color) 35 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.rw.scalar.bracket.frag.out b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..8e40fd2e35d3c452233124662178dd696d83f56b --- /dev/null +++ b/Test/baseResults/hlsl.rw.scalar.bracket.frag.out @@ -0,0 +1,2560 @@ +hlsl.rw.scalar.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(i1; (temp int) +0:42 Function Parameters: +0:42 'x' (in int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in int) +0:43 Function Definition: Fn1(u1; (temp uint) +0:43 Function Parameters: +0:43 'x' (in uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in uint) +0:44 Function Definition: Fn1(f1; (temp float) +0:44 Function Parameters: +0:44 'x' (in float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in float) +0:46 Function Definition: Fn2(i1; (temp void) +0:46 Function Parameters: +0:46 'x' (out int) +0:? Sequence +0:46 move second child to first child (temp int) +0:46 'x' (out int) +0:46 Constant: +0:46 0 (const int) +0:47 Function Definition: Fn2(u1; (temp void) +0:47 Function Parameters: +0:47 'x' (out uint) +0:? Sequence +0:47 move second child to first child (temp uint) +0:47 'x' (out uint) +0:47 Constant: +0:47 0 (const uint) +0:48 Function Definition: Fn2(f1; (temp void) +0:48 Function Parameters: +0:48 'x' (out float) +0:? Sequence +0:48 move second child to first child (temp float) +0:48 'x' (out float) +0:48 Constant: +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp float) +0:50 c1: direct index for structure (layout(offset=0 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:50 Constant: +0:50 0 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp float) +0:57 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp float) +0:59 'r00' (temp float) +0:59 imageLoad (temp float) +0:59 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp int) +0:60 'r01' (temp int) +0:60 imageLoad (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp uint) +0:61 'r02' (temp uint) +0:61 imageLoad (temp uint) +0:61 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp float) +0:64 'r10' (temp float) +0:64 imageLoad (temp float) +0:64 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp int) +0:65 'r11' (temp int) +0:65 imageLoad (temp int) +0:65 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp uint) +0:66 'r12' (temp uint) +0:66 imageLoad (temp uint) +0:66 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp float) +0:69 'r20' (temp float) +0:69 imageLoad (temp float) +0:69 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp int) +0:70 'r21' (temp int) +0:70 imageLoad (temp int) +0:70 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'r22' (temp uint) +0:71 imageLoad (temp uint) +0:71 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp float) +0:73 'lf1' (temp float) +0:73 uf1: direct index for structure (layout(offset=96 ) uniform float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp float) +0:77 'storeTemp' (temp float) +0:77 Function Call: SomeValue( (temp float) +0:77 imageStore (temp void) +0:77 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp float) +0:77 'storeTemp' (temp float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf1' (temp float) +0:78 'lf1' (temp float) +0:79 Sequence +0:79 move second child to first child (temp int) +0:79 'storeTemp' (temp int) +0:79 Constant: +0:79 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp int) +0:79 'storeTemp' (temp int) +0:80 Sequence +0:80 move second child to first child (temp uint) +0:80 'storeTemp' (temp uint) +0:80 Constant: +0:80 3 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp uint) +0:80 'storeTemp' (temp uint) +0:83 Sequence +0:83 move second child to first child (temp float) +0:83 'val1' (temp float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp float) +0:83 'storeTemp' (temp float) +0:83 imageLoad (temp float) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 multiply second child into first child (temp float) +0:83 'storeTemp' (temp float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp float) +0:83 'storeTemp' (temp float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp float) +0:84 'storeTemp' (temp float) +0:84 imageLoad (temp float) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp float) +0:84 'storeTemp' (temp float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp float) +0:84 'storeTemp' (temp float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp float) +0:85 'storeTemp' (temp float) +0:85 imageLoad (temp float) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp float) +0:85 'storeTemp' (temp float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp float) +0:85 'storeTemp' (temp float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp int) +0:87 'storeTemp' (temp int) +0:87 imageLoad (temp int) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp int) +0:87 'storeTemp' (temp int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp int) +0:87 'storeTemp' (temp int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp int) +0:88 'storeTemp' (temp int) +0:88 imageLoad (temp int) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp int) +0:88 'storeTemp' (temp int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp int) +0:88 'storeTemp' (temp int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp int) +0:89 'storeTemp' (temp int) +0:89 imageLoad (temp int) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp int) +0:89 'storeTemp' (temp int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp int) +0:89 'storeTemp' (temp int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp int) +0:90 'storeTemp' (temp int) +0:90 imageLoad (temp int) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp int) +0:90 'storeTemp' (temp int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp int) +0:90 'storeTemp' (temp int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp int) +0:91 'storeTemp' (temp int) +0:91 imageLoad (temp int) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp int) +0:91 'storeTemp' (temp int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp int) +0:91 'storeTemp' (temp int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp int) +0:92 'storeTemp' (temp int) +0:92 imageLoad (temp int) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp int) +0:92 'storeTemp' (temp int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp int) +0:92 'storeTemp' (temp int) +0:95 Sequence +0:95 move second child to first child (temp float) +0:95 'storeTemp' (temp float) +0:95 Function Call: SomeValue( (temp float) +0:95 imageStore (temp void) +0:95 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp float) +0:95 'storeTemp' (temp float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf1' (temp float) +0:96 'lf1' (temp float) +0:97 Sequence +0:97 move second child to first child (temp int) +0:97 'storeTemp' (temp int) +0:97 Constant: +0:97 5 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp int) +0:97 'storeTemp' (temp int) +0:98 Sequence +0:98 move second child to first child (temp uint) +0:98 'storeTemp' (temp uint) +0:98 Constant: +0:98 6 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp uint) +0:98 'storeTemp' (temp uint) +0:101 Sequence +0:101 move second child to first child (temp float) +0:101 'storeTemp' (temp float) +0:101 Function Call: SomeValue( (temp float) +0:101 imageStore (temp void) +0:101 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp float) +0:101 'storeTemp' (temp float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf1' (temp float) +0:102 'lf1' (temp float) +0:103 Sequence +0:103 move second child to first child (temp int) +0:103 'storeTemp' (temp int) +0:103 Constant: +0:103 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp int) +0:103 'storeTemp' (temp int) +0:104 Sequence +0:104 move second child to first child (temp uint) +0:104 'storeTemp' (temp uint) +0:104 Constant: +0:104 9 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp uint) +0:104 'storeTemp' (temp uint) +0:107 Function Call: Fn1(f1; (temp float) +0:107 imageLoad (temp float) +0:107 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(i1; (temp int) +0:108 imageLoad (temp int) +0:108 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(u1; (temp uint) +0:109 imageLoad (temp uint) +0:109 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(f1; (temp void) +0:111 'tempArg' (temp float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp float) +0:111 'tempArg' (temp float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(i1; (temp void) +0:112 'tempArg' (temp int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp int) +0:112 'tempArg' (temp int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(u1; (temp void) +0:113 'tempArg' (temp uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp uint) +0:113 'tempArg' (temp uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp float) +0:117 'storeTemp' (temp float) +0:117 imageLoad (temp float) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp float) +0:117 'storeTemp' (temp float) +0:117 imageStore (temp void) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp float) +0:117 'storeTemp' (temp float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp int) +0:118 'storeTemp' (temp int) +0:118 imageLoad (temp int) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp int) +0:118 'storeTemp' (temp int) +0:118 imageStore (temp void) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp int) +0:118 'storeTemp' (temp int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageLoad (temp uint) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp uint) +0:119 'storeTemp' (temp uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp float) +0:121 'storeTemp' (temp float) +0:121 imageLoad (temp float) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp float) +0:121 'storeTemp' (temp float) +0:121 imageStore (temp void) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp float) +0:121 'storeTemp' (temp float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp int) +0:122 'storeTemp' (temp int) +0:122 imageLoad (temp int) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp int) +0:122 'storeTemp' (temp int) +0:122 imageStore (temp void) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp int) +0:122 'storeTemp' (temp int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageLoad (temp uint) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp uint) +0:123 'storeTemp' (temp uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp float) +0:126 'storeTempPre' (temp float) +0:126 imageLoad (temp float) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp float) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:126 Post-Increment (temp float) +0:126 'storeTempPost' (temp float) +0:126 imageStore (temp void) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 imageLoad (temp uint) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 Post-Decrement (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp int) +0:128 'storeTempPre' (temp int) +0:128 imageLoad (temp int) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:128 Post-Increment (temp int) +0:128 'storeTempPost' (temp int) +0:128 imageStore (temp void) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp float) +0:130 'storeTempPre' (temp float) +0:130 imageLoad (temp float) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp float) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:130 Post-Decrement (temp float) +0:130 'storeTempPost' (temp float) +0:130 imageStore (temp void) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp int) +0:131 'storeTempPre' (temp int) +0:131 imageLoad (temp int) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:131 Post-Increment (temp int) +0:131 'storeTempPost' (temp int) +0:131 imageStore (temp void) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 imageLoad (temp uint) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 Post-Decrement (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:135 Sequence +0:135 move second child to first child (temp float) +0:135 'storeTemp' (temp float) +0:? imageLoad (temp float) +0:135 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp float) +0:135 'storeTemp' (temp float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(i1; (temp int) +0:42 Function Parameters: +0:42 'x' (in int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in int) +0:43 Function Definition: Fn1(u1; (temp uint) +0:43 Function Parameters: +0:43 'x' (in uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in uint) +0:44 Function Definition: Fn1(f1; (temp float) +0:44 Function Parameters: +0:44 'x' (in float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in float) +0:46 Function Definition: Fn2(i1; (temp void) +0:46 Function Parameters: +0:46 'x' (out int) +0:? Sequence +0:46 move second child to first child (temp int) +0:46 'x' (out int) +0:46 Constant: +0:46 0 (const int) +0:47 Function Definition: Fn2(u1; (temp void) +0:47 Function Parameters: +0:47 'x' (out uint) +0:? Sequence +0:47 move second child to first child (temp uint) +0:47 'x' (out uint) +0:47 Constant: +0:47 0 (const uint) +0:48 Function Definition: Fn2(f1; (temp void) +0:48 Function Parameters: +0:48 'x' (out float) +0:? Sequence +0:48 move second child to first child (temp float) +0:48 'x' (out float) +0:48 Constant: +0:48 0.000000 +0:50 Function Definition: SomeValue( (temp float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp float) +0:50 c1: direct index for structure (layout(offset=0 ) uniform int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:50 Constant: +0:50 0 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp float) +0:57 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp float) +0:59 'r00' (temp float) +0:59 imageLoad (temp float) +0:59 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp int) +0:60 'r01' (temp int) +0:60 imageLoad (temp int) +0:60 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp uint) +0:61 'r02' (temp uint) +0:61 imageLoad (temp uint) +0:61 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp float) +0:64 'r10' (temp float) +0:64 imageLoad (temp float) +0:64 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp int) +0:65 'r11' (temp int) +0:65 imageLoad (temp int) +0:65 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp uint) +0:66 'r12' (temp uint) +0:66 imageLoad (temp uint) +0:66 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp float) +0:69 'r20' (temp float) +0:69 imageLoad (temp float) +0:69 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp int) +0:70 'r21' (temp int) +0:70 imageLoad (temp int) +0:70 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp uint) +0:71 'r22' (temp uint) +0:71 imageLoad (temp uint) +0:71 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp float) +0:73 'lf1' (temp float) +0:73 uf1: direct index for structure (layout(offset=96 ) uniform float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp float) +0:77 'storeTemp' (temp float) +0:77 Function Call: SomeValue( (temp float) +0:77 imageStore (temp void) +0:77 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp float) +0:77 'storeTemp' (temp float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf1' (temp float) +0:78 'lf1' (temp float) +0:79 Sequence +0:79 move second child to first child (temp int) +0:79 'storeTemp' (temp int) +0:79 Constant: +0:79 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp int) +0:79 'storeTemp' (temp int) +0:80 Sequence +0:80 move second child to first child (temp uint) +0:80 'storeTemp' (temp uint) +0:80 Constant: +0:80 3 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp uint) +0:80 'storeTemp' (temp uint) +0:83 Sequence +0:83 move second child to first child (temp float) +0:83 'val1' (temp float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp float) +0:83 'storeTemp' (temp float) +0:83 imageLoad (temp float) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 multiply second child into first child (temp float) +0:83 'storeTemp' (temp float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp float) +0:83 'storeTemp' (temp float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp float) +0:84 'storeTemp' (temp float) +0:84 imageLoad (temp float) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp float) +0:84 'storeTemp' (temp float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp float) +0:84 'storeTemp' (temp float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp float) +0:85 'storeTemp' (temp float) +0:85 imageLoad (temp float) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp float) +0:85 'storeTemp' (temp float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp float) +0:85 'storeTemp' (temp float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp int) +0:87 'storeTemp' (temp int) +0:87 imageLoad (temp int) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp int) +0:87 'storeTemp' (temp int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp int) +0:87 'storeTemp' (temp int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp int) +0:88 'storeTemp' (temp int) +0:88 imageLoad (temp int) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp int) +0:88 'storeTemp' (temp int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp int) +0:88 'storeTemp' (temp int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp int) +0:89 'storeTemp' (temp int) +0:89 imageLoad (temp int) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp int) +0:89 'storeTemp' (temp int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp int) +0:89 'storeTemp' (temp int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp int) +0:90 'storeTemp' (temp int) +0:90 imageLoad (temp int) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp int) +0:90 'storeTemp' (temp int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp int) +0:90 'storeTemp' (temp int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp int) +0:91 'storeTemp' (temp int) +0:91 imageLoad (temp int) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp int) +0:91 'storeTemp' (temp int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp int) +0:91 'storeTemp' (temp int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp int) +0:92 'storeTemp' (temp int) +0:92 imageLoad (temp int) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp int) +0:92 'storeTemp' (temp int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp int) +0:92 'storeTemp' (temp int) +0:95 Sequence +0:95 move second child to first child (temp float) +0:95 'storeTemp' (temp float) +0:95 Function Call: SomeValue( (temp float) +0:95 imageStore (temp void) +0:95 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp float) +0:95 'storeTemp' (temp float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf1' (temp float) +0:96 'lf1' (temp float) +0:97 Sequence +0:97 move second child to first child (temp int) +0:97 'storeTemp' (temp int) +0:97 Constant: +0:97 5 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp int) +0:97 'storeTemp' (temp int) +0:98 Sequence +0:98 move second child to first child (temp uint) +0:98 'storeTemp' (temp uint) +0:98 Constant: +0:98 6 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp uint) +0:98 'storeTemp' (temp uint) +0:101 Sequence +0:101 move second child to first child (temp float) +0:101 'storeTemp' (temp float) +0:101 Function Call: SomeValue( (temp float) +0:101 imageStore (temp void) +0:101 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp float) +0:101 'storeTemp' (temp float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf1' (temp float) +0:102 'lf1' (temp float) +0:103 Sequence +0:103 move second child to first child (temp int) +0:103 'storeTemp' (temp int) +0:103 Constant: +0:103 8 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp int) +0:103 'storeTemp' (temp int) +0:104 Sequence +0:104 move second child to first child (temp uint) +0:104 'storeTemp' (temp uint) +0:104 Constant: +0:104 9 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp uint) +0:104 'storeTemp' (temp uint) +0:107 Function Call: Fn1(f1; (temp float) +0:107 imageLoad (temp float) +0:107 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(i1; (temp int) +0:108 imageLoad (temp int) +0:108 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(u1; (temp uint) +0:109 imageLoad (temp uint) +0:109 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(f1; (temp void) +0:111 'tempArg' (temp float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp float) +0:111 'tempArg' (temp float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(i1; (temp void) +0:112 'tempArg' (temp int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp int) +0:112 'tempArg' (temp int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(u1; (temp void) +0:113 'tempArg' (temp uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp uint) +0:113 'tempArg' (temp uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp float) +0:117 'storeTemp' (temp float) +0:117 imageLoad (temp float) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp float) +0:117 'storeTemp' (temp float) +0:117 imageStore (temp void) +0:117 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp float) +0:117 'storeTemp' (temp float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp int) +0:118 'storeTemp' (temp int) +0:118 imageLoad (temp int) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp int) +0:118 'storeTemp' (temp int) +0:118 imageStore (temp void) +0:118 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp int) +0:118 'storeTemp' (temp int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageLoad (temp uint) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp uint) +0:119 'storeTemp' (temp uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp uint) +0:119 'storeTemp' (temp uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp float) +0:121 'storeTemp' (temp float) +0:121 imageLoad (temp float) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp float) +0:121 'storeTemp' (temp float) +0:121 imageStore (temp void) +0:121 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp float) +0:121 'storeTemp' (temp float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp int) +0:122 'storeTemp' (temp int) +0:122 imageLoad (temp int) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp int) +0:122 'storeTemp' (temp int) +0:122 imageStore (temp void) +0:122 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp int) +0:122 'storeTemp' (temp int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageLoad (temp uint) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp uint) +0:123 'storeTemp' (temp uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp uint) +0:123 'storeTemp' (temp uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp float) +0:126 'storeTempPre' (temp float) +0:126 imageLoad (temp float) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp float) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:126 Post-Increment (temp float) +0:126 'storeTempPost' (temp float) +0:126 imageStore (temp void) +0:126 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp float) +0:126 'storeTempPre' (temp float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 imageLoad (temp uint) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:127 Post-Decrement (temp uint) +0:127 'storeTempPost' (temp uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp uint) +0:127 'storeTempPre' (temp uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp int) +0:128 'storeTempPre' (temp int) +0:128 imageLoad (temp int) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:128 Post-Increment (temp int) +0:128 'storeTempPost' (temp int) +0:128 imageStore (temp void) +0:128 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp int) +0:128 'storeTempPre' (temp int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp float) +0:130 'storeTempPre' (temp float) +0:130 imageLoad (temp float) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp float) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:130 Post-Decrement (temp float) +0:130 'storeTempPost' (temp float) +0:130 imageStore (temp void) +0:130 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp float) +0:130 'storeTempPre' (temp float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp int) +0:131 'storeTempPre' (temp int) +0:131 imageLoad (temp int) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:131 Post-Increment (temp int) +0:131 'storeTempPost' (temp int) +0:131 imageStore (temp void) +0:131 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp int) +0:131 'storeTempPre' (temp int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 imageLoad (temp uint) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:132 Post-Decrement (temp uint) +0:132 'storeTempPost' (temp uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp uint) +0:132 'storeTempPre' (temp uint) +0:135 Sequence +0:135 move second child to first child (temp float) +0:135 'storeTemp' (temp float) +0:? imageLoad (temp float) +0:135 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp float) +0:135 'storeTemp' (temp float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (layout(r32f ) uniform image1D) +0:? 'g_tTex1di1' (layout(r32i ) uniform iimage1D) +0:? 'g_tTex1du1' (layout(r32ui ) uniform uimage1D) +0:? 'g_tTex2df1' (layout(r32f ) uniform image2D) +0:? 'g_tTex2di1' (layout(r32i ) uniform iimage2D) +0:? 'g_tTex2du1' (layout(r32ui ) uniform uimage2D) +0:? 'g_tTex3df1' (layout(r32f ) uniform image3D) +0:? 'g_tTex3di1' (layout(r32i ) uniform iimage3D) +0:? 'g_tTex3du1' (layout(r32ui ) uniform uimage3D) +0:? 'g_tTex1df1a' (layout(r32f ) uniform image1DArray) +0:? 'g_tTex1di1a' (layout(r32i ) uniform iimage1DArray) +0:? 'g_tTex1du1a' (layout(r32ui ) uniform uimage1DArray) +0:? 'g_tTex2df1a' (layout(r32f ) uniform image2DArray) +0:? 'g_tTex2di1a' (layout(r32i ) uniform iimage2DArray) +0:? 'g_tTex2du1a' (layout(r32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform float uf1, layout(offset=100 ) uniform int ui1, layout(offset=104 ) uniform uint uu1}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 566 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 541 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 10 "Fn1(i1;" + Name 9 "x" + Name 16 "Fn1(u1;" + Name 15 "x" + Name 22 "Fn1(f1;" + Name 21 "x" + Name 26 "Fn2(i1;" + Name 25 "x" + Name 30 "Fn2(u1;" + Name 29 "x" + Name 34 "Fn2(f1;" + Name 33 "x" + Name 37 "SomeValue(" + Name 54 "$Global" + MemberName 54($Global) 0 "c1" + MemberName 54($Global) 1 "c2" + MemberName 54($Global) 2 "c3" + MemberName 54($Global) 3 "c4" + MemberName 54($Global) 4 "o1" + MemberName 54($Global) 5 "o2" + MemberName 54($Global) 6 "o3" + MemberName 54($Global) 7 "o4" + MemberName 54($Global) 8 "uf1" + MemberName 54($Global) 9 "ui1" + MemberName 54($Global) 10 "uu1" + Name 56 "" + Name 65 "g_tTex1df1" + Name 70 "r00" + Name 75 "r01" + Name 78 "g_tTex1di1" + Name 83 "r02" + Name 86 "g_tTex1du1" + Name 91 "r10" + Name 94 "g_tTex2df1" + Name 101 "r11" + Name 104 "g_tTex2di1" + Name 109 "r12" + Name 112 "g_tTex2du1" + Name 117 "r20" + Name 120 "g_tTex3df1" + Name 127 "r21" + Name 130 "g_tTex3di1" + Name 135 "r22" + Name 138 "g_tTex3du1" + Name 143 "lf1" + Name 148 "storeTemp" + Name 158 "storeTemp" + Name 163 "storeTemp" + Name 169 "val1" + Name 170 "coordTemp" + Name 173 "storeTemp" + Name 184 "coordTemp" + Name 187 "storeTemp" + Name 197 "coordTemp" + Name 200 "storeTemp" + Name 210 "coordTemp" + Name 213 "storeTemp" + Name 222 "coordTemp" + Name 225 "storeTemp" + Name 234 "coordTemp" + Name 237 "storeTemp" + Name 247 "coordTemp" + Name 250 "storeTemp" + Name 260 "coordTemp" + Name 263 "storeTemp" + Name 272 "coordTemp" + Name 275 "storeTemp" + Name 284 "storeTemp" + Name 294 "storeTemp" + Name 300 "storeTemp" + Name 306 "storeTemp" + Name 316 "storeTemp" + Name 321 "storeTemp" + Name 331 "param" + Name 337 "param" + Name 343 "param" + Name 345 "tempArg" + Name 346 "param" + Name 353 "tempArg" + Name 354 "param" + Name 361 "tempArg" + Name 362 "param" + Name 369 "coordTemp" + Name 372 "storeTemp" + Name 382 "coordTemp" + Name 385 "storeTemp" + Name 394 "coordTemp" + Name 397 "storeTemp" + Name 406 "coordTemp" + Name 409 "storeTemp" + Name 418 "coordTemp" + Name 421 "storeTemp" + Name 430 "coordTemp" + Name 433 "storeTemp" + Name 442 "coordTemp" + Name 445 "storeTempPre" + Name 449 "storeTempPost" + Name 456 "coordTemp" + Name 459 "storeTempPre" + Name 463 "storeTempPost" + Name 470 "coordTemp" + Name 473 "storeTempPre" + Name 477 "storeTempPost" + Name 484 "coordTemp" + Name 487 "storeTempPre" + Name 491 "storeTempPost" + Name 498 "coordTemp" + Name 501 "storeTempPre" + Name 505 "storeTempPost" + Name 512 "coordTemp" + Name 515 "storeTempPre" + Name 519 "storeTempPost" + Name 526 "storeTemp" + Name 534 "PS_OUTPUT" + MemberName 534(PS_OUTPUT) 0 "Color" + Name 536 "psout" + Name 541 "Color" + Name 547 "g_sSamp" + Name 550 "g_tTex1df1a" + Name 553 "g_tTex1di1a" + Name 556 "g_tTex1du1a" + Name 559 "g_tTex2df1a" + Name 562 "g_tTex2di1a" + Name 565 "g_tTex2du1a" + MemberDecorate 54($Global) 0 Offset 0 + MemberDecorate 54($Global) 1 Offset 8 + MemberDecorate 54($Global) 2 Offset 16 + MemberDecorate 54($Global) 3 Offset 32 + MemberDecorate 54($Global) 4 Offset 48 + MemberDecorate 54($Global) 5 Offset 56 + MemberDecorate 54($Global) 6 Offset 64 + MemberDecorate 54($Global) 7 Offset 80 + MemberDecorate 54($Global) 8 Offset 96 + MemberDecorate 54($Global) 9 Offset 100 + MemberDecorate 54($Global) 10 Offset 104 + Decorate 54($Global) Block + Decorate 56 DescriptorSet 0 + Decorate 65(g_tTex1df1) DescriptorSet 0 + Decorate 78(g_tTex1di1) DescriptorSet 0 + Decorate 86(g_tTex1du1) DescriptorSet 0 + Decorate 94(g_tTex2df1) DescriptorSet 0 + Decorate 104(g_tTex2di1) DescriptorSet 0 + Decorate 112(g_tTex2du1) DescriptorSet 0 + Decorate 120(g_tTex3df1) DescriptorSet 0 + Decorate 130(g_tTex3di1) DescriptorSet 0 + Decorate 138(g_tTex3du1) DescriptorSet 0 + Decorate 541(Color) Location 0 + Decorate 547(g_sSamp) DescriptorSet 0 + Decorate 547(g_sSamp) Binding 0 + Decorate 550(g_tTex1df1a) DescriptorSet 0 + Decorate 553(g_tTex1di1a) DescriptorSet 0 + Decorate 556(g_tTex1du1a) DescriptorSet 0 + Decorate 559(g_tTex2df1a) DescriptorSet 0 + Decorate 562(g_tTex2di1a) DescriptorSet 0 + Decorate 565(g_tTex2du1a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypePointer Function 6(int) + 8: TypeFunction 6(int) 7(ptr) + 12: TypeInt 32 0 + 13: TypePointer Function 12(int) + 14: TypeFunction 12(int) 13(ptr) + 18: TypeFloat 32 + 19: TypePointer Function 18(float) + 20: TypeFunction 18(float) 19(ptr) + 24: TypeFunction 2 7(ptr) + 28: TypeFunction 2 13(ptr) + 32: TypeFunction 2 19(ptr) + 36: TypeFunction 18(float) + 48: 6(int) Constant 0 + 49: 12(int) Constant 0 + 50: 18(float) Constant 0 + 51: TypeVector 6(int) 2 + 52: TypeVector 6(int) 3 + 53: TypeVector 6(int) 4 + 54($Global): TypeStruct 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 6(int) 51(ivec2) 52(ivec3) 53(ivec4) 18(float) 6(int) 12(int) + 55: TypePointer Uniform 54($Global) + 56: 55(ptr) Variable Uniform + 57: TypePointer Uniform 6(int) + 63: TypeImage 18(float) 1D nonsampled format:R32f + 64: TypePointer UniformConstant 63 + 65(g_tTex1df1): 64(ptr) Variable UniformConstant + 76: TypeImage 6(int) 1D nonsampled format:R32i + 77: TypePointer UniformConstant 76 + 78(g_tTex1di1): 77(ptr) Variable UniformConstant + 84: TypeImage 12(int) 1D nonsampled format:R32ui + 85: TypePointer UniformConstant 84 + 86(g_tTex1du1): 85(ptr) Variable UniformConstant + 92: TypeImage 18(float) 2D nonsampled format:R32f + 93: TypePointer UniformConstant 92 + 94(g_tTex2df1): 93(ptr) Variable UniformConstant + 96: 6(int) Constant 1 + 97: TypePointer Uniform 51(ivec2) + 102: TypeImage 6(int) 2D nonsampled format:R32i + 103: TypePointer UniformConstant 102 + 104(g_tTex2di1): 103(ptr) Variable UniformConstant + 110: TypeImage 12(int) 2D nonsampled format:R32ui + 111: TypePointer UniformConstant 110 + 112(g_tTex2du1): 111(ptr) Variable UniformConstant + 118: TypeImage 18(float) 3D nonsampled format:R32f + 119: TypePointer UniformConstant 118 + 120(g_tTex3df1): 119(ptr) Variable UniformConstant + 122: 6(int) Constant 2 + 123: TypePointer Uniform 52(ivec3) + 128: TypeImage 6(int) 3D nonsampled format:R32i + 129: TypePointer UniformConstant 128 + 130(g_tTex3di1): 129(ptr) Variable UniformConstant + 136: TypeImage 12(int) 3D nonsampled format:R32ui + 137: TypePointer UniformConstant 136 + 138(g_tTex3du1): 137(ptr) Variable UniformConstant + 144: 6(int) Constant 8 + 145: TypePointer Uniform 18(float) + 164: 12(int) Constant 3 + 177: 18(float) Constant 1073741824 + 191: 18(float) Constant 1077936128 + 204: 18(float) Constant 1082130432 + 241: 6(int) Constant 65535 + 254: 6(int) Constant 61680 + 295: 6(int) Constant 5 + 301: 12(int) Constant 6 + 322: 12(int) Constant 9 + 377: 18(float) Constant 1065353216 + 528: 6(int) Constant 3 + 529: 51(ivec2) ConstantComposite 122 528 + 533: TypeVector 18(float) 4 + 534(PS_OUTPUT): TypeStruct 533(fvec4) + 535: TypePointer Function 534(PS_OUTPUT) + 537: 533(fvec4) ConstantComposite 377 377 377 377 + 538: TypePointer Function 533(fvec4) + 540: TypePointer Output 533(fvec4) + 541(Color): 540(ptr) Variable Output + 545: TypeSampler + 546: TypePointer UniformConstant 545 + 547(g_sSamp): 546(ptr) Variable UniformConstant + 548: TypeImage 18(float) 1D array nonsampled format:R32f + 549: TypePointer UniformConstant 548 +550(g_tTex1df1a): 549(ptr) Variable UniformConstant + 551: TypeImage 6(int) 1D array nonsampled format:R32i + 552: TypePointer UniformConstant 551 +553(g_tTex1di1a): 552(ptr) Variable UniformConstant + 554: TypeImage 12(int) 1D array nonsampled format:R32ui + 555: TypePointer UniformConstant 554 +556(g_tTex1du1a): 555(ptr) Variable UniformConstant + 557: TypeImage 18(float) 2D array nonsampled format:R32f + 558: TypePointer UniformConstant 557 +559(g_tTex2df1a): 558(ptr) Variable UniformConstant + 560: TypeImage 6(int) 2D array nonsampled format:R32i + 561: TypePointer UniformConstant 560 +562(g_tTex2di1a): 561(ptr) Variable UniformConstant + 563: TypeImage 12(int) 2D array nonsampled format:R32ui + 564: TypePointer UniformConstant 563 +565(g_tTex2du1a): 564(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 70(r00): 19(ptr) Variable Function + 75(r01): 7(ptr) Variable Function + 83(r02): 13(ptr) Variable Function + 91(r10): 19(ptr) Variable Function + 101(r11): 7(ptr) Variable Function + 109(r12): 13(ptr) Variable Function + 117(r20): 19(ptr) Variable Function + 127(r21): 7(ptr) Variable Function + 135(r22): 13(ptr) Variable Function + 143(lf1): 19(ptr) Variable Function + 148(storeTemp): 19(ptr) Variable Function + 158(storeTemp): 7(ptr) Variable Function + 163(storeTemp): 13(ptr) Variable Function + 169(val1): 19(ptr) Variable Function + 170(coordTemp): 7(ptr) Variable Function + 173(storeTemp): 19(ptr) Variable Function + 184(coordTemp): 7(ptr) Variable Function + 187(storeTemp): 19(ptr) Variable Function + 197(coordTemp): 7(ptr) Variable Function + 200(storeTemp): 19(ptr) Variable Function + 210(coordTemp): 7(ptr) Variable Function + 213(storeTemp): 7(ptr) Variable Function + 222(coordTemp): 7(ptr) Variable Function + 225(storeTemp): 7(ptr) Variable Function + 234(coordTemp): 7(ptr) Variable Function + 237(storeTemp): 7(ptr) Variable Function + 247(coordTemp): 7(ptr) Variable Function + 250(storeTemp): 7(ptr) Variable Function + 260(coordTemp): 7(ptr) Variable Function + 263(storeTemp): 7(ptr) Variable Function + 272(coordTemp): 7(ptr) Variable Function + 275(storeTemp): 7(ptr) Variable Function + 284(storeTemp): 19(ptr) Variable Function + 294(storeTemp): 7(ptr) Variable Function + 300(storeTemp): 13(ptr) Variable Function + 306(storeTemp): 19(ptr) Variable Function + 316(storeTemp): 7(ptr) Variable Function + 321(storeTemp): 13(ptr) Variable Function + 331(param): 19(ptr) Variable Function + 337(param): 7(ptr) Variable Function + 343(param): 13(ptr) Variable Function + 345(tempArg): 19(ptr) Variable Function + 346(param): 19(ptr) Variable Function + 353(tempArg): 7(ptr) Variable Function + 354(param): 7(ptr) Variable Function + 361(tempArg): 13(ptr) Variable Function + 362(param): 13(ptr) Variable Function + 369(coordTemp): 7(ptr) Variable Function + 372(storeTemp): 19(ptr) Variable Function + 382(coordTemp): 7(ptr) Variable Function + 385(storeTemp): 7(ptr) Variable Function + 394(coordTemp): 7(ptr) Variable Function + 397(storeTemp): 13(ptr) Variable Function + 406(coordTemp): 7(ptr) Variable Function + 409(storeTemp): 19(ptr) Variable Function + 418(coordTemp): 7(ptr) Variable Function + 421(storeTemp): 7(ptr) Variable Function + 430(coordTemp): 7(ptr) Variable Function + 433(storeTemp): 13(ptr) Variable Function + 442(coordTemp): 7(ptr) Variable Function +445(storeTempPre): 19(ptr) Variable Function +449(storeTempPost): 19(ptr) Variable Function + 456(coordTemp): 7(ptr) Variable Function +459(storeTempPre): 13(ptr) Variable Function +463(storeTempPost): 13(ptr) Variable Function + 470(coordTemp): 7(ptr) Variable Function +473(storeTempPre): 7(ptr) Variable Function +477(storeTempPost): 7(ptr) Variable Function + 484(coordTemp): 7(ptr) Variable Function +487(storeTempPre): 19(ptr) Variable Function +491(storeTempPost): 19(ptr) Variable Function + 498(coordTemp): 7(ptr) Variable Function +501(storeTempPre): 7(ptr) Variable Function +505(storeTempPost): 7(ptr) Variable Function + 512(coordTemp): 7(ptr) Variable Function +515(storeTempPre): 13(ptr) Variable Function +519(storeTempPost): 13(ptr) Variable Function + 526(storeTemp): 19(ptr) Variable Function + 536(psout): 535(ptr) Variable Function + 66: 63 Load 65(g_tTex1df1) + 67: 57(ptr) AccessChain 56 48 + 68: 6(int) Load 67 + 69: 18(float) ImageRead 66 68 + 71: 63 Load 65(g_tTex1df1) + 72: 57(ptr) AccessChain 56 48 + 73: 6(int) Load 72 + 74: 18(float) ImageRead 71 73 + Store 70(r00) 74 + 79: 76 Load 78(g_tTex1di1) + 80: 57(ptr) AccessChain 56 48 + 81: 6(int) Load 80 + 82: 6(int) ImageRead 79 81 + Store 75(r01) 82 + 87: 84 Load 86(g_tTex1du1) + 88: 57(ptr) AccessChain 56 48 + 89: 6(int) Load 88 + 90: 12(int) ImageRead 87 89 + Store 83(r02) 90 + 95: 92 Load 94(g_tTex2df1) + 98: 97(ptr) AccessChain 56 96 + 99: 51(ivec2) Load 98 + 100: 18(float) ImageRead 95 99 + Store 91(r10) 100 + 105: 102 Load 104(g_tTex2di1) + 106: 97(ptr) AccessChain 56 96 + 107: 51(ivec2) Load 106 + 108: 6(int) ImageRead 105 107 + Store 101(r11) 108 + 113: 110 Load 112(g_tTex2du1) + 114: 97(ptr) AccessChain 56 96 + 115: 51(ivec2) Load 114 + 116: 12(int) ImageRead 113 115 + Store 109(r12) 116 + 121: 118 Load 120(g_tTex3df1) + 124: 123(ptr) AccessChain 56 122 + 125: 52(ivec3) Load 124 + 126: 18(float) ImageRead 121 125 + Store 117(r20) 126 + 131: 128 Load 130(g_tTex3di1) + 132: 123(ptr) AccessChain 56 122 + 133: 52(ivec3) Load 132 + 134: 6(int) ImageRead 131 133 + Store 127(r21) 134 + 139: 136 Load 138(g_tTex3du1) + 140: 123(ptr) AccessChain 56 122 + 141: 52(ivec3) Load 140 + 142: 12(int) ImageRead 139 141 + Store 135(r22) 142 + 146: 145(ptr) AccessChain 56 144 + 147: 18(float) Load 146 + Store 143(lf1) 147 + 149: 18(float) FunctionCall 37(SomeValue() + Store 148(storeTemp) 149 + 150: 63 Load 65(g_tTex1df1) + 151: 57(ptr) AccessChain 56 48 + 152: 6(int) Load 151 + 153: 18(float) Load 148(storeTemp) + ImageWrite 150 152 153 + 154: 63 Load 65(g_tTex1df1) + 155: 57(ptr) AccessChain 56 48 + 156: 6(int) Load 155 + 157: 18(float) Load 143(lf1) + ImageWrite 154 156 157 + Store 158(storeTemp) 122 + 159: 76 Load 78(g_tTex1di1) + 160: 57(ptr) AccessChain 56 48 + 161: 6(int) Load 160 + 162: 6(int) Load 158(storeTemp) + ImageWrite 159 161 162 + Store 163(storeTemp) 164 + 165: 84 Load 86(g_tTex1du1) + 166: 57(ptr) AccessChain 56 48 + 167: 6(int) Load 166 + 168: 12(int) Load 163(storeTemp) + ImageWrite 165 167 168 + 171: 57(ptr) AccessChain 56 48 + 172: 6(int) Load 171 + Store 170(coordTemp) 172 + 174: 63 Load 65(g_tTex1df1) + 175: 6(int) Load 170(coordTemp) + 176: 18(float) ImageRead 174 175 + Store 173(storeTemp) 176 + 178: 18(float) Load 173(storeTemp) + 179: 18(float) FMul 178 177 + Store 173(storeTemp) 179 + 180: 63 Load 65(g_tTex1df1) + 181: 6(int) Load 170(coordTemp) + 182: 18(float) Load 173(storeTemp) + ImageWrite 180 181 182 + 183: 18(float) Load 173(storeTemp) + Store 169(val1) 183 + 185: 57(ptr) AccessChain 56 48 + 186: 6(int) Load 185 + Store 184(coordTemp) 186 + 188: 63 Load 65(g_tTex1df1) + 189: 6(int) Load 184(coordTemp) + 190: 18(float) ImageRead 188 189 + Store 187(storeTemp) 190 + 192: 18(float) Load 187(storeTemp) + 193: 18(float) FSub 192 191 + Store 187(storeTemp) 193 + 194: 63 Load 65(g_tTex1df1) + 195: 6(int) Load 184(coordTemp) + 196: 18(float) Load 187(storeTemp) + ImageWrite 194 195 196 + 198: 57(ptr) AccessChain 56 48 + 199: 6(int) Load 198 + Store 197(coordTemp) 199 + 201: 63 Load 65(g_tTex1df1) + 202: 6(int) Load 197(coordTemp) + 203: 18(float) ImageRead 201 202 + Store 200(storeTemp) 203 + 205: 18(float) Load 200(storeTemp) + 206: 18(float) FAdd 205 204 + Store 200(storeTemp) 206 + 207: 63 Load 65(g_tTex1df1) + 208: 6(int) Load 197(coordTemp) + 209: 18(float) Load 200(storeTemp) + ImageWrite 207 208 209 + 211: 57(ptr) AccessChain 56 48 + 212: 6(int) Load 211 + Store 210(coordTemp) 212 + 214: 76 Load 78(g_tTex1di1) + 215: 6(int) Load 210(coordTemp) + 216: 6(int) ImageRead 214 215 + Store 213(storeTemp) 216 + 217: 6(int) Load 213(storeTemp) + 218: 6(int) SDiv 217 122 + Store 213(storeTemp) 218 + 219: 76 Load 78(g_tTex1di1) + 220: 6(int) Load 210(coordTemp) + 221: 6(int) Load 213(storeTemp) + ImageWrite 219 220 221 + 223: 57(ptr) AccessChain 56 48 + 224: 6(int) Load 223 + Store 222(coordTemp) 224 + 226: 76 Load 78(g_tTex1di1) + 227: 6(int) Load 222(coordTemp) + 228: 6(int) ImageRead 226 227 + Store 225(storeTemp) 228 + 229: 6(int) Load 225(storeTemp) + 230: 6(int) SMod 229 122 + Store 225(storeTemp) 230 + 231: 76 Load 78(g_tTex1di1) + 232: 6(int) Load 222(coordTemp) + 233: 6(int) Load 225(storeTemp) + ImageWrite 231 232 233 + 235: 57(ptr) AccessChain 56 48 + 236: 6(int) Load 235 + Store 234(coordTemp) 236 + 238: 76 Load 78(g_tTex1di1) + 239: 6(int) Load 234(coordTemp) + 240: 6(int) ImageRead 238 239 + Store 237(storeTemp) 240 + 242: 6(int) Load 237(storeTemp) + 243: 6(int) BitwiseAnd 242 241 + Store 237(storeTemp) 243 + 244: 76 Load 78(g_tTex1di1) + 245: 6(int) Load 234(coordTemp) + 246: 6(int) Load 237(storeTemp) + ImageWrite 244 245 246 + 248: 57(ptr) AccessChain 56 48 + 249: 6(int) Load 248 + Store 247(coordTemp) 249 + 251: 76 Load 78(g_tTex1di1) + 252: 6(int) Load 247(coordTemp) + 253: 6(int) ImageRead 251 252 + Store 250(storeTemp) 253 + 255: 6(int) Load 250(storeTemp) + 256: 6(int) BitwiseOr 255 254 + Store 250(storeTemp) 256 + 257: 76 Load 78(g_tTex1di1) + 258: 6(int) Load 247(coordTemp) + 259: 6(int) Load 250(storeTemp) + ImageWrite 257 258 259 + 261: 57(ptr) AccessChain 56 48 + 262: 6(int) Load 261 + Store 260(coordTemp) 262 + 264: 76 Load 78(g_tTex1di1) + 265: 6(int) Load 260(coordTemp) + 266: 6(int) ImageRead 264 265 + Store 263(storeTemp) 266 + 267: 6(int) Load 263(storeTemp) + 268: 6(int) ShiftLeftLogical 267 122 + Store 263(storeTemp) 268 + 269: 76 Load 78(g_tTex1di1) + 270: 6(int) Load 260(coordTemp) + 271: 6(int) Load 263(storeTemp) + ImageWrite 269 270 271 + 273: 57(ptr) AccessChain 56 48 + 274: 6(int) Load 273 + Store 272(coordTemp) 274 + 276: 76 Load 78(g_tTex1di1) + 277: 6(int) Load 272(coordTemp) + 278: 6(int) ImageRead 276 277 + Store 275(storeTemp) 278 + 279: 6(int) Load 275(storeTemp) + 280: 6(int) ShiftRightArithmetic 279 122 + Store 275(storeTemp) 280 + 281: 76 Load 78(g_tTex1di1) + 282: 6(int) Load 272(coordTemp) + 283: 6(int) Load 275(storeTemp) + ImageWrite 281 282 283 + 285: 18(float) FunctionCall 37(SomeValue() + Store 284(storeTemp) 285 + 286: 92 Load 94(g_tTex2df1) + 287: 97(ptr) AccessChain 56 96 + 288: 51(ivec2) Load 287 + 289: 18(float) Load 284(storeTemp) + ImageWrite 286 288 289 + 290: 92 Load 94(g_tTex2df1) + 291: 97(ptr) AccessChain 56 96 + 292: 51(ivec2) Load 291 + 293: 18(float) Load 143(lf1) + ImageWrite 290 292 293 + Store 294(storeTemp) 295 + 296: 102 Load 104(g_tTex2di1) + 297: 97(ptr) AccessChain 56 96 + 298: 51(ivec2) Load 297 + 299: 6(int) Load 294(storeTemp) + ImageWrite 296 298 299 + Store 300(storeTemp) 301 + 302: 110 Load 112(g_tTex2du1) + 303: 97(ptr) AccessChain 56 96 + 304: 51(ivec2) Load 303 + 305: 12(int) Load 300(storeTemp) + ImageWrite 302 304 305 + 307: 18(float) FunctionCall 37(SomeValue() + Store 306(storeTemp) 307 + 308: 118 Load 120(g_tTex3df1) + 309: 123(ptr) AccessChain 56 122 + 310: 52(ivec3) Load 309 + 311: 18(float) Load 306(storeTemp) + ImageWrite 308 310 311 + 312: 118 Load 120(g_tTex3df1) + 313: 123(ptr) AccessChain 56 122 + 314: 52(ivec3) Load 313 + 315: 18(float) Load 143(lf1) + ImageWrite 312 314 315 + Store 316(storeTemp) 144 + 317: 128 Load 130(g_tTex3di1) + 318: 123(ptr) AccessChain 56 122 + 319: 52(ivec3) Load 318 + 320: 6(int) Load 316(storeTemp) + ImageWrite 317 319 320 + Store 321(storeTemp) 322 + 323: 136 Load 138(g_tTex3du1) + 324: 123(ptr) AccessChain 56 122 + 325: 52(ivec3) Load 324 + 326: 12(int) Load 321(storeTemp) + ImageWrite 323 325 326 + 327: 63 Load 65(g_tTex1df1) + 328: 57(ptr) AccessChain 56 48 + 329: 6(int) Load 328 + 330: 18(float) ImageRead 327 329 + Store 331(param) 330 + 332: 18(float) FunctionCall 22(Fn1(f1;) 331(param) + 333: 76 Load 78(g_tTex1di1) + 334: 57(ptr) AccessChain 56 48 + 335: 6(int) Load 334 + 336: 6(int) ImageRead 333 335 + Store 337(param) 336 + 338: 6(int) FunctionCall 10(Fn1(i1;) 337(param) + 339: 84 Load 86(g_tTex1du1) + 340: 57(ptr) AccessChain 56 48 + 341: 6(int) Load 340 + 342: 12(int) ImageRead 339 341 + Store 343(param) 342 + 344: 12(int) FunctionCall 16(Fn1(u1;) 343(param) + 347: 2 FunctionCall 34(Fn2(f1;) 346(param) + 348: 18(float) Load 346(param) + Store 345(tempArg) 348 + 349: 63 Load 65(g_tTex1df1) + 350: 57(ptr) AccessChain 56 48 + 351: 6(int) Load 350 + 352: 18(float) Load 345(tempArg) + ImageWrite 349 351 352 + 355: 2 FunctionCall 26(Fn2(i1;) 354(param) + 356: 6(int) Load 354(param) + Store 353(tempArg) 356 + 357: 76 Load 78(g_tTex1di1) + 358: 57(ptr) AccessChain 56 48 + 359: 6(int) Load 358 + 360: 6(int) Load 353(tempArg) + ImageWrite 357 359 360 + 363: 2 FunctionCall 30(Fn2(u1;) 362(param) + 364: 12(int) Load 362(param) + Store 361(tempArg) 364 + 365: 84 Load 86(g_tTex1du1) + 366: 57(ptr) AccessChain 56 48 + 367: 6(int) Load 366 + 368: 12(int) Load 361(tempArg) + ImageWrite 365 367 368 + 370: 57(ptr) AccessChain 56 48 + 371: 6(int) Load 370 + Store 369(coordTemp) 371 + 373: 63 Load 65(g_tTex1df1) + 374: 6(int) Load 369(coordTemp) + 375: 18(float) ImageRead 373 374 + Store 372(storeTemp) 375 + 376: 18(float) Load 372(storeTemp) + 378: 18(float) FAdd 376 377 + Store 372(storeTemp) 378 + 379: 63 Load 65(g_tTex1df1) + 380: 6(int) Load 369(coordTemp) + 381: 18(float) Load 372(storeTemp) + ImageWrite 379 380 381 + 383: 57(ptr) AccessChain 56 48 + 384: 6(int) Load 383 + Store 382(coordTemp) 384 + 386: 76 Load 78(g_tTex1di1) + 387: 6(int) Load 382(coordTemp) + 388: 6(int) ImageRead 386 387 + Store 385(storeTemp) 388 + 389: 6(int) Load 385(storeTemp) + 390: 6(int) IAdd 389 96 + Store 385(storeTemp) 390 + 391: 76 Load 78(g_tTex1di1) + 392: 6(int) Load 382(coordTemp) + 393: 6(int) Load 385(storeTemp) + ImageWrite 391 392 393 + 395: 57(ptr) AccessChain 56 48 + 396: 6(int) Load 395 + Store 394(coordTemp) 396 + 398: 84 Load 86(g_tTex1du1) + 399: 6(int) Load 394(coordTemp) + 400: 12(int) ImageRead 398 399 + Store 397(storeTemp) 400 + 401: 12(int) Load 397(storeTemp) + 402: 12(int) IAdd 401 96 + Store 397(storeTemp) 402 + 403: 84 Load 86(g_tTex1du1) + 404: 6(int) Load 394(coordTemp) + 405: 12(int) Load 397(storeTemp) + ImageWrite 403 404 405 + 407: 57(ptr) AccessChain 56 48 + 408: 6(int) Load 407 + Store 406(coordTemp) 408 + 410: 63 Load 65(g_tTex1df1) + 411: 6(int) Load 406(coordTemp) + 412: 18(float) ImageRead 410 411 + Store 409(storeTemp) 412 + 413: 18(float) Load 409(storeTemp) + 414: 18(float) FSub 413 377 + Store 409(storeTemp) 414 + 415: 63 Load 65(g_tTex1df1) + 416: 6(int) Load 406(coordTemp) + 417: 18(float) Load 409(storeTemp) + ImageWrite 415 416 417 + 419: 57(ptr) AccessChain 56 48 + 420: 6(int) Load 419 + Store 418(coordTemp) 420 + 422: 76 Load 78(g_tTex1di1) + 423: 6(int) Load 418(coordTemp) + 424: 6(int) ImageRead 422 423 + Store 421(storeTemp) 424 + 425: 6(int) Load 421(storeTemp) + 426: 6(int) ISub 425 96 + Store 421(storeTemp) 426 + 427: 76 Load 78(g_tTex1di1) + 428: 6(int) Load 418(coordTemp) + 429: 6(int) Load 421(storeTemp) + ImageWrite 427 428 429 + 431: 57(ptr) AccessChain 56 48 + 432: 6(int) Load 431 + Store 430(coordTemp) 432 + 434: 84 Load 86(g_tTex1du1) + 435: 6(int) Load 430(coordTemp) + 436: 12(int) ImageRead 434 435 + Store 433(storeTemp) 436 + 437: 12(int) Load 433(storeTemp) + 438: 12(int) ISub 437 96 + Store 433(storeTemp) 438 + 439: 84 Load 86(g_tTex1du1) + 440: 6(int) Load 430(coordTemp) + 441: 12(int) Load 433(storeTemp) + ImageWrite 439 440 441 + 443: 57(ptr) AccessChain 56 48 + 444: 6(int) Load 443 + Store 442(coordTemp) 444 + 446: 63 Load 65(g_tTex1df1) + 447: 6(int) Load 442(coordTemp) + 448: 18(float) ImageRead 446 447 + Store 445(storeTempPre) 448 + 450: 18(float) Load 445(storeTempPre) + Store 449(storeTempPost) 450 + 451: 18(float) Load 449(storeTempPost) + 452: 18(float) FAdd 451 377 + Store 449(storeTempPost) 452 + 453: 63 Load 65(g_tTex1df1) + 454: 6(int) Load 442(coordTemp) + 455: 18(float) Load 449(storeTempPost) + ImageWrite 453 454 455 + 457: 57(ptr) AccessChain 56 48 + 458: 6(int) Load 457 + Store 456(coordTemp) 458 + 460: 84 Load 86(g_tTex1du1) + 461: 6(int) Load 456(coordTemp) + 462: 12(int) ImageRead 460 461 + Store 459(storeTempPre) 462 + 464: 12(int) Load 459(storeTempPre) + Store 463(storeTempPost) 464 + 465: 12(int) Load 463(storeTempPost) + 466: 12(int) ISub 465 96 + Store 463(storeTempPost) 466 + 467: 84 Load 86(g_tTex1du1) + 468: 6(int) Load 456(coordTemp) + 469: 12(int) Load 463(storeTempPost) + ImageWrite 467 468 469 + 471: 57(ptr) AccessChain 56 48 + 472: 6(int) Load 471 + Store 470(coordTemp) 472 + 474: 76 Load 78(g_tTex1di1) + 475: 6(int) Load 470(coordTemp) + 476: 6(int) ImageRead 474 475 + Store 473(storeTempPre) 476 + 478: 6(int) Load 473(storeTempPre) + Store 477(storeTempPost) 478 + 479: 6(int) Load 477(storeTempPost) + 480: 6(int) IAdd 479 96 + Store 477(storeTempPost) 480 + 481: 76 Load 78(g_tTex1di1) + 482: 6(int) Load 470(coordTemp) + 483: 6(int) Load 477(storeTempPost) + ImageWrite 481 482 483 + 485: 57(ptr) AccessChain 56 48 + 486: 6(int) Load 485 + Store 484(coordTemp) 486 + 488: 63 Load 65(g_tTex1df1) + 489: 6(int) Load 484(coordTemp) + 490: 18(float) ImageRead 488 489 + Store 487(storeTempPre) 490 + 492: 18(float) Load 487(storeTempPre) + Store 491(storeTempPost) 492 + 493: 18(float) Load 491(storeTempPost) + 494: 18(float) FSub 493 377 + Store 491(storeTempPost) 494 + 495: 63 Load 65(g_tTex1df1) + 496: 6(int) Load 484(coordTemp) + 497: 18(float) Load 491(storeTempPost) + ImageWrite 495 496 497 + 499: 57(ptr) AccessChain 56 48 + 500: 6(int) Load 499 + Store 498(coordTemp) 500 + 502: 76 Load 78(g_tTex1di1) + 503: 6(int) Load 498(coordTemp) + 504: 6(int) ImageRead 502 503 + Store 501(storeTempPre) 504 + 506: 6(int) Load 501(storeTempPre) + Store 505(storeTempPost) 506 + 507: 6(int) Load 505(storeTempPost) + 508: 6(int) IAdd 507 96 + Store 505(storeTempPost) 508 + 509: 76 Load 78(g_tTex1di1) + 510: 6(int) Load 498(coordTemp) + 511: 6(int) Load 505(storeTempPost) + ImageWrite 509 510 511 + 513: 57(ptr) AccessChain 56 48 + 514: 6(int) Load 513 + Store 512(coordTemp) 514 + 516: 84 Load 86(g_tTex1du1) + 517: 6(int) Load 512(coordTemp) + 518: 12(int) ImageRead 516 517 + Store 515(storeTempPre) 518 + 520: 12(int) Load 515(storeTempPre) + Store 519(storeTempPost) 520 + 521: 12(int) Load 519(storeTempPost) + 522: 12(int) ISub 521 96 + Store 519(storeTempPost) 522 + 523: 84 Load 86(g_tTex1du1) + 524: 6(int) Load 512(coordTemp) + 525: 12(int) Load 519(storeTempPost) + ImageWrite 523 524 525 + 527: 92 Load 94(g_tTex2df1) + 530: 18(float) ImageRead 527 529 + Store 526(storeTemp) 530 + 531: 63 Load 65(g_tTex1df1) + 532: 18(float) Load 526(storeTemp) + ImageWrite 531 96 532 + 539: 538(ptr) AccessChain 536(psout) 48 + Store 539 537 + 542: 538(ptr) AccessChain 536(psout) 48 + 543: 533(fvec4) Load 542 + Store 541(Color) 543 + Return + FunctionEnd + 10(Fn1(i1;): 6(int) Function None 8 + 9(x): 7(ptr) FunctionParameter + 11: Label + 39: 6(int) Load 9(x) + ReturnValue 39 + FunctionEnd + 16(Fn1(u1;): 12(int) Function None 14 + 15(x): 13(ptr) FunctionParameter + 17: Label + 42: 12(int) Load 15(x) + ReturnValue 42 + FunctionEnd + 22(Fn1(f1;): 18(float) Function None 20 + 21(x): 19(ptr) FunctionParameter + 23: Label + 45: 18(float) Load 21(x) + ReturnValue 45 + FunctionEnd + 26(Fn2(i1;): 2 Function None 24 + 25(x): 7(ptr) FunctionParameter + 27: Label + Store 25(x) 48 + Return + FunctionEnd + 30(Fn2(u1;): 2 Function None 28 + 29(x): 13(ptr) FunctionParameter + 31: Label + Store 29(x) 49 + Return + FunctionEnd + 34(Fn2(f1;): 2 Function None 32 + 33(x): 19(ptr) FunctionParameter + 35: Label + Store 33(x) 50 + Return + FunctionEnd + 37(SomeValue(): 18(float) Function None 36 + 38: Label + 58: 57(ptr) AccessChain 56 48 + 59: 6(int) Load 58 + 60: 18(float) ConvertSToF 59 + ReturnValue 60 + FunctionEnd diff --git a/Test/baseResults/hlsl.rw.vec2.bracket.frag.out b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..7ca7e3e4bc4707af933e85bb17c5335c04e00d69 --- /dev/null +++ b/Test/baseResults/hlsl.rw.vec2.bracket.frag.out @@ -0,0 +1,2613 @@ +hlsl.rw.vec2.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi2; (temp 2-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 2-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 2-component vector of int) +0:43 Function Definition: Fn1(vu2; (temp 2-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 2-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 2-component vector of uint) +0:44 Function Definition: Fn1(vf2; (temp 2-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 2-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 2-component vector of float) +0:46 Function Definition: Fn2(vi2; (temp void) +0:46 Function Parameters: +0:46 'x' (out 2-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 2-component vector of int) +0:46 'x' (out 2-component vector of int) +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:47 Function Definition: Fn2(vu2; (temp void) +0:47 Function Parameters: +0:47 'x' (out 2-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'x' (out 2-component vector of uint) +0:? Constant: +0:? 0 (const uint) +0:? 0 (const uint) +0:48 Function Definition: Fn2(vf2; (temp void) +0:48 Function Parameters: +0:48 'x' (out 2-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'x' (out 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:50 Function Definition: SomeValue( (temp 2-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:50 Constant: +0:50 1 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 2-component vector of float) +0:57 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 2-component vector of float) +0:59 'r00' (temp 2-component vector of float) +0:59 imageLoad (temp 2-component vector of float) +0:59 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 2-component vector of int) +0:60 'r01' (temp 2-component vector of int) +0:60 imageLoad (temp 2-component vector of int) +0:60 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'r02' (temp 2-component vector of uint) +0:61 imageLoad (temp 2-component vector of uint) +0:61 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 2-component vector of float) +0:64 'r10' (temp 2-component vector of float) +0:64 imageLoad (temp 2-component vector of float) +0:64 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 2-component vector of int) +0:65 'r11' (temp 2-component vector of int) +0:65 imageLoad (temp 2-component vector of int) +0:65 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 2-component vector of uint) +0:66 'r12' (temp 2-component vector of uint) +0:66 imageLoad (temp 2-component vector of uint) +0:66 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 2-component vector of float) +0:69 'r20' (temp 2-component vector of float) +0:69 imageLoad (temp 2-component vector of float) +0:69 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 2-component vector of int) +0:70 'r21' (temp 2-component vector of int) +0:70 imageLoad (temp 2-component vector of int) +0:70 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'r22' (temp 2-component vector of uint) +0:71 imageLoad (temp 2-component vector of uint) +0:71 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of float) +0:73 'lf2' (temp 2-component vector of float) +0:73 uf2: direct index for structure (layout(offset=96 ) uniform 2-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 Function Call: SomeValue( (temp 2-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf2' (temp 2-component vector of float) +0:78 'lf2' (temp 2-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 2-component vector of float) +0:83 'val1' (temp 2-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 imageLoad (temp 2-component vector of float) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 imageLoad (temp 2-component vector of float) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 imageLoad (temp 2-component vector of float) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 imageLoad (temp 2-component vector of int) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 imageLoad (temp 2-component vector of int) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 imageLoad (temp 2-component vector of int) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 imageLoad (temp 2-component vector of int) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 imageLoad (temp 2-component vector of int) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 imageLoad (temp 2-component vector of int) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 Function Call: SomeValue( (temp 2-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf2' (temp 2-component vector of float) +0:96 'lf2' (temp 2-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 Function Call: SomeValue( (temp 2-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf2' (temp 2-component vector of float) +0:102 'lf2' (temp 2-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:107 Function Call: Fn1(vf2; (temp 2-component vector of float) +0:107 imageLoad (temp 2-component vector of float) +0:107 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi2; (temp 2-component vector of int) +0:108 imageLoad (temp 2-component vector of int) +0:108 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu2; (temp 2-component vector of uint) +0:109 imageLoad (temp 2-component vector of uint) +0:109 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf2; (temp void) +0:111 'tempArg' (temp 2-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 2-component vector of float) +0:111 'tempArg' (temp 2-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi2; (temp void) +0:112 'tempArg' (temp 2-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 2-component vector of int) +0:112 'tempArg' (temp 2-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu2; (temp void) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageLoad (temp 2-component vector of float) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageLoad (temp 2-component vector of int) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageLoad (temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageLoad (temp 2-component vector of float) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageLoad (temp 2-component vector of int) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageLoad (temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 imageLoad (temp 2-component vector of float) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 Post-Increment (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 imageLoad (temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 Post-Decrement (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 imageLoad (temp 2-component vector of int) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 Post-Increment (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 imageLoad (temp 2-component vector of float) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 Post-Decrement (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 imageLoad (temp 2-component vector of int) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 Post-Increment (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 imageLoad (temp 2-component vector of uint) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 Post-Decrement (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:? imageLoad (temp 2-component vector of float) +0:135 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:? 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:? 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:? 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:? 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:? 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:? 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:? 'g_tTex1df2a' (layout(rg32f ) uniform image1DArray) +0:? 'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray) +0:? 'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray) +0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) +0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) +0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:42 Function Definition: Fn1(vi2; (temp 2-component vector of int) +0:42 Function Parameters: +0:42 'x' (in 2-component vector of int) +0:? Sequence +0:42 Branch: Return with expression +0:42 'x' (in 2-component vector of int) +0:43 Function Definition: Fn1(vu2; (temp 2-component vector of uint) +0:43 Function Parameters: +0:43 'x' (in 2-component vector of uint) +0:? Sequence +0:43 Branch: Return with expression +0:43 'x' (in 2-component vector of uint) +0:44 Function Definition: Fn1(vf2; (temp 2-component vector of float) +0:44 Function Parameters: +0:44 'x' (in 2-component vector of float) +0:? Sequence +0:44 Branch: Return with expression +0:44 'x' (in 2-component vector of float) +0:46 Function Definition: Fn2(vi2; (temp void) +0:46 Function Parameters: +0:46 'x' (out 2-component vector of int) +0:? Sequence +0:46 move second child to first child (temp 2-component vector of int) +0:46 'x' (out 2-component vector of int) +0:? Constant: +0:? 0 (const int) +0:? 0 (const int) +0:47 Function Definition: Fn2(vu2; (temp void) +0:47 Function Parameters: +0:47 'x' (out 2-component vector of uint) +0:? Sequence +0:47 move second child to first child (temp 2-component vector of uint) +0:47 'x' (out 2-component vector of uint) +0:? Constant: +0:? 0 (const uint) +0:? 0 (const uint) +0:48 Function Definition: Fn2(vf2; (temp void) +0:48 Function Parameters: +0:48 'x' (out 2-component vector of float) +0:? Sequence +0:48 move second child to first child (temp 2-component vector of float) +0:48 'x' (out 2-component vector of float) +0:? Constant: +0:? 0.000000 +0:? 0.000000 +0:50 Function Definition: SomeValue( (temp 2-component vector of float) +0:50 Function Parameters: +0:? Sequence +0:50 Branch: Return with expression +0:50 Convert int to float (temp 2-component vector of float) +0:50 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:50 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:50 Constant: +0:50 1 (const uint) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:53 Function Parameters: +0:? Sequence +0:57 imageLoad (temp 2-component vector of float) +0:57 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:57 c1: direct index for structure (layout(offset=0 ) uniform int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:57 Constant: +0:57 0 (const uint) +0:59 Sequence +0:59 move second child to first child (temp 2-component vector of float) +0:59 'r00' (temp 2-component vector of float) +0:59 imageLoad (temp 2-component vector of float) +0:59 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:59 c1: direct index for structure (layout(offset=0 ) uniform int) +0:59 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:59 Constant: +0:59 0 (const uint) +0:60 Sequence +0:60 move second child to first child (temp 2-component vector of int) +0:60 'r01' (temp 2-component vector of int) +0:60 imageLoad (temp 2-component vector of int) +0:60 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:60 c1: direct index for structure (layout(offset=0 ) uniform int) +0:60 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:60 Constant: +0:60 0 (const uint) +0:61 Sequence +0:61 move second child to first child (temp 2-component vector of uint) +0:61 'r02' (temp 2-component vector of uint) +0:61 imageLoad (temp 2-component vector of uint) +0:61 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:61 c1: direct index for structure (layout(offset=0 ) uniform int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:61 Constant: +0:61 0 (const uint) +0:64 Sequence +0:64 move second child to first child (temp 2-component vector of float) +0:64 'r10' (temp 2-component vector of float) +0:64 imageLoad (temp 2-component vector of float) +0:64 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:64 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:64 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:64 Constant: +0:64 1 (const uint) +0:65 Sequence +0:65 move second child to first child (temp 2-component vector of int) +0:65 'r11' (temp 2-component vector of int) +0:65 imageLoad (temp 2-component vector of int) +0:65 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:65 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:65 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:65 Constant: +0:65 1 (const uint) +0:66 Sequence +0:66 move second child to first child (temp 2-component vector of uint) +0:66 'r12' (temp 2-component vector of uint) +0:66 imageLoad (temp 2-component vector of uint) +0:66 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:66 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:66 Constant: +0:66 1 (const uint) +0:69 Sequence +0:69 move second child to first child (temp 2-component vector of float) +0:69 'r20' (temp 2-component vector of float) +0:69 imageLoad (temp 2-component vector of float) +0:69 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:69 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:69 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:69 Constant: +0:69 2 (const uint) +0:70 Sequence +0:70 move second child to first child (temp 2-component vector of int) +0:70 'r21' (temp 2-component vector of int) +0:70 imageLoad (temp 2-component vector of int) +0:70 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:70 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:70 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:70 Constant: +0:70 2 (const uint) +0:71 Sequence +0:71 move second child to first child (temp 2-component vector of uint) +0:71 'r22' (temp 2-component vector of uint) +0:71 imageLoad (temp 2-component vector of uint) +0:71 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:71 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:71 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:71 Constant: +0:71 2 (const uint) +0:73 Sequence +0:73 move second child to first child (temp 2-component vector of float) +0:73 'lf2' (temp 2-component vector of float) +0:73 uf2: direct index for structure (layout(offset=96 ) uniform 2-component vector of float) +0:73 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:73 Constant: +0:73 8 (const uint) +0:77 Sequence +0:77 move second child to first child (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 Function Call: SomeValue( (temp 2-component vector of float) +0:77 imageStore (temp void) +0:77 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:77 c1: direct index for structure (layout(offset=0 ) uniform int) +0:77 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:77 Constant: +0:77 0 (const uint) +0:77 'storeTemp' (temp 2-component vector of float) +0:77 'storeTemp' (temp 2-component vector of float) +0:78 Sequence +0:78 imageStore (temp void) +0:78 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:78 c1: direct index for structure (layout(offset=0 ) uniform int) +0:78 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:78 Constant: +0:78 0 (const uint) +0:78 'lf2' (temp 2-component vector of float) +0:78 'lf2' (temp 2-component vector of float) +0:79 Sequence +0:79 move second child to first child (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 2 (const int) +0:? 2 (const int) +0:79 imageStore (temp void) +0:79 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:79 c1: direct index for structure (layout(offset=0 ) uniform int) +0:79 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:79 Constant: +0:79 0 (const uint) +0:79 'storeTemp' (temp 2-component vector of int) +0:79 'storeTemp' (temp 2-component vector of int) +0:80 Sequence +0:80 move second child to first child (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 3 (const uint) +0:? 2 (const uint) +0:80 imageStore (temp void) +0:80 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:80 c1: direct index for structure (layout(offset=0 ) uniform int) +0:80 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:80 Constant: +0:80 0 (const uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:80 'storeTemp' (temp 2-component vector of uint) +0:83 Sequence +0:83 move second child to first child (temp 2-component vector of float) +0:83 'val1' (temp 2-component vector of float) +0:83 Sequence +0:83 move second child to first child (temp int) +0:83 'coordTemp' (temp int) +0:83 c1: direct index for structure (layout(offset=0 ) uniform int) +0:83 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:83 Constant: +0:83 0 (const uint) +0:83 move second child to first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 imageLoad (temp 2-component vector of float) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 vector scale second child into first child (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 Constant: +0:83 2.000000 +0:83 imageStore (temp void) +0:83 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:83 'coordTemp' (temp int) +0:83 'storeTemp' (temp 2-component vector of float) +0:83 'storeTemp' (temp 2-component vector of float) +0:84 Sequence +0:84 move second child to first child (temp int) +0:84 'coordTemp' (temp int) +0:84 c1: direct index for structure (layout(offset=0 ) uniform int) +0:84 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:84 Constant: +0:84 0 (const uint) +0:84 move second child to first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 imageLoad (temp 2-component vector of float) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 subtract second child into first child (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 Constant: +0:84 3.000000 +0:84 imageStore (temp void) +0:84 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:84 'coordTemp' (temp int) +0:84 'storeTemp' (temp 2-component vector of float) +0:84 'storeTemp' (temp 2-component vector of float) +0:85 Sequence +0:85 move second child to first child (temp int) +0:85 'coordTemp' (temp int) +0:85 c1: direct index for structure (layout(offset=0 ) uniform int) +0:85 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:85 Constant: +0:85 0 (const uint) +0:85 move second child to first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 imageLoad (temp 2-component vector of float) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 add second child into first child (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 Constant: +0:85 4.000000 +0:85 imageStore (temp void) +0:85 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:85 'coordTemp' (temp int) +0:85 'storeTemp' (temp 2-component vector of float) +0:85 'storeTemp' (temp 2-component vector of float) +0:87 Sequence +0:87 move second child to first child (temp int) +0:87 'coordTemp' (temp int) +0:87 c1: direct index for structure (layout(offset=0 ) uniform int) +0:87 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:87 Constant: +0:87 0 (const uint) +0:87 move second child to first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 imageLoad (temp 2-component vector of int) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 divide second child into first child (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 Constant: +0:87 2 (const int) +0:87 imageStore (temp void) +0:87 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:87 'coordTemp' (temp int) +0:87 'storeTemp' (temp 2-component vector of int) +0:87 'storeTemp' (temp 2-component vector of int) +0:88 Sequence +0:88 move second child to first child (temp int) +0:88 'coordTemp' (temp int) +0:88 c1: direct index for structure (layout(offset=0 ) uniform int) +0:88 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:88 Constant: +0:88 0 (const uint) +0:88 move second child to first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 imageLoad (temp 2-component vector of int) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 mod second child into first child (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 Constant: +0:88 2 (const int) +0:88 imageStore (temp void) +0:88 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:88 'coordTemp' (temp int) +0:88 'storeTemp' (temp 2-component vector of int) +0:88 'storeTemp' (temp 2-component vector of int) +0:89 Sequence +0:89 move second child to first child (temp int) +0:89 'coordTemp' (temp int) +0:89 c1: direct index for structure (layout(offset=0 ) uniform int) +0:89 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:89 Constant: +0:89 0 (const uint) +0:89 move second child to first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 imageLoad (temp 2-component vector of int) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 and second child into first child (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 Constant: +0:89 65535 (const int) +0:89 imageStore (temp void) +0:89 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:89 'coordTemp' (temp int) +0:89 'storeTemp' (temp 2-component vector of int) +0:89 'storeTemp' (temp 2-component vector of int) +0:90 Sequence +0:90 move second child to first child (temp int) +0:90 'coordTemp' (temp int) +0:90 c1: direct index for structure (layout(offset=0 ) uniform int) +0:90 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:90 Constant: +0:90 0 (const uint) +0:90 move second child to first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 imageLoad (temp 2-component vector of int) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 or second child into first child (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 Constant: +0:90 61680 (const int) +0:90 imageStore (temp void) +0:90 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:90 'coordTemp' (temp int) +0:90 'storeTemp' (temp 2-component vector of int) +0:90 'storeTemp' (temp 2-component vector of int) +0:91 Sequence +0:91 move second child to first child (temp int) +0:91 'coordTemp' (temp int) +0:91 c1: direct index for structure (layout(offset=0 ) uniform int) +0:91 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:91 Constant: +0:91 0 (const uint) +0:91 move second child to first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 imageLoad (temp 2-component vector of int) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 left shift second child into first child (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 Constant: +0:91 2 (const int) +0:91 imageStore (temp void) +0:91 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:91 'coordTemp' (temp int) +0:91 'storeTemp' (temp 2-component vector of int) +0:91 'storeTemp' (temp 2-component vector of int) +0:92 Sequence +0:92 move second child to first child (temp int) +0:92 'coordTemp' (temp int) +0:92 c1: direct index for structure (layout(offset=0 ) uniform int) +0:92 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:92 Constant: +0:92 0 (const uint) +0:92 move second child to first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 imageLoad (temp 2-component vector of int) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 right shift second child into first child (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 Constant: +0:92 2 (const int) +0:92 imageStore (temp void) +0:92 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:92 'coordTemp' (temp int) +0:92 'storeTemp' (temp 2-component vector of int) +0:92 'storeTemp' (temp 2-component vector of int) +0:95 Sequence +0:95 move second child to first child (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 Function Call: SomeValue( (temp 2-component vector of float) +0:95 imageStore (temp void) +0:95 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:95 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:95 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:95 Constant: +0:95 1 (const uint) +0:95 'storeTemp' (temp 2-component vector of float) +0:95 'storeTemp' (temp 2-component vector of float) +0:96 Sequence +0:96 imageStore (temp void) +0:96 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:96 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:96 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:96 Constant: +0:96 1 (const uint) +0:96 'lf2' (temp 2-component vector of float) +0:96 'lf2' (temp 2-component vector of float) +0:97 Sequence +0:97 move second child to first child (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 5 (const int) +0:? 2 (const int) +0:97 imageStore (temp void) +0:97 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:97 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:97 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:97 Constant: +0:97 1 (const uint) +0:97 'storeTemp' (temp 2-component vector of int) +0:97 'storeTemp' (temp 2-component vector of int) +0:98 Sequence +0:98 move second child to first child (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 6 (const uint) +0:? 2 (const uint) +0:98 imageStore (temp void) +0:98 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:98 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:98 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:98 Constant: +0:98 1 (const uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:98 'storeTemp' (temp 2-component vector of uint) +0:101 Sequence +0:101 move second child to first child (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 Function Call: SomeValue( (temp 2-component vector of float) +0:101 imageStore (temp void) +0:101 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:101 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:101 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:101 Constant: +0:101 2 (const uint) +0:101 'storeTemp' (temp 2-component vector of float) +0:101 'storeTemp' (temp 2-component vector of float) +0:102 Sequence +0:102 imageStore (temp void) +0:102 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:102 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:102 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:102 Constant: +0:102 2 (const uint) +0:102 'lf2' (temp 2-component vector of float) +0:102 'lf2' (temp 2-component vector of float) +0:103 Sequence +0:103 move second child to first child (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:? Constant: +0:? 8 (const int) +0:? 6 (const int) +0:103 imageStore (temp void) +0:103 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:103 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:103 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:103 Constant: +0:103 2 (const uint) +0:103 'storeTemp' (temp 2-component vector of int) +0:103 'storeTemp' (temp 2-component vector of int) +0:104 Sequence +0:104 move second child to first child (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:? Constant: +0:? 9 (const uint) +0:? 2 (const uint) +0:104 imageStore (temp void) +0:104 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:104 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:104 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:104 Constant: +0:104 2 (const uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:104 'storeTemp' (temp 2-component vector of uint) +0:107 Function Call: Fn1(vf2; (temp 2-component vector of float) +0:107 imageLoad (temp 2-component vector of float) +0:107 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:107 c1: direct index for structure (layout(offset=0 ) uniform int) +0:107 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:107 Constant: +0:107 0 (const uint) +0:108 Function Call: Fn1(vi2; (temp 2-component vector of int) +0:108 imageLoad (temp 2-component vector of int) +0:108 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:108 c1: direct index for structure (layout(offset=0 ) uniform int) +0:108 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:108 Constant: +0:108 0 (const uint) +0:109 Function Call: Fn1(vu2; (temp 2-component vector of uint) +0:109 imageLoad (temp 2-component vector of uint) +0:109 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:109 c1: direct index for structure (layout(offset=0 ) uniform int) +0:109 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:109 Constant: +0:109 0 (const uint) +0:111 Comma (temp void) +0:111 Function Call: Fn2(vf2; (temp void) +0:111 'tempArg' (temp 2-component vector of float) +0:111 Sequence +0:111 imageStore (temp void) +0:111 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:111 c1: direct index for structure (layout(offset=0 ) uniform int) +0:111 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:111 Constant: +0:111 0 (const uint) +0:111 'tempArg' (temp 2-component vector of float) +0:111 'tempArg' (temp 2-component vector of float) +0:112 Comma (temp void) +0:112 Function Call: Fn2(vi2; (temp void) +0:112 'tempArg' (temp 2-component vector of int) +0:112 Sequence +0:112 imageStore (temp void) +0:112 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:112 c1: direct index for structure (layout(offset=0 ) uniform int) +0:112 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:112 Constant: +0:112 0 (const uint) +0:112 'tempArg' (temp 2-component vector of int) +0:112 'tempArg' (temp 2-component vector of int) +0:113 Comma (temp void) +0:113 Function Call: Fn2(vu2; (temp void) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 Sequence +0:113 imageStore (temp void) +0:113 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:113 c1: direct index for structure (layout(offset=0 ) uniform int) +0:113 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:113 Constant: +0:113 0 (const uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:113 'tempArg' (temp 2-component vector of uint) +0:117 Sequence +0:117 move second child to first child (temp int) +0:117 'coordTemp' (temp int) +0:117 c1: direct index for structure (layout(offset=0 ) uniform int) +0:117 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:117 Constant: +0:117 0 (const uint) +0:117 move second child to first child (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageLoad (temp 2-component vector of float) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 Pre-Increment (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 imageStore (temp void) +0:117 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:117 'coordTemp' (temp int) +0:117 'storeTemp' (temp 2-component vector of float) +0:117 'storeTemp' (temp 2-component vector of float) +0:118 Sequence +0:118 move second child to first child (temp int) +0:118 'coordTemp' (temp int) +0:118 c1: direct index for structure (layout(offset=0 ) uniform int) +0:118 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:118 Constant: +0:118 0 (const uint) +0:118 move second child to first child (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageLoad (temp 2-component vector of int) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 Pre-Increment (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 imageStore (temp void) +0:118 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:118 'coordTemp' (temp int) +0:118 'storeTemp' (temp 2-component vector of int) +0:118 'storeTemp' (temp 2-component vector of int) +0:119 Sequence +0:119 move second child to first child (temp int) +0:119 'coordTemp' (temp int) +0:119 c1: direct index for structure (layout(offset=0 ) uniform int) +0:119 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:119 Constant: +0:119 0 (const uint) +0:119 move second child to first child (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageLoad (temp 2-component vector of uint) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 Pre-Increment (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 imageStore (temp void) +0:119 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:119 'coordTemp' (temp int) +0:119 'storeTemp' (temp 2-component vector of uint) +0:119 'storeTemp' (temp 2-component vector of uint) +0:121 Sequence +0:121 move second child to first child (temp int) +0:121 'coordTemp' (temp int) +0:121 c1: direct index for structure (layout(offset=0 ) uniform int) +0:121 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:121 Constant: +0:121 0 (const uint) +0:121 move second child to first child (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageLoad (temp 2-component vector of float) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 Pre-Decrement (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 imageStore (temp void) +0:121 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:121 'coordTemp' (temp int) +0:121 'storeTemp' (temp 2-component vector of float) +0:121 'storeTemp' (temp 2-component vector of float) +0:122 Sequence +0:122 move second child to first child (temp int) +0:122 'coordTemp' (temp int) +0:122 c1: direct index for structure (layout(offset=0 ) uniform int) +0:122 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:122 Constant: +0:122 0 (const uint) +0:122 move second child to first child (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageLoad (temp 2-component vector of int) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 Pre-Decrement (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 imageStore (temp void) +0:122 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:122 'coordTemp' (temp int) +0:122 'storeTemp' (temp 2-component vector of int) +0:122 'storeTemp' (temp 2-component vector of int) +0:123 Sequence +0:123 move second child to first child (temp int) +0:123 'coordTemp' (temp int) +0:123 c1: direct index for structure (layout(offset=0 ) uniform int) +0:123 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:123 Constant: +0:123 0 (const uint) +0:123 move second child to first child (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageLoad (temp 2-component vector of uint) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 Pre-Decrement (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 imageStore (temp void) +0:123 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:123 'coordTemp' (temp int) +0:123 'storeTemp' (temp 2-component vector of uint) +0:123 'storeTemp' (temp 2-component vector of uint) +0:126 Sequence +0:126 move second child to first child (temp int) +0:126 'coordTemp' (temp int) +0:126 c1: direct index for structure (layout(offset=0 ) uniform int) +0:126 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:126 Constant: +0:126 0 (const uint) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 imageLoad (temp 2-component vector of float) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 move second child to first child (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:126 Post-Increment (temp 2-component vector of float) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 imageStore (temp void) +0:126 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:126 'coordTemp' (temp int) +0:126 'storeTempPost' (temp 2-component vector of float) +0:126 'storeTempPre' (temp 2-component vector of float) +0:127 Sequence +0:127 move second child to first child (temp int) +0:127 'coordTemp' (temp int) +0:127 c1: direct index for structure (layout(offset=0 ) uniform int) +0:127 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:127 Constant: +0:127 0 (const uint) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 imageLoad (temp 2-component vector of uint) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 move second child to first child (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:127 Post-Decrement (temp 2-component vector of uint) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 imageStore (temp void) +0:127 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:127 'coordTemp' (temp int) +0:127 'storeTempPost' (temp 2-component vector of uint) +0:127 'storeTempPre' (temp 2-component vector of uint) +0:128 Sequence +0:128 move second child to first child (temp int) +0:128 'coordTemp' (temp int) +0:128 c1: direct index for structure (layout(offset=0 ) uniform int) +0:128 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:128 Constant: +0:128 0 (const uint) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 imageLoad (temp 2-component vector of int) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 move second child to first child (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:128 Post-Increment (temp 2-component vector of int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 imageStore (temp void) +0:128 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:128 'coordTemp' (temp int) +0:128 'storeTempPost' (temp 2-component vector of int) +0:128 'storeTempPre' (temp 2-component vector of int) +0:130 Sequence +0:130 move second child to first child (temp int) +0:130 'coordTemp' (temp int) +0:130 c1: direct index for structure (layout(offset=0 ) uniform int) +0:130 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:130 Constant: +0:130 0 (const uint) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 imageLoad (temp 2-component vector of float) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 move second child to first child (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:130 Post-Decrement (temp 2-component vector of float) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 imageStore (temp void) +0:130 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:130 'coordTemp' (temp int) +0:130 'storeTempPost' (temp 2-component vector of float) +0:130 'storeTempPre' (temp 2-component vector of float) +0:131 Sequence +0:131 move second child to first child (temp int) +0:131 'coordTemp' (temp int) +0:131 c1: direct index for structure (layout(offset=0 ) uniform int) +0:131 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:131 Constant: +0:131 0 (const uint) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 imageLoad (temp 2-component vector of int) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 move second child to first child (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:131 Post-Increment (temp 2-component vector of int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 imageStore (temp void) +0:131 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:131 'coordTemp' (temp int) +0:131 'storeTempPost' (temp 2-component vector of int) +0:131 'storeTempPre' (temp 2-component vector of int) +0:132 Sequence +0:132 move second child to first child (temp int) +0:132 'coordTemp' (temp int) +0:132 c1: direct index for structure (layout(offset=0 ) uniform int) +0:132 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) +0:132 Constant: +0:132 0 (const uint) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 imageLoad (temp 2-component vector of uint) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 move second child to first child (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:132 Post-Decrement (temp 2-component vector of uint) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 imageStore (temp void) +0:132 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:132 'coordTemp' (temp int) +0:132 'storeTempPost' (temp 2-component vector of uint) +0:132 'storeTempPre' (temp 2-component vector of uint) +0:135 Sequence +0:135 move second child to first child (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:? imageLoad (temp 2-component vector of float) +0:135 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? Constant: +0:? 2 (const int) +0:? 3 (const int) +0:135 imageStore (temp void) +0:135 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:135 Constant: +0:135 1 (const int) +0:135 'storeTemp' (temp 2-component vector of float) +0:135 'storeTemp' (temp 2-component vector of float) +0:137 move second child to first child (temp 4-component vector of float) +0:137 Color: direct index for structure (temp 4-component vector of float) +0:137 'psout' (temp structure{temp 4-component vector of float Color}) +0:137 Constant: +0:137 0 (const int) +0:137 Constant: +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:137 1.000000 +0:139 Sequence +0:139 Sequence +0:139 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:139 Color: direct index for structure (temp 4-component vector of float) +0:139 'psout' (temp structure{temp 4-component vector of float Color}) +0:139 Constant: +0:139 0 (const int) +0:139 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df2' (layout(rg32f ) uniform image1D) +0:? 'g_tTex1di2' (layout(rg32i ) uniform iimage1D) +0:? 'g_tTex1du2' (layout(rg32ui ) uniform uimage1D) +0:? 'g_tTex2df2' (layout(rg32f ) uniform image2D) +0:? 'g_tTex2di2' (layout(rg32i ) uniform iimage2D) +0:? 'g_tTex2du2' (layout(rg32ui ) uniform uimage2D) +0:? 'g_tTex3df2' (layout(rg32f ) uniform image3D) +0:? 'g_tTex3di2' (layout(rg32i ) uniform iimage3D) +0:? 'g_tTex3du2' (layout(rg32ui ) uniform uimage3D) +0:? 'g_tTex1df2a' (layout(rg32f ) uniform image1DArray) +0:? 'g_tTex1di2a' (layout(rg32i ) uniform iimage1DArray) +0:? 'g_tTex1du2a' (layout(rg32ui ) uniform uimage1DArray) +0:? 'g_tTex2df2a' (layout(rg32f ) uniform image2DArray) +0:? 'g_tTex2di2a' (layout(rg32i ) uniform iimage2DArray) +0:? 'g_tTex2du2a' (layout(rg32ui ) uniform uimage2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4, layout(offset=96 ) uniform 2-component vector of float uf2, layout(offset=104 ) uniform 2-component vector of int ui2, layout(offset=112 ) uniform 2-component vector of uint uu2}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 600 + + Capability Shader + Capability Sampled1D + Capability StorageImageExtendedFormats + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 575 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi2;" + Name 10 "x" + Name 18 "Fn1(vu2;" + Name 17 "x" + Name 25 "Fn1(vf2;" + Name 24 "x" + Name 29 "Fn2(vi2;" + Name 28 "x" + Name 33 "Fn2(vu2;" + Name 32 "x" + Name 37 "Fn2(vf2;" + Name 36 "x" + Name 40 "SomeValue(" + Name 59 "$Global" + MemberName 59($Global) 0 "c1" + MemberName 59($Global) 1 "c2" + MemberName 59($Global) 2 "c3" + MemberName 59($Global) 3 "c4" + MemberName 59($Global) 4 "o1" + MemberName 59($Global) 5 "o2" + MemberName 59($Global) 6 "o3" + MemberName 59($Global) 7 "o4" + MemberName 59($Global) 8 "uf2" + MemberName 59($Global) 9 "ui2" + MemberName 59($Global) 10 "uu2" + Name 61 "" + Name 71 "g_tTex1df2" + Name 77 "r00" + Name 82 "r01" + Name 85 "g_tTex1di2" + Name 90 "r02" + Name 93 "g_tTex1du2" + Name 98 "r10" + Name 101 "g_tTex2df2" + Name 106 "r11" + Name 109 "g_tTex2di2" + Name 114 "r12" + Name 117 "g_tTex2du2" + Name 122 "r20" + Name 125 "g_tTex3df2" + Name 132 "r21" + Name 135 "g_tTex3di2" + Name 140 "r22" + Name 143 "g_tTex3du2" + Name 148 "lf2" + Name 153 "storeTemp" + Name 163 "storeTemp" + Name 169 "storeTemp" + Name 177 "val1" + Name 179 "coordTemp" + Name 182 "storeTemp" + Name 193 "coordTemp" + Name 196 "storeTemp" + Name 207 "coordTemp" + Name 210 "storeTemp" + Name 221 "coordTemp" + Name 224 "storeTemp" + Name 234 "coordTemp" + Name 237 "storeTemp" + Name 247 "coordTemp" + Name 250 "storeTemp" + Name 261 "coordTemp" + Name 264 "storeTemp" + Name 275 "coordTemp" + Name 278 "storeTemp" + Name 288 "coordTemp" + Name 291 "storeTemp" + Name 301 "storeTemp" + Name 311 "storeTemp" + Name 318 "storeTemp" + Name 325 "storeTemp" + Name 335 "storeTemp" + Name 342 "storeTemp" + Name 353 "param" + Name 359 "param" + Name 365 "param" + Name 367 "tempArg" + Name 368 "param" + Name 375 "tempArg" + Name 376 "param" + Name 383 "tempArg" + Name 384 "param" + Name 391 "coordTemp" + Name 394 "storeTemp" + Name 405 "coordTemp" + Name 408 "storeTemp" + Name 418 "coordTemp" + Name 421 "storeTemp" + Name 431 "coordTemp" + Name 434 "storeTemp" + Name 444 "coordTemp" + Name 447 "storeTemp" + Name 457 "coordTemp" + Name 460 "storeTemp" + Name 470 "coordTemp" + Name 473 "storeTempPre" + Name 477 "storeTempPost" + Name 485 "coordTemp" + Name 488 "storeTempPre" + Name 492 "storeTempPost" + Name 500 "coordTemp" + Name 503 "storeTempPre" + Name 507 "storeTempPost" + Name 515 "coordTemp" + Name 518 "storeTempPre" + Name 522 "storeTempPost" + Name 530 "coordTemp" + Name 533 "storeTempPre" + Name 537 "storeTempPost" + Name 545 "coordTemp" + Name 548 "storeTempPre" + Name 552 "storeTempPost" + Name 560 "storeTemp" + Name 568 "PS_OUTPUT" + MemberName 568(PS_OUTPUT) 0 "Color" + Name 570 "psout" + Name 575 "Color" + Name 581 "g_sSamp" + Name 584 "g_tTex1df2a" + Name 587 "g_tTex1di2a" + Name 590 "g_tTex1du2a" + Name 593 "g_tTex2df2a" + Name 596 "g_tTex2di2a" + Name 599 "g_tTex2du2a" + MemberDecorate 59($Global) 0 Offset 0 + MemberDecorate 59($Global) 1 Offset 8 + MemberDecorate 59($Global) 2 Offset 16 + MemberDecorate 59($Global) 3 Offset 32 + MemberDecorate 59($Global) 4 Offset 48 + MemberDecorate 59($Global) 5 Offset 56 + MemberDecorate 59($Global) 6 Offset 64 + MemberDecorate 59($Global) 7 Offset 80 + MemberDecorate 59($Global) 8 Offset 96 + MemberDecorate 59($Global) 9 Offset 104 + MemberDecorate 59($Global) 10 Offset 112 + Decorate 59($Global) Block + Decorate 61 DescriptorSet 0 + Decorate 71(g_tTex1df2) DescriptorSet 0 + Decorate 85(g_tTex1di2) DescriptorSet 0 + Decorate 93(g_tTex1du2) DescriptorSet 0 + Decorate 101(g_tTex2df2) DescriptorSet 0 + Decorate 109(g_tTex2di2) DescriptorSet 0 + Decorate 117(g_tTex2du2) DescriptorSet 0 + Decorate 125(g_tTex3df2) DescriptorSet 0 + Decorate 135(g_tTex3di2) DescriptorSet 0 + Decorate 143(g_tTex3du2) DescriptorSet 0 + Decorate 575(Color) Location 0 + Decorate 581(g_sSamp) DescriptorSet 0 + Decorate 581(g_sSamp) Binding 0 + Decorate 584(g_tTex1df2a) DescriptorSet 0 + Decorate 587(g_tTex1di2a) DescriptorSet 0 + Decorate 590(g_tTex1du2a) DescriptorSet 0 + Decorate 593(g_tTex2df2a) DescriptorSet 0 + Decorate 596(g_tTex2di2a) DescriptorSet 0 + Decorate 599(g_tTex2du2a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 2 + 8: TypePointer Function 7(ivec2) + 9: TypeFunction 7(ivec2) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 2 + 15: TypePointer Function 14(ivec2) + 16: TypeFunction 14(ivec2) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 2 + 22: TypePointer Function 21(fvec2) + 23: TypeFunction 21(fvec2) 22(ptr) + 27: TypeFunction 2 8(ptr) + 31: TypeFunction 2 15(ptr) + 35: TypeFunction 2 22(ptr) + 39: TypeFunction 21(fvec2) + 51: 6(int) Constant 0 + 52: 7(ivec2) ConstantComposite 51 51 + 53: 13(int) Constant 0 + 54: 14(ivec2) ConstantComposite 53 53 + 55: 20(float) Constant 0 + 56: 21(fvec2) ConstantComposite 55 55 + 57: TypeVector 6(int) 3 + 58: TypeVector 6(int) 4 + 59($Global): TypeStruct 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 6(int) 7(ivec2) 57(ivec3) 58(ivec4) 21(fvec2) 7(ivec2) 14(ivec2) + 60: TypePointer Uniform 59($Global) + 61: 60(ptr) Variable Uniform + 62: 6(int) Constant 1 + 63: TypePointer Uniform 7(ivec2) + 69: TypeImage 20(float) 1D nonsampled format:Rg32f + 70: TypePointer UniformConstant 69 + 71(g_tTex1df2): 70(ptr) Variable UniformConstant + 73: TypePointer Uniform 6(int) + 83: TypeImage 6(int) 1D nonsampled format:Rg32i + 84: TypePointer UniformConstant 83 + 85(g_tTex1di2): 84(ptr) Variable UniformConstant + 91: TypeImage 13(int) 1D nonsampled format:Rg32ui + 92: TypePointer UniformConstant 91 + 93(g_tTex1du2): 92(ptr) Variable UniformConstant + 99: TypeImage 20(float) 2D nonsampled format:Rg32f + 100: TypePointer UniformConstant 99 + 101(g_tTex2df2): 100(ptr) Variable UniformConstant + 107: TypeImage 6(int) 2D nonsampled format:Rg32i + 108: TypePointer UniformConstant 107 + 109(g_tTex2di2): 108(ptr) Variable UniformConstant + 115: TypeImage 13(int) 2D nonsampled format:Rg32ui + 116: TypePointer UniformConstant 115 + 117(g_tTex2du2): 116(ptr) Variable UniformConstant + 123: TypeImage 20(float) 3D nonsampled format:Rg32f + 124: TypePointer UniformConstant 123 + 125(g_tTex3df2): 124(ptr) Variable UniformConstant + 127: 6(int) Constant 2 + 128: TypePointer Uniform 57(ivec3) + 133: TypeImage 6(int) 3D nonsampled format:Rg32i + 134: TypePointer UniformConstant 133 + 135(g_tTex3di2): 134(ptr) Variable UniformConstant + 141: TypeImage 13(int) 3D nonsampled format:Rg32ui + 142: TypePointer UniformConstant 141 + 143(g_tTex3du2): 142(ptr) Variable UniformConstant + 149: 6(int) Constant 8 + 150: TypePointer Uniform 21(fvec2) + 164: 7(ivec2) ConstantComposite 127 127 + 170: 13(int) Constant 3 + 171: 13(int) Constant 2 + 172: 14(ivec2) ConstantComposite 170 171 + 178: TypePointer Function 6(int) + 186: 20(float) Constant 1073741824 + 200: 20(float) Constant 1077936128 + 214: 20(float) Constant 1082130432 + 254: 6(int) Constant 65535 + 268: 6(int) Constant 61680 + 312: 6(int) Constant 5 + 313: 7(ivec2) ConstantComposite 312 127 + 319: 13(int) Constant 6 + 320: 14(ivec2) ConstantComposite 319 171 + 336: 6(int) Constant 6 + 337: 7(ivec2) ConstantComposite 149 336 + 343: 13(int) Constant 9 + 344: 14(ivec2) ConstantComposite 343 171 + 399: 20(float) Constant 1065353216 + 562: 6(int) Constant 3 + 563: 7(ivec2) ConstantComposite 127 562 + 567: TypeVector 20(float) 4 + 568(PS_OUTPUT): TypeStruct 567(fvec4) + 569: TypePointer Function 568(PS_OUTPUT) + 571: 567(fvec4) ConstantComposite 399 399 399 399 + 572: TypePointer Function 567(fvec4) + 574: TypePointer Output 567(fvec4) + 575(Color): 574(ptr) Variable Output + 579: TypeSampler + 580: TypePointer UniformConstant 579 + 581(g_sSamp): 580(ptr) Variable UniformConstant + 582: TypeImage 20(float) 1D array nonsampled format:Rg32f + 583: TypePointer UniformConstant 582 +584(g_tTex1df2a): 583(ptr) Variable UniformConstant + 585: TypeImage 6(int) 1D array nonsampled format:Rg32i + 586: TypePointer UniformConstant 585 +587(g_tTex1di2a): 586(ptr) Variable UniformConstant + 588: TypeImage 13(int) 1D array nonsampled format:Rg32ui + 589: TypePointer UniformConstant 588 +590(g_tTex1du2a): 589(ptr) Variable UniformConstant + 591: TypeImage 20(float) 2D array nonsampled format:Rg32f + 592: TypePointer UniformConstant 591 +593(g_tTex2df2a): 592(ptr) Variable UniformConstant + 594: TypeImage 6(int) 2D array nonsampled format:Rg32i + 595: TypePointer UniformConstant 594 +596(g_tTex2di2a): 595(ptr) Variable UniformConstant + 597: TypeImage 13(int) 2D array nonsampled format:Rg32ui + 598: TypePointer UniformConstant 597 +599(g_tTex2du2a): 598(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 77(r00): 22(ptr) Variable Function + 82(r01): 8(ptr) Variable Function + 90(r02): 15(ptr) Variable Function + 98(r10): 22(ptr) Variable Function + 106(r11): 8(ptr) Variable Function + 114(r12): 15(ptr) Variable Function + 122(r20): 22(ptr) Variable Function + 132(r21): 8(ptr) Variable Function + 140(r22): 15(ptr) Variable Function + 148(lf2): 22(ptr) Variable Function + 153(storeTemp): 22(ptr) Variable Function + 163(storeTemp): 8(ptr) Variable Function + 169(storeTemp): 15(ptr) Variable Function + 177(val1): 22(ptr) Variable Function + 179(coordTemp): 178(ptr) Variable Function + 182(storeTemp): 22(ptr) Variable Function + 193(coordTemp): 178(ptr) Variable Function + 196(storeTemp): 22(ptr) Variable Function + 207(coordTemp): 178(ptr) Variable Function + 210(storeTemp): 22(ptr) Variable Function + 221(coordTemp): 178(ptr) Variable Function + 224(storeTemp): 8(ptr) Variable Function + 234(coordTemp): 178(ptr) Variable Function + 237(storeTemp): 8(ptr) Variable Function + 247(coordTemp): 178(ptr) Variable Function + 250(storeTemp): 8(ptr) Variable Function + 261(coordTemp): 178(ptr) Variable Function + 264(storeTemp): 8(ptr) Variable Function + 275(coordTemp): 178(ptr) Variable Function + 278(storeTemp): 8(ptr) Variable Function + 288(coordTemp): 178(ptr) Variable Function + 291(storeTemp): 8(ptr) Variable Function + 301(storeTemp): 22(ptr) Variable Function + 311(storeTemp): 8(ptr) Variable Function + 318(storeTemp): 15(ptr) Variable Function + 325(storeTemp): 22(ptr) Variable Function + 335(storeTemp): 8(ptr) Variable Function + 342(storeTemp): 15(ptr) Variable Function + 353(param): 22(ptr) Variable Function + 359(param): 8(ptr) Variable Function + 365(param): 15(ptr) Variable Function + 367(tempArg): 22(ptr) Variable Function + 368(param): 22(ptr) Variable Function + 375(tempArg): 8(ptr) Variable Function + 376(param): 8(ptr) Variable Function + 383(tempArg): 15(ptr) Variable Function + 384(param): 15(ptr) Variable Function + 391(coordTemp): 178(ptr) Variable Function + 394(storeTemp): 22(ptr) Variable Function + 405(coordTemp): 178(ptr) Variable Function + 408(storeTemp): 8(ptr) Variable Function + 418(coordTemp): 178(ptr) Variable Function + 421(storeTemp): 15(ptr) Variable Function + 431(coordTemp): 178(ptr) Variable Function + 434(storeTemp): 22(ptr) Variable Function + 444(coordTemp): 178(ptr) Variable Function + 447(storeTemp): 8(ptr) Variable Function + 457(coordTemp): 178(ptr) Variable Function + 460(storeTemp): 15(ptr) Variable Function + 470(coordTemp): 178(ptr) Variable Function +473(storeTempPre): 22(ptr) Variable Function +477(storeTempPost): 22(ptr) Variable Function + 485(coordTemp): 178(ptr) Variable Function +488(storeTempPre): 15(ptr) Variable Function +492(storeTempPost): 15(ptr) Variable Function + 500(coordTemp): 178(ptr) Variable Function +503(storeTempPre): 8(ptr) Variable Function +507(storeTempPost): 8(ptr) Variable Function + 515(coordTemp): 178(ptr) Variable Function +518(storeTempPre): 22(ptr) Variable Function +522(storeTempPost): 22(ptr) Variable Function + 530(coordTemp): 178(ptr) Variable Function +533(storeTempPre): 8(ptr) Variable Function +537(storeTempPost): 8(ptr) Variable Function + 545(coordTemp): 178(ptr) Variable Function +548(storeTempPre): 15(ptr) Variable Function +552(storeTempPost): 15(ptr) Variable Function + 560(storeTemp): 22(ptr) Variable Function + 570(psout): 569(ptr) Variable Function + 72: 69 Load 71(g_tTex1df2) + 74: 73(ptr) AccessChain 61 51 + 75: 6(int) Load 74 + 76: 21(fvec2) ImageRead 72 75 + 78: 69 Load 71(g_tTex1df2) + 79: 73(ptr) AccessChain 61 51 + 80: 6(int) Load 79 + 81: 21(fvec2) ImageRead 78 80 + Store 77(r00) 81 + 86: 83 Load 85(g_tTex1di2) + 87: 73(ptr) AccessChain 61 51 + 88: 6(int) Load 87 + 89: 7(ivec2) ImageRead 86 88 + Store 82(r01) 89 + 94: 91 Load 93(g_tTex1du2) + 95: 73(ptr) AccessChain 61 51 + 96: 6(int) Load 95 + 97: 14(ivec2) ImageRead 94 96 + Store 90(r02) 97 + 102: 99 Load 101(g_tTex2df2) + 103: 63(ptr) AccessChain 61 62 + 104: 7(ivec2) Load 103 + 105: 21(fvec2) ImageRead 102 104 + Store 98(r10) 105 + 110: 107 Load 109(g_tTex2di2) + 111: 63(ptr) AccessChain 61 62 + 112: 7(ivec2) Load 111 + 113: 7(ivec2) ImageRead 110 112 + Store 106(r11) 113 + 118: 115 Load 117(g_tTex2du2) + 119: 63(ptr) AccessChain 61 62 + 120: 7(ivec2) Load 119 + 121: 14(ivec2) ImageRead 118 120 + Store 114(r12) 121 + 126: 123 Load 125(g_tTex3df2) + 129: 128(ptr) AccessChain 61 127 + 130: 57(ivec3) Load 129 + 131: 21(fvec2) ImageRead 126 130 + Store 122(r20) 131 + 136: 133 Load 135(g_tTex3di2) + 137: 128(ptr) AccessChain 61 127 + 138: 57(ivec3) Load 137 + 139: 7(ivec2) ImageRead 136 138 + Store 132(r21) 139 + 144: 141 Load 143(g_tTex3du2) + 145: 128(ptr) AccessChain 61 127 + 146: 57(ivec3) Load 145 + 147: 14(ivec2) ImageRead 144 146 + Store 140(r22) 147 + 151: 150(ptr) AccessChain 61 149 + 152: 21(fvec2) Load 151 + Store 148(lf2) 152 + 154: 21(fvec2) FunctionCall 40(SomeValue() + Store 153(storeTemp) 154 + 155: 69 Load 71(g_tTex1df2) + 156: 73(ptr) AccessChain 61 51 + 157: 6(int) Load 156 + 158: 21(fvec2) Load 153(storeTemp) + ImageWrite 155 157 158 + 159: 69 Load 71(g_tTex1df2) + 160: 73(ptr) AccessChain 61 51 + 161: 6(int) Load 160 + 162: 21(fvec2) Load 148(lf2) + ImageWrite 159 161 162 + Store 163(storeTemp) 164 + 165: 83 Load 85(g_tTex1di2) + 166: 73(ptr) AccessChain 61 51 + 167: 6(int) Load 166 + 168: 7(ivec2) Load 163(storeTemp) + ImageWrite 165 167 168 + Store 169(storeTemp) 172 + 173: 91 Load 93(g_tTex1du2) + 174: 73(ptr) AccessChain 61 51 + 175: 6(int) Load 174 + 176: 14(ivec2) Load 169(storeTemp) + ImageWrite 173 175 176 + 180: 73(ptr) AccessChain 61 51 + 181: 6(int) Load 180 + Store 179(coordTemp) 181 + 183: 69 Load 71(g_tTex1df2) + 184: 6(int) Load 179(coordTemp) + 185: 21(fvec2) ImageRead 183 184 + Store 182(storeTemp) 185 + 187: 21(fvec2) Load 182(storeTemp) + 188: 21(fvec2) VectorTimesScalar 187 186 + Store 182(storeTemp) 188 + 189: 69 Load 71(g_tTex1df2) + 190: 6(int) Load 179(coordTemp) + 191: 21(fvec2) Load 182(storeTemp) + ImageWrite 189 190 191 + 192: 21(fvec2) Load 182(storeTemp) + Store 177(val1) 192 + 194: 73(ptr) AccessChain 61 51 + 195: 6(int) Load 194 + Store 193(coordTemp) 195 + 197: 69 Load 71(g_tTex1df2) + 198: 6(int) Load 193(coordTemp) + 199: 21(fvec2) ImageRead 197 198 + Store 196(storeTemp) 199 + 201: 21(fvec2) Load 196(storeTemp) + 202: 21(fvec2) CompositeConstruct 200 200 + 203: 21(fvec2) FSub 201 202 + Store 196(storeTemp) 203 + 204: 69 Load 71(g_tTex1df2) + 205: 6(int) Load 193(coordTemp) + 206: 21(fvec2) Load 196(storeTemp) + ImageWrite 204 205 206 + 208: 73(ptr) AccessChain 61 51 + 209: 6(int) Load 208 + Store 207(coordTemp) 209 + 211: 69 Load 71(g_tTex1df2) + 212: 6(int) Load 207(coordTemp) + 213: 21(fvec2) ImageRead 211 212 + Store 210(storeTemp) 213 + 215: 21(fvec2) Load 210(storeTemp) + 216: 21(fvec2) CompositeConstruct 214 214 + 217: 21(fvec2) FAdd 215 216 + Store 210(storeTemp) 217 + 218: 69 Load 71(g_tTex1df2) + 219: 6(int) Load 207(coordTemp) + 220: 21(fvec2) Load 210(storeTemp) + ImageWrite 218 219 220 + 222: 73(ptr) AccessChain 61 51 + 223: 6(int) Load 222 + Store 221(coordTemp) 223 + 225: 83 Load 85(g_tTex1di2) + 226: 6(int) Load 221(coordTemp) + 227: 7(ivec2) ImageRead 225 226 + Store 224(storeTemp) 227 + 228: 7(ivec2) Load 224(storeTemp) + 229: 7(ivec2) CompositeConstruct 127 127 + 230: 7(ivec2) SDiv 228 229 + Store 224(storeTemp) 230 + 231: 83 Load 85(g_tTex1di2) + 232: 6(int) Load 221(coordTemp) + 233: 7(ivec2) Load 224(storeTemp) + ImageWrite 231 232 233 + 235: 73(ptr) AccessChain 61 51 + 236: 6(int) Load 235 + Store 234(coordTemp) 236 + 238: 83 Load 85(g_tTex1di2) + 239: 6(int) Load 234(coordTemp) + 240: 7(ivec2) ImageRead 238 239 + Store 237(storeTemp) 240 + 241: 7(ivec2) Load 237(storeTemp) + 242: 7(ivec2) CompositeConstruct 127 127 + 243: 7(ivec2) SMod 241 242 + Store 237(storeTemp) 243 + 244: 83 Load 85(g_tTex1di2) + 245: 6(int) Load 234(coordTemp) + 246: 7(ivec2) Load 237(storeTemp) + ImageWrite 244 245 246 + 248: 73(ptr) AccessChain 61 51 + 249: 6(int) Load 248 + Store 247(coordTemp) 249 + 251: 83 Load 85(g_tTex1di2) + 252: 6(int) Load 247(coordTemp) + 253: 7(ivec2) ImageRead 251 252 + Store 250(storeTemp) 253 + 255: 7(ivec2) Load 250(storeTemp) + 256: 7(ivec2) CompositeConstruct 254 254 + 257: 7(ivec2) BitwiseAnd 255 256 + Store 250(storeTemp) 257 + 258: 83 Load 85(g_tTex1di2) + 259: 6(int) Load 247(coordTemp) + 260: 7(ivec2) Load 250(storeTemp) + ImageWrite 258 259 260 + 262: 73(ptr) AccessChain 61 51 + 263: 6(int) Load 262 + Store 261(coordTemp) 263 + 265: 83 Load 85(g_tTex1di2) + 266: 6(int) Load 261(coordTemp) + 267: 7(ivec2) ImageRead 265 266 + Store 264(storeTemp) 267 + 269: 7(ivec2) Load 264(storeTemp) + 270: 7(ivec2) CompositeConstruct 268 268 + 271: 7(ivec2) BitwiseOr 269 270 + Store 264(storeTemp) 271 + 272: 83 Load 85(g_tTex1di2) + 273: 6(int) Load 261(coordTemp) + 274: 7(ivec2) Load 264(storeTemp) + ImageWrite 272 273 274 + 276: 73(ptr) AccessChain 61 51 + 277: 6(int) Load 276 + Store 275(coordTemp) 277 + 279: 83 Load 85(g_tTex1di2) + 280: 6(int) Load 275(coordTemp) + 281: 7(ivec2) ImageRead 279 280 + Store 278(storeTemp) 281 + 282: 7(ivec2) Load 278(storeTemp) + 283: 7(ivec2) CompositeConstruct 127 127 + 284: 7(ivec2) ShiftLeftLogical 282 283 + Store 278(storeTemp) 284 + 285: 83 Load 85(g_tTex1di2) + 286: 6(int) Load 275(coordTemp) + 287: 7(ivec2) Load 278(storeTemp) + ImageWrite 285 286 287 + 289: 73(ptr) AccessChain 61 51 + 290: 6(int) Load 289 + Store 288(coordTemp) 290 + 292: 83 Load 85(g_tTex1di2) + 293: 6(int) Load 288(coordTemp) + 294: 7(ivec2) ImageRead 292 293 + Store 291(storeTemp) 294 + 295: 7(ivec2) Load 291(storeTemp) + 296: 7(ivec2) CompositeConstruct 127 127 + 297: 7(ivec2) ShiftRightArithmetic 295 296 + Store 291(storeTemp) 297 + 298: 83 Load 85(g_tTex1di2) + 299: 6(int) Load 288(coordTemp) + 300: 7(ivec2) Load 291(storeTemp) + ImageWrite 298 299 300 + 302: 21(fvec2) FunctionCall 40(SomeValue() + Store 301(storeTemp) 302 + 303: 99 Load 101(g_tTex2df2) + 304: 63(ptr) AccessChain 61 62 + 305: 7(ivec2) Load 304 + 306: 21(fvec2) Load 301(storeTemp) + ImageWrite 303 305 306 + 307: 99 Load 101(g_tTex2df2) + 308: 63(ptr) AccessChain 61 62 + 309: 7(ivec2) Load 308 + 310: 21(fvec2) Load 148(lf2) + ImageWrite 307 309 310 + Store 311(storeTemp) 313 + 314: 107 Load 109(g_tTex2di2) + 315: 63(ptr) AccessChain 61 62 + 316: 7(ivec2) Load 315 + 317: 7(ivec2) Load 311(storeTemp) + ImageWrite 314 316 317 + Store 318(storeTemp) 320 + 321: 115 Load 117(g_tTex2du2) + 322: 63(ptr) AccessChain 61 62 + 323: 7(ivec2) Load 322 + 324: 14(ivec2) Load 318(storeTemp) + ImageWrite 321 323 324 + 326: 21(fvec2) FunctionCall 40(SomeValue() + Store 325(storeTemp) 326 + 327: 123 Load 125(g_tTex3df2) + 328: 128(ptr) AccessChain 61 127 + 329: 57(ivec3) Load 328 + 330: 21(fvec2) Load 325(storeTemp) + ImageWrite 327 329 330 + 331: 123 Load 125(g_tTex3df2) + 332: 128(ptr) AccessChain 61 127 + 333: 57(ivec3) Load 332 + 334: 21(fvec2) Load 148(lf2) + ImageWrite 331 333 334 + Store 335(storeTemp) 337 + 338: 133 Load 135(g_tTex3di2) + 339: 128(ptr) AccessChain 61 127 + 340: 57(ivec3) Load 339 + 341: 7(ivec2) Load 335(storeTemp) + ImageWrite 338 340 341 + Store 342(storeTemp) 344 + 345: 141 Load 143(g_tTex3du2) + 346: 128(ptr) AccessChain 61 127 + 347: 57(ivec3) Load 346 + 348: 14(ivec2) Load 342(storeTemp) + ImageWrite 345 347 348 + 349: 69 Load 71(g_tTex1df2) + 350: 73(ptr) AccessChain 61 51 + 351: 6(int) Load 350 + 352: 21(fvec2) ImageRead 349 351 + Store 353(param) 352 + 354: 21(fvec2) FunctionCall 25(Fn1(vf2;) 353(param) + 355: 83 Load 85(g_tTex1di2) + 356: 73(ptr) AccessChain 61 51 + 357: 6(int) Load 356 + 358: 7(ivec2) ImageRead 355 357 + Store 359(param) 358 + 360: 7(ivec2) FunctionCall 11(Fn1(vi2;) 359(param) + 361: 91 Load 93(g_tTex1du2) + 362: 73(ptr) AccessChain 61 51 + 363: 6(int) Load 362 + 364: 14(ivec2) ImageRead 361 363 + Store 365(param) 364 + 366: 14(ivec2) FunctionCall 18(Fn1(vu2;) 365(param) + 369: 2 FunctionCall 37(Fn2(vf2;) 368(param) + 370: 21(fvec2) Load 368(param) + Store 367(tempArg) 370 + 371: 69 Load 71(g_tTex1df2) + 372: 73(ptr) AccessChain 61 51 + 373: 6(int) Load 372 + 374: 21(fvec2) Load 367(tempArg) + ImageWrite 371 373 374 + 377: 2 FunctionCall 29(Fn2(vi2;) 376(param) + 378: 7(ivec2) Load 376(param) + Store 375(tempArg) 378 + 379: 83 Load 85(g_tTex1di2) + 380: 73(ptr) AccessChain 61 51 + 381: 6(int) Load 380 + 382: 7(ivec2) Load 375(tempArg) + ImageWrite 379 381 382 + 385: 2 FunctionCall 33(Fn2(vu2;) 384(param) + 386: 14(ivec2) Load 384(param) + Store 383(tempArg) 386 + 387: 91 Load 93(g_tTex1du2) + 388: 73(ptr) AccessChain 61 51 + 389: 6(int) Load 388 + 390: 14(ivec2) Load 383(tempArg) + ImageWrite 387 389 390 + 392: 73(ptr) AccessChain 61 51 + 393: 6(int) Load 392 + Store 391(coordTemp) 393 + 395: 69 Load 71(g_tTex1df2) + 396: 6(int) Load 391(coordTemp) + 397: 21(fvec2) ImageRead 395 396 + Store 394(storeTemp) 397 + 398: 21(fvec2) Load 394(storeTemp) + 400: 21(fvec2) CompositeConstruct 399 399 + 401: 21(fvec2) FAdd 398 400 + Store 394(storeTemp) 401 + 402: 69 Load 71(g_tTex1df2) + 403: 6(int) Load 391(coordTemp) + 404: 21(fvec2) Load 394(storeTemp) + ImageWrite 402 403 404 + 406: 73(ptr) AccessChain 61 51 + 407: 6(int) Load 406 + Store 405(coordTemp) 407 + 409: 83 Load 85(g_tTex1di2) + 410: 6(int) Load 405(coordTemp) + 411: 7(ivec2) ImageRead 409 410 + Store 408(storeTemp) 411 + 412: 7(ivec2) Load 408(storeTemp) + 413: 7(ivec2) CompositeConstruct 62 62 + 414: 7(ivec2) IAdd 412 413 + Store 408(storeTemp) 414 + 415: 83 Load 85(g_tTex1di2) + 416: 6(int) Load 405(coordTemp) + 417: 7(ivec2) Load 408(storeTemp) + ImageWrite 415 416 417 + 419: 73(ptr) AccessChain 61 51 + 420: 6(int) Load 419 + Store 418(coordTemp) 420 + 422: 91 Load 93(g_tTex1du2) + 423: 6(int) Load 418(coordTemp) + 424: 14(ivec2) ImageRead 422 423 + Store 421(storeTemp) 424 + 425: 14(ivec2) Load 421(storeTemp) + 426: 7(ivec2) CompositeConstruct 62 62 + 427: 14(ivec2) IAdd 425 426 + Store 421(storeTemp) 427 + 428: 91 Load 93(g_tTex1du2) + 429: 6(int) Load 418(coordTemp) + 430: 14(ivec2) Load 421(storeTemp) + ImageWrite 428 429 430 + 432: 73(ptr) AccessChain 61 51 + 433: 6(int) Load 432 + Store 431(coordTemp) 433 + 435: 69 Load 71(g_tTex1df2) + 436: 6(int) Load 431(coordTemp) + 437: 21(fvec2) ImageRead 435 436 + Store 434(storeTemp) 437 + 438: 21(fvec2) Load 434(storeTemp) + 439: 21(fvec2) CompositeConstruct 399 399 + 440: 21(fvec2) FSub 438 439 + Store 434(storeTemp) 440 + 441: 69 Load 71(g_tTex1df2) + 442: 6(int) Load 431(coordTemp) + 443: 21(fvec2) Load 434(storeTemp) + ImageWrite 441 442 443 + 445: 73(ptr) AccessChain 61 51 + 446: 6(int) Load 445 + Store 444(coordTemp) 446 + 448: 83 Load 85(g_tTex1di2) + 449: 6(int) Load 444(coordTemp) + 450: 7(ivec2) ImageRead 448 449 + Store 447(storeTemp) 450 + 451: 7(ivec2) Load 447(storeTemp) + 452: 7(ivec2) CompositeConstruct 62 62 + 453: 7(ivec2) ISub 451 452 + Store 447(storeTemp) 453 + 454: 83 Load 85(g_tTex1di2) + 455: 6(int) Load 444(coordTemp) + 456: 7(ivec2) Load 447(storeTemp) + ImageWrite 454 455 456 + 458: 73(ptr) AccessChain 61 51 + 459: 6(int) Load 458 + Store 457(coordTemp) 459 + 461: 91 Load 93(g_tTex1du2) + 462: 6(int) Load 457(coordTemp) + 463: 14(ivec2) ImageRead 461 462 + Store 460(storeTemp) 463 + 464: 14(ivec2) Load 460(storeTemp) + 465: 7(ivec2) CompositeConstruct 62 62 + 466: 14(ivec2) ISub 464 465 + Store 460(storeTemp) 466 + 467: 91 Load 93(g_tTex1du2) + 468: 6(int) Load 457(coordTemp) + 469: 14(ivec2) Load 460(storeTemp) + ImageWrite 467 468 469 + 471: 73(ptr) AccessChain 61 51 + 472: 6(int) Load 471 + Store 470(coordTemp) 472 + 474: 69 Load 71(g_tTex1df2) + 475: 6(int) Load 470(coordTemp) + 476: 21(fvec2) ImageRead 474 475 + Store 473(storeTempPre) 476 + 478: 21(fvec2) Load 473(storeTempPre) + Store 477(storeTempPost) 478 + 479: 21(fvec2) Load 477(storeTempPost) + 480: 21(fvec2) CompositeConstruct 399 399 + 481: 21(fvec2) FAdd 479 480 + Store 477(storeTempPost) 481 + 482: 69 Load 71(g_tTex1df2) + 483: 6(int) Load 470(coordTemp) + 484: 21(fvec2) Load 477(storeTempPost) + ImageWrite 482 483 484 + 486: 73(ptr) AccessChain 61 51 + 487: 6(int) Load 486 + Store 485(coordTemp) 487 + 489: 91 Load 93(g_tTex1du2) + 490: 6(int) Load 485(coordTemp) + 491: 14(ivec2) ImageRead 489 490 + Store 488(storeTempPre) 491 + 493: 14(ivec2) Load 488(storeTempPre) + Store 492(storeTempPost) 493 + 494: 14(ivec2) Load 492(storeTempPost) + 495: 7(ivec2) CompositeConstruct 62 62 + 496: 14(ivec2) ISub 494 495 + Store 492(storeTempPost) 496 + 497: 91 Load 93(g_tTex1du2) + 498: 6(int) Load 485(coordTemp) + 499: 14(ivec2) Load 492(storeTempPost) + ImageWrite 497 498 499 + 501: 73(ptr) AccessChain 61 51 + 502: 6(int) Load 501 + Store 500(coordTemp) 502 + 504: 83 Load 85(g_tTex1di2) + 505: 6(int) Load 500(coordTemp) + 506: 7(ivec2) ImageRead 504 505 + Store 503(storeTempPre) 506 + 508: 7(ivec2) Load 503(storeTempPre) + Store 507(storeTempPost) 508 + 509: 7(ivec2) Load 507(storeTempPost) + 510: 7(ivec2) CompositeConstruct 62 62 + 511: 7(ivec2) IAdd 509 510 + Store 507(storeTempPost) 511 + 512: 83 Load 85(g_tTex1di2) + 513: 6(int) Load 500(coordTemp) + 514: 7(ivec2) Load 507(storeTempPost) + ImageWrite 512 513 514 + 516: 73(ptr) AccessChain 61 51 + 517: 6(int) Load 516 + Store 515(coordTemp) 517 + 519: 69 Load 71(g_tTex1df2) + 520: 6(int) Load 515(coordTemp) + 521: 21(fvec2) ImageRead 519 520 + Store 518(storeTempPre) 521 + 523: 21(fvec2) Load 518(storeTempPre) + Store 522(storeTempPost) 523 + 524: 21(fvec2) Load 522(storeTempPost) + 525: 21(fvec2) CompositeConstruct 399 399 + 526: 21(fvec2) FSub 524 525 + Store 522(storeTempPost) 526 + 527: 69 Load 71(g_tTex1df2) + 528: 6(int) Load 515(coordTemp) + 529: 21(fvec2) Load 522(storeTempPost) + ImageWrite 527 528 529 + 531: 73(ptr) AccessChain 61 51 + 532: 6(int) Load 531 + Store 530(coordTemp) 532 + 534: 83 Load 85(g_tTex1di2) + 535: 6(int) Load 530(coordTemp) + 536: 7(ivec2) ImageRead 534 535 + Store 533(storeTempPre) 536 + 538: 7(ivec2) Load 533(storeTempPre) + Store 537(storeTempPost) 538 + 539: 7(ivec2) Load 537(storeTempPost) + 540: 7(ivec2) CompositeConstruct 62 62 + 541: 7(ivec2) IAdd 539 540 + Store 537(storeTempPost) 541 + 542: 83 Load 85(g_tTex1di2) + 543: 6(int) Load 530(coordTemp) + 544: 7(ivec2) Load 537(storeTempPost) + ImageWrite 542 543 544 + 546: 73(ptr) AccessChain 61 51 + 547: 6(int) Load 546 + Store 545(coordTemp) 547 + 549: 91 Load 93(g_tTex1du2) + 550: 6(int) Load 545(coordTemp) + 551: 14(ivec2) ImageRead 549 550 + Store 548(storeTempPre) 551 + 553: 14(ivec2) Load 548(storeTempPre) + Store 552(storeTempPost) 553 + 554: 14(ivec2) Load 552(storeTempPost) + 555: 7(ivec2) CompositeConstruct 62 62 + 556: 14(ivec2) ISub 554 555 + Store 552(storeTempPost) 556 + 557: 91 Load 93(g_tTex1du2) + 558: 6(int) Load 545(coordTemp) + 559: 14(ivec2) Load 552(storeTempPost) + ImageWrite 557 558 559 + 561: 99 Load 101(g_tTex2df2) + 564: 21(fvec2) ImageRead 561 563 + Store 560(storeTemp) 564 + 565: 69 Load 71(g_tTex1df2) + 566: 21(fvec2) Load 560(storeTemp) + ImageWrite 565 62 566 + 573: 572(ptr) AccessChain 570(psout) 51 + Store 573 571 + 576: 572(ptr) AccessChain 570(psout) 51 + 577: 567(fvec4) Load 576 + Store 575(Color) 577 + Return + FunctionEnd + 11(Fn1(vi2;): 7(ivec2) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 42: 7(ivec2) Load 10(x) + ReturnValue 42 + FunctionEnd + 18(Fn1(vu2;): 14(ivec2) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 45: 14(ivec2) Load 17(x) + ReturnValue 45 + FunctionEnd + 25(Fn1(vf2;): 21(fvec2) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 48: 21(fvec2) Load 24(x) + ReturnValue 48 + FunctionEnd + 29(Fn2(vi2;): 2 Function None 27 + 28(x): 8(ptr) FunctionParameter + 30: Label + Store 28(x) 52 + Return + FunctionEnd + 33(Fn2(vu2;): 2 Function None 31 + 32(x): 15(ptr) FunctionParameter + 34: Label + Store 32(x) 54 + Return + FunctionEnd + 37(Fn2(vf2;): 2 Function None 35 + 36(x): 22(ptr) FunctionParameter + 38: Label + Store 36(x) 56 + Return + FunctionEnd + 40(SomeValue(): 21(fvec2) Function None 39 + 41: Label + 64: 63(ptr) AccessChain 61 62 + 65: 7(ivec2) Load 64 + 66: 21(fvec2) ConvertSToF 65 + ReturnValue 66 + FunctionEnd diff --git a/Test/baseResults/hlsl.sample.array.dx10.frag.out b/Test/baseResults/hlsl.sample.array.dx10.frag.out index 54c3553a09db347130efba76cad65aa51441bda6..f223e4bf6b823971729e49516ea18df05a6005d0 100644 --- a/Test/baseResults/hlsl.sample.array.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.array.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.sample.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 texture (global 4-component vector of float) +0:27 texture (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -18,7 +18,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 texture (global 4-component vector of int) +0:28 texture (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -28,7 +28,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 texture (global 4-component vector of uint) +0:29 texture (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -49,7 +49,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -60,7 +60,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -71,7 +71,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -121,8 +121,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -137,6 +137,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -148,8 +150,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -158,13 +158,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 texture (global 4-component vector of float) +0:27 texture (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -174,7 +174,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 texture (global 4-component vector of int) +0:28 texture (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 texture (global 4-component vector of uint) +0:29 texture (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -227,7 +227,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -239,7 +239,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -251,7 +251,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -277,8 +277,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -293,6 +293,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -304,8 +306,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.basic.dx10.frag.out b/Test/baseResults/hlsl.sample.basic.dx10.frag.out index dca7f774a1471199cf0ed62260d0209f39043a55..a222125a821a2013333656f4e327cddd0e20083f 100644 --- a/Test/baseResults/hlsl.sample.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.basic.dx10.frag.out @@ -4,7 +4,7 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -94,7 +94,7 @@ gl_FragCoord origin is upper left 0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:70 'txval10' (temp 4-component vector of float) -0:70 texture (global 4-component vector of float) +0:70 texture (temp 4-component vector of float) 0:70 Construct combined texture-sampler (temp sampler1D) 0:70 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left 0:71 Sequence 0:71 move second child to first child (temp 4-component vector of int) 0:71 'txval11' (temp 4-component vector of int) -0:71 texture (global 4-component vector of int) +0:71 texture (temp 4-component vector of int) 0:71 Construct combined texture-sampler (temp isampler1D) 0:71 'g_tTex1di4' (uniform itexture1D) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -112,7 +112,7 @@ gl_FragCoord origin is upper left 0:72 Sequence 0:72 move second child to first child (temp 4-component vector of uint) 0:72 'txval12' (temp 4-component vector of uint) -0:72 texture (global 4-component vector of uint) +0:72 texture (temp 4-component vector of uint) 0:72 Construct combined texture-sampler (temp usampler1D) 0:72 'g_tTex1du4' (uniform utexture1D) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -121,7 +121,7 @@ gl_FragCoord origin is upper left 0:74 Sequence 0:74 move second child to first child (temp 4-component vector of float) 0:74 'txval20' (temp 4-component vector of float) -0:74 texture (global 4-component vector of float) +0:74 texture (temp 4-component vector of float) 0:74 Construct combined texture-sampler (temp sampler2D) 0:74 'g_tTex2df4' (uniform texture2D) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -131,7 +131,7 @@ gl_FragCoord origin is upper left 0:75 Sequence 0:75 move second child to first child (temp 4-component vector of int) 0:75 'txval21' (temp 4-component vector of int) -0:75 texture (global 4-component vector of int) +0:75 texture (temp 4-component vector of int) 0:75 Construct combined texture-sampler (temp isampler2D) 0:75 'g_tTex2di4' (uniform itexture2D) 0:75 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp 4-component vector of uint) 0:76 'txval22' (temp 4-component vector of uint) -0:76 texture (global 4-component vector of uint) +0:76 texture (temp 4-component vector of uint) 0:76 Construct combined texture-sampler (temp usampler2D) 0:76 'g_tTex2du4' (uniform utexture2D) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -151,7 +151,7 @@ gl_FragCoord origin is upper left 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of float) 0:78 'txval30' (temp 4-component vector of float) -0:78 texture (global 4-component vector of float) +0:78 texture (temp 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler3D) 0:78 'g_tTex3df4' (uniform texture3D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -162,7 +162,7 @@ gl_FragCoord origin is upper left 0:79 Sequence 0:79 move second child to first child (temp 4-component vector of int) 0:79 'txval31' (temp 4-component vector of int) -0:79 texture (global 4-component vector of int) +0:79 texture (temp 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler3D) 0:79 'g_tTex3di4' (uniform itexture3D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -173,7 +173,7 @@ gl_FragCoord origin is upper left 0:80 Sequence 0:80 move second child to first child (temp 4-component vector of uint) 0:80 'txval32' (temp 4-component vector of uint) -0:80 texture (global 4-component vector of uint) +0:80 texture (temp 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler3D) 0:80 'g_tTex3du4' (uniform utexture3D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -184,7 +184,7 @@ gl_FragCoord origin is upper left 0:82 Sequence 0:82 move second child to first child (temp 4-component vector of float) 0:82 'txval40' (temp 4-component vector of float) -0:82 texture (global 4-component vector of float) +0:82 texture (temp 4-component vector of float) 0:82 Construct combined texture-sampler (temp samplerCube) 0:82 'g_tTexcdf4' (uniform textureCube) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -195,7 +195,7 @@ gl_FragCoord origin is upper left 0:83 Sequence 0:83 move second child to first child (temp 4-component vector of int) 0:83 'txval41' (temp 4-component vector of int) -0:83 texture (global 4-component vector of int) +0:83 texture (temp 4-component vector of int) 0:83 Construct combined texture-sampler (temp isamplerCube) 0:83 'g_tTexcdi4' (uniform itextureCube) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:84 Sequence 0:84 move second child to first child (temp 4-component vector of uint) 0:84 'txval42' (temp 4-component vector of uint) -0:84 texture (global 4-component vector of uint) +0:84 texture (temp 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usamplerCube) 0:84 'g_tTexcdu4' (uniform utextureCube) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -231,8 +231,8 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:? Sequence -0:? Sequence +0:89 Sequence +0:89 Sequence 0:89 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:89 Color: direct index for structure (temp 4-component vector of float) @@ -247,6 +247,8 @@ gl_FragCoord origin is upper left 0:89 1 (const int) 0:89 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_sSamp2D_b' (uniform sampler) @@ -263,8 +265,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -273,7 +273,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:53 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:53 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:53 Function Parameters: 0:? Sequence 0:57 move second child to first child (temp int) @@ -363,7 +363,7 @@ gl_FragCoord origin is upper left 0:70 Sequence 0:70 move second child to first child (temp 4-component vector of float) 0:70 'txval10' (temp 4-component vector of float) -0:70 texture (global 4-component vector of float) +0:70 texture (temp 4-component vector of float) 0:70 Construct combined texture-sampler (temp sampler1D) 0:70 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:70 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -372,7 +372,7 @@ gl_FragCoord origin is upper left 0:71 Sequence 0:71 move second child to first child (temp 4-component vector of int) 0:71 'txval11' (temp 4-component vector of int) -0:71 texture (global 4-component vector of int) +0:71 texture (temp 4-component vector of int) 0:71 Construct combined texture-sampler (temp isampler1D) 0:71 'g_tTex1di4' (uniform itexture1D) 0:71 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -381,7 +381,7 @@ gl_FragCoord origin is upper left 0:72 Sequence 0:72 move second child to first child (temp 4-component vector of uint) 0:72 'txval12' (temp 4-component vector of uint) -0:72 texture (global 4-component vector of uint) +0:72 texture (temp 4-component vector of uint) 0:72 Construct combined texture-sampler (temp usampler1D) 0:72 'g_tTex1du4' (uniform utexture1D) 0:72 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -390,7 +390,7 @@ gl_FragCoord origin is upper left 0:74 Sequence 0:74 move second child to first child (temp 4-component vector of float) 0:74 'txval20' (temp 4-component vector of float) -0:74 texture (global 4-component vector of float) +0:74 texture (temp 4-component vector of float) 0:74 Construct combined texture-sampler (temp sampler2D) 0:74 'g_tTex2df4' (uniform texture2D) 0:74 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -400,7 +400,7 @@ gl_FragCoord origin is upper left 0:75 Sequence 0:75 move second child to first child (temp 4-component vector of int) 0:75 'txval21' (temp 4-component vector of int) -0:75 texture (global 4-component vector of int) +0:75 texture (temp 4-component vector of int) 0:75 Construct combined texture-sampler (temp isampler2D) 0:75 'g_tTex2di4' (uniform itexture2D) 0:75 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -410,7 +410,7 @@ gl_FragCoord origin is upper left 0:76 Sequence 0:76 move second child to first child (temp 4-component vector of uint) 0:76 'txval22' (temp 4-component vector of uint) -0:76 texture (global 4-component vector of uint) +0:76 texture (temp 4-component vector of uint) 0:76 Construct combined texture-sampler (temp usampler2D) 0:76 'g_tTex2du4' (uniform utexture2D) 0:76 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -420,7 +420,7 @@ gl_FragCoord origin is upper left 0:78 Sequence 0:78 move second child to first child (temp 4-component vector of float) 0:78 'txval30' (temp 4-component vector of float) -0:78 texture (global 4-component vector of float) +0:78 texture (temp 4-component vector of float) 0:78 Construct combined texture-sampler (temp sampler3D) 0:78 'g_tTex3df4' (uniform texture3D) 0:78 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -431,7 +431,7 @@ gl_FragCoord origin is upper left 0:79 Sequence 0:79 move second child to first child (temp 4-component vector of int) 0:79 'txval31' (temp 4-component vector of int) -0:79 texture (global 4-component vector of int) +0:79 texture (temp 4-component vector of int) 0:79 Construct combined texture-sampler (temp isampler3D) 0:79 'g_tTex3di4' (uniform itexture3D) 0:79 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -442,7 +442,7 @@ gl_FragCoord origin is upper left 0:80 Sequence 0:80 move second child to first child (temp 4-component vector of uint) 0:80 'txval32' (temp 4-component vector of uint) -0:80 texture (global 4-component vector of uint) +0:80 texture (temp 4-component vector of uint) 0:80 Construct combined texture-sampler (temp usampler3D) 0:80 'g_tTex3du4' (uniform utexture3D) 0:80 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -453,7 +453,7 @@ gl_FragCoord origin is upper left 0:82 Sequence 0:82 move second child to first child (temp 4-component vector of float) 0:82 'txval40' (temp 4-component vector of float) -0:82 texture (global 4-component vector of float) +0:82 texture (temp 4-component vector of float) 0:82 Construct combined texture-sampler (temp samplerCube) 0:82 'g_tTexcdf4' (uniform textureCube) 0:82 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -464,7 +464,7 @@ gl_FragCoord origin is upper left 0:83 Sequence 0:83 move second child to first child (temp 4-component vector of int) 0:83 'txval41' (temp 4-component vector of int) -0:83 texture (global 4-component vector of int) +0:83 texture (temp 4-component vector of int) 0:83 Construct combined texture-sampler (temp isamplerCube) 0:83 'g_tTexcdi4' (uniform itextureCube) 0:83 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -475,7 +475,7 @@ gl_FragCoord origin is upper left 0:84 Sequence 0:84 move second child to first child (temp 4-component vector of uint) 0:84 'txval42' (temp 4-component vector of uint) -0:84 texture (global 4-component vector of uint) +0:84 texture (temp 4-component vector of uint) 0:84 Construct combined texture-sampler (temp usamplerCube) 0:84 'g_tTexcdu4' (uniform utextureCube) 0:84 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -500,8 +500,8 @@ gl_FragCoord origin is upper left 0:87 1 (const int) 0:87 Constant: 0:87 1.000000 -0:? Sequence -0:? Sequence +0:89 Sequence +0:89 Sequence 0:89 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:89 Color: direct index for structure (temp 4-component vector of float) @@ -516,6 +516,8 @@ gl_FragCoord origin is upper left 0:89 1 (const int) 0:89 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_sSamp2D_b' (uniform sampler) @@ -532,8 +534,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.offset.dx10.frag.out b/Test/baseResults/hlsl.sample.offset.dx10.frag.out index b8c7d5ccc0430eb27545a6c915bef1fd7735b2c8..a148a86ed75d4afbb75161cfb57561b67b839e5b 100644 --- a/Test/baseResults/hlsl.sample.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offset.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.sample.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureOffset (global 4-component vector of float) +0:31 textureOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureOffset (global 4-component vector of int) +0:32 textureOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureOffset (global 4-component vector of uint) +0:33 textureOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureOffset (global 4-component vector of float) +0:35 textureOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -54,7 +54,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureOffset (global 4-component vector of int) +0:36 textureOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -67,7 +67,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureOffset (global 4-component vector of uint) +0:37 textureOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -80,7 +80,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureOffset (global 4-component vector of float) +0:39 textureOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureOffset (global 4-component vector of int) +0:40 textureOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -110,7 +110,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureOffset (global 4-component vector of uint) +0:41 textureOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -169,8 +171,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -179,13 +179,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureOffset (global 4-component vector of float) +0:31 textureOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -196,7 +196,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureOffset (global 4-component vector of int) +0:32 textureOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -207,7 +207,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureOffset (global 4-component vector of uint) +0:33 textureOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureOffset (global 4-component vector of float) +0:35 textureOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -231,7 +231,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureOffset (global 4-component vector of int) +0:36 textureOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureOffset (global 4-component vector of uint) +0:37 textureOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureOffset (global 4-component vector of float) +0:39 textureOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureOffset (global 4-component vector of int) +0:40 textureOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureOffset (global 4-component vector of uint) +0:41 textureOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -316,8 +316,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -332,6 +332,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -346,8 +348,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out index b30a4e2d51267dd1a7958dbee703f3e0e51b84af..abdf03270f0c3896a340669d6ec450fc237f37a9 100644 --- a/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.sample.offsetarray.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.sample.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureOffset (global 4-component vector of float) +0:23 textureOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureOffset (global 4-component vector of int) +0:24 textureOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureOffset (global 4-component vector of uint) +0:25 textureOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureOffset (global 4-component vector of float) +0:27 textureOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -58,7 +58,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureOffset (global 4-component vector of int) +0:28 textureOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureOffset (global 4-component vector of uint) +0:29 textureOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -100,8 +100,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -116,6 +116,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -124,8 +126,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -134,13 +134,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureOffset (global 4-component vector of float) +0:23 textureOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureOffset (global 4-component vector of int) +0:24 textureOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -164,7 +164,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureOffset (global 4-component vector of uint) +0:25 textureOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -176,7 +176,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureOffset (global 4-component vector of float) +0:27 textureOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureOffset (global 4-component vector of int) +0:28 textureOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -204,7 +204,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureOffset (global 4-component vector of uint) +0:29 textureOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -232,8 +232,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -248,6 +248,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -256,8 +258,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..bfbad5c2078d9a0946fcac1d67589648037b5404 --- /dev/null +++ b/Test/baseResults/hlsl.sample.sub-vec4.dx10.frag.out @@ -0,0 +1,252 @@ +hlsl.sample.sub-vec4.dx10.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'txval10' (temp float) +0:17 Construct float (temp float) +0:? texture (temp 4-component vector of float) +0:17 Construct combined texture-sampler (temp sampler1D) +0:17 'g_tTex1df1' (uniform texture1D) +0:17 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:17 Constant: +0:17 0.100000 +0:18 Sequence +0:18 move second child to first child (temp 2-component vector of float) +0:18 'txval11' (temp 2-component vector of float) +0:18 Construct vec2 (temp 2-component vector of float) +0:? texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:18 'g_tTex1df2' (uniform texture1D) +0:18 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:18 Constant: +0:18 0.200000 +0:19 Sequence +0:19 move second child to first child (temp 3-component vector of float) +0:19 'txval12' (temp 3-component vector of float) +0:19 Construct vec3 (temp 3-component vector of float) +0:? texture (temp 4-component vector of float) +0:19 Construct combined texture-sampler (temp sampler1D) +0:19 'g_tTex1df3' (uniform texture1D) +0:19 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:19 Constant: +0:19 0.200000 +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:20 'txval13' (temp 4-component vector of float) +0:20 texture (temp 4-component vector of float) +0:20 Construct combined texture-sampler (temp sampler1D) +0:20 'g_tTex1df4' (uniform texture1D) +0:20 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:20 Constant: +0:20 0.200000 +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (uniform texture1D) +0:? 'g_tTex1df2' (uniform texture1D) +0:? 'g_tTex1df3' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:14 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:14 Function Parameters: +0:? Sequence +0:17 Sequence +0:17 move second child to first child (temp float) +0:17 'txval10' (temp float) +0:17 Construct float (temp float) +0:? texture (temp 4-component vector of float) +0:17 Construct combined texture-sampler (temp sampler1D) +0:17 'g_tTex1df1' (uniform texture1D) +0:17 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:17 Constant: +0:17 0.100000 +0:18 Sequence +0:18 move second child to first child (temp 2-component vector of float) +0:18 'txval11' (temp 2-component vector of float) +0:18 Construct vec2 (temp 2-component vector of float) +0:? texture (temp 4-component vector of float) +0:18 Construct combined texture-sampler (temp sampler1D) +0:18 'g_tTex1df2' (uniform texture1D) +0:18 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:18 Constant: +0:18 0.200000 +0:19 Sequence +0:19 move second child to first child (temp 3-component vector of float) +0:19 'txval12' (temp 3-component vector of float) +0:19 Construct vec3 (temp 3-component vector of float) +0:? texture (temp 4-component vector of float) +0:19 Construct combined texture-sampler (temp sampler1D) +0:19 'g_tTex1df3' (uniform texture1D) +0:19 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:19 Constant: +0:19 0.200000 +0:20 Sequence +0:20 move second child to first child (temp 4-component vector of float) +0:20 'txval13' (temp 4-component vector of float) +0:20 texture (temp 4-component vector of float) +0:20 Construct combined texture-sampler (temp sampler1D) +0:20 'g_tTex1df4' (uniform texture1D) +0:20 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:20 Constant: +0:20 0.200000 +0:22 move second child to first child (temp 4-component vector of float) +0:22 Color: direct index for structure (temp 4-component vector of float) +0:22 'psout' (temp structure{temp 4-component vector of float Color}) +0:22 Constant: +0:22 0 (const int) +0:22 Constant: +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:22 1.000000 +0:23 Sequence +0:23 Sequence +0:23 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:23 Color: direct index for structure (temp 4-component vector of float) +0:23 'psout' (temp structure{temp 4-component vector of float Color}) +0:23 Constant: +0:23 0 (const int) +0:23 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df1' (uniform texture1D) +0:? 'g_tTex1df2' (uniform texture1D) +0:? 'g_tTex1df3' (uniform texture1D) +0:? 'g_tTex1df4' (uniform texture1D) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 67 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 63 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "txval10" + Name 11 "g_tTex1df1" + Name 15 "g_sSamp" + Name 25 "txval11" + Name 26 "g_tTex1df2" + Name 37 "txval12" + Name 38 "g_tTex1df3" + Name 48 "txval13" + Name 49 "g_tTex1df4" + Name 54 "PS_OUTPUT" + MemberName 54(PS_OUTPUT) 0 "Color" + Name 56 "psout" + Name 63 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 15(g_sSamp) DescriptorSet 0 + Decorate 15(g_sSamp) Binding 0 + Decorate 26(g_tTex1df2) DescriptorSet 0 + Decorate 38(g_tTex1df3) DescriptorSet 0 + Decorate 49(g_tTex1df4) DescriptorSet 0 + Decorate 63(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D sampled format:Unknown + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeSampler + 14: TypePointer UniformConstant 13 + 15(g_sSamp): 14(ptr) Variable UniformConstant + 17: TypeSampledImage 9 + 19: 6(float) Constant 1036831949 + 20: TypeVector 6(float) 4 + 23: TypeVector 6(float) 2 + 24: TypePointer Function 23(fvec2) + 26(g_tTex1df2): 10(ptr) Variable UniformConstant + 30: 6(float) Constant 1045220557 + 35: TypeVector 6(float) 3 + 36: TypePointer Function 35(fvec3) + 38(g_tTex1df3): 10(ptr) Variable UniformConstant + 47: TypePointer Function 20(fvec4) + 49(g_tTex1df4): 10(ptr) Variable UniformConstant + 54(PS_OUTPUT): TypeStruct 20(fvec4) + 55: TypePointer Function 54(PS_OUTPUT) + 57: TypeInt 32 1 + 58: 57(int) Constant 0 + 59: 6(float) Constant 1065353216 + 60: 20(fvec4) ConstantComposite 59 59 59 59 + 62: TypePointer Output 20(fvec4) + 63(Color): 62(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(txval10): 7(ptr) Variable Function + 25(txval11): 24(ptr) Variable Function + 37(txval12): 36(ptr) Variable Function + 48(txval13): 47(ptr) Variable Function + 56(psout): 55(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 16: 13 Load 15(g_sSamp) + 18: 17 SampledImage 12 16 + 21: 20(fvec4) ImageSampleImplicitLod 18 19 + 22: 6(float) CompositeExtract 21 0 + Store 8(txval10) 22 + 27: 9 Load 26(g_tTex1df2) + 28: 13 Load 15(g_sSamp) + 29: 17 SampledImage 27 28 + 31: 20(fvec4) ImageSampleImplicitLod 29 30 + 32: 6(float) CompositeExtract 31 0 + 33: 6(float) CompositeExtract 31 1 + 34: 23(fvec2) CompositeConstruct 32 33 + Store 25(txval11) 34 + 39: 9 Load 38(g_tTex1df3) + 40: 13 Load 15(g_sSamp) + 41: 17 SampledImage 39 40 + 42: 20(fvec4) ImageSampleImplicitLod 41 30 + 43: 6(float) CompositeExtract 42 0 + 44: 6(float) CompositeExtract 42 1 + 45: 6(float) CompositeExtract 42 2 + 46: 35(fvec3) CompositeConstruct 43 44 45 + Store 37(txval12) 46 + 50: 9 Load 49(g_tTex1df4) + 51: 13 Load 15(g_sSamp) + 52: 17 SampledImage 50 51 + 53: 20(fvec4) ImageSampleImplicitLod 52 30 + Store 48(txval13) 53 + 61: 47(ptr) AccessChain 56(psout) 58 + Store 61 60 + 64: 47(ptr) AccessChain 56(psout) 58 + 65: 20(fvec4) Load 64 + Store 63(Color) 65 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out index 66f4629a00683b1b4da3cd9d552744f032a9f6cd..05ac32a507bb85f943cdcda196c1be067ae7b989 100644 --- a/Test/baseResults/hlsl.samplebias.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.array.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplebias.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 texture (global 4-component vector of float) +0:27 texture (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 texture (global 4-component vector of int) +0:28 texture (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 texture (global 4-component vector of uint) +0:29 texture (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -166,8 +168,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -176,13 +176,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 texture (global 4-component vector of float) +0:27 texture (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 texture (global 4-component vector of int) +0:28 texture (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 texture (global 4-component vector of uint) +0:29 texture (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -231,7 +231,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -271,7 +271,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -313,8 +313,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -329,6 +329,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -340,8 +342,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out index faba4bef2c9b55af14ae36bd6868bb01b98ddc85..1442fc3c78310606a3b957ba4ea10dd1a19fbcca 100644 --- a/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.basic.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplebias.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 texture (global 4-component vector of float) +0:39 texture (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -90,7 +90,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 texture (global 4-component vector of int) +0:40 texture (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 texture (global 4-component vector of uint) +0:41 texture (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -116,7 +116,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval40' (temp 4-component vector of float) -0:43 texture (global 4-component vector of float) +0:43 texture (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -129,7 +129,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval41' (temp 4-component vector of int) -0:44 texture (global 4-component vector of int) +0:44 texture (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval42' (temp 4-component vector of uint) -0:45 texture (global 4-component vector of uint) +0:45 texture (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -169,8 +169,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:? Sequence -0:? Sequence +0:50 Sequence +0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) @@ -185,6 +185,8 @@ gl_FragCoord origin is upper left 0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -199,8 +201,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -209,13 +209,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 texture (global 4-component vector of float) +0:31 texture (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 texture (global 4-component vector of int) +0:32 texture (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -237,7 +237,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 texture (global 4-component vector of uint) +0:33 texture (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -248,7 +248,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 texture (global 4-component vector of float) +0:35 texture (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 texture (global 4-component vector of int) +0:36 texture (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 texture (global 4-component vector of uint) +0:37 texture (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -284,7 +284,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 texture (global 4-component vector of float) +0:39 texture (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -297,7 +297,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 texture (global 4-component vector of int) +0:40 texture (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -310,7 +310,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 texture (global 4-component vector of uint) +0:41 texture (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -323,7 +323,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval40' (temp 4-component vector of float) -0:43 texture (global 4-component vector of float) +0:43 texture (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -336,7 +336,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval41' (temp 4-component vector of int) -0:44 texture (global 4-component vector of int) +0:44 texture (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -349,7 +349,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval42' (temp 4-component vector of uint) -0:45 texture (global 4-component vector of uint) +0:45 texture (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -376,8 +376,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:? Sequence -0:? Sequence +0:50 Sequence +0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) @@ -392,6 +392,8 @@ gl_FragCoord origin is upper left 0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -406,8 +408,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out index e83058b07c76e720699a51ab212ad8568744fcc9..01facb65d7ffaceb9dd8c7ba886c6d3261f5314d 100644 --- a/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offset.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplebias.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureOffset (global 4-component vector of float) +0:31 textureOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureOffset (global 4-component vector of int) +0:32 textureOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureOffset (global 4-component vector of uint) +0:33 textureOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureOffset (global 4-component vector of float) +0:35 textureOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -62,7 +62,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureOffset (global 4-component vector of int) +0:36 textureOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureOffset (global 4-component vector of uint) +0:37 textureOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -92,7 +92,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureOffset (global 4-component vector of float) +0:39 textureOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -109,7 +109,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureOffset (global 4-component vector of int) +0:40 textureOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -126,7 +126,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureOffset (global 4-component vector of uint) +0:41 textureOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -157,8 +157,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -173,6 +173,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -187,8 +189,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -197,13 +197,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureOffset (global 4-component vector of float) +0:31 textureOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureOffset (global 4-component vector of int) +0:32 textureOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureOffset (global 4-component vector of uint) +0:33 textureOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureOffset (global 4-component vector of float) +0:35 textureOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureOffset (global 4-component vector of int) +0:36 textureOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureOffset (global 4-component vector of uint) +0:37 textureOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureOffset (global 4-component vector of float) +0:39 textureOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -304,7 +304,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureOffset (global 4-component vector of int) +0:40 textureOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -321,7 +321,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureOffset (global 4-component vector of uint) +0:41 textureOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -352,8 +352,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -368,6 +368,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -382,8 +384,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out index a9e44041ad58559c5b163b0630cb705f83d4c1ad..17aef7aec89dbf4e15c0fe9491609c6c9e3d226c 100644 --- a/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplebias.offsetarray.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplebias.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureOffset (global 4-component vector of float) +0:23 textureOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureOffset (global 4-component vector of int) +0:24 textureOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureOffset (global 4-component vector of uint) +0:25 textureOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureOffset (global 4-component vector of float) +0:27 textureOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureOffset (global 4-component vector of int) +0:28 textureOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureOffset (global 4-component vector of uint) +0:29 textureOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -112,8 +112,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -128,6 +128,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -136,8 +138,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -146,13 +146,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureOffset (global 4-component vector of float) +0:23 textureOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureOffset (global 4-component vector of int) +0:24 textureOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -180,7 +180,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureOffset (global 4-component vector of uint) +0:25 textureOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureOffset (global 4-component vector of float) +0:27 textureOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -210,7 +210,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureOffset (global 4-component vector of int) +0:28 textureOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureOffset (global 4-component vector of uint) +0:29 textureOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -256,8 +256,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -272,6 +272,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -280,8 +282,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out index 660db5b25ed4f1a0468e6b291b18700572bf9555..c4f5d11c8c5bb495befa136b4f48d55f7369cae9 100644 --- a/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.array.dx10.frag.out @@ -2,17 +2,17 @@ hlsl.samplecmp.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r10' (temp float) -0:42 texture (global float) +0:42 texture (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -21,11 +21,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r12' (temp float) -0:43 texture (global float) +0:43 texture (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -34,11 +34,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r14' (temp float) -0:44 texture (global float) +0:44 texture (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -47,11 +47,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r30' (temp float) -0:47 texture (global float) +0:47 texture (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -61,11 +61,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r32' (temp float) -0:48 texture (global float) +0:48 texture (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -75,11 +75,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r34' (temp float) -0:49 texture (global float) +0:49 texture (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -89,11 +89,11 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp float) 0:52 'r60' (temp float) -0:52 texture (global float) +0:52 texture (temp float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -104,11 +104,11 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r62' (temp float) -0:53 texture (global float) +0:53 texture (temp float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -119,11 +119,11 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r64' (temp float) -0:54 texture (global float) +0:54 texture (temp float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -148,8 +148,8 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:? Sequence -0:? Sequence +0:59 Sequence +0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) @@ -164,6 +164,8 @@ gl_FragCoord origin is upper left 0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -186,8 +188,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -196,17 +196,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r10' (temp float) -0:42 texture (global float) +0:42 texture (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -215,11 +215,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r12' (temp float) -0:43 texture (global float) +0:43 texture (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -228,11 +228,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r14' (temp float) -0:44 texture (global float) +0:44 texture (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -241,11 +241,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r30' (temp float) -0:47 texture (global float) +0:47 texture (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -255,11 +255,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r32' (temp float) -0:48 texture (global float) +0:48 texture (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -269,11 +269,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r34' (temp float) -0:49 texture (global float) +0:49 texture (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -283,11 +283,11 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp float) 0:52 'r60' (temp float) -0:52 texture (global float) +0:52 texture (temp float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -298,11 +298,11 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r62' (temp float) -0:53 texture (global float) +0:53 texture (temp float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -313,11 +313,11 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r64' (temp float) -0:54 texture (global float) +0:54 texture (temp float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -342,8 +342,8 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:? Sequence -0:? Sequence +0:59 Sequence +0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) @@ -358,6 +358,8 @@ gl_FragCoord origin is upper left 0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -380,84 +382,82 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 184 +// Id's are bound by 211 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 140 144 + EntryPoint Fragment 4 "main" 167 171 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 28 "r12" - Name 32 "g_tTex1di4a" - Name 41 "r14" - Name 45 "g_tTex1du4a" - Name 54 "r30" - Name 57 "g_tTex2df4a" - Name 69 "r32" - Name 72 "g_tTex2di4a" - Name 81 "r34" - Name 84 "g_tTex2du4a" - Name 93 "r60" - Name 96 "g_tTexcdf4a" - Name 107 "r62" - Name 110 "g_tTexcdi4a" - Name 118 "r64" - Name 121 "g_tTexcdu4a" - Name 129 "PS_OUTPUT" - MemberName 129(PS_OUTPUT) 0 "Color" - MemberName 129(PS_OUTPUT) 1 "Depth" - Name 131 "psout" - Name 140 "Color" - Name 144 "Depth" - Name 150 "g_tTex1df4" - Name 153 "g_tTex1di4" - Name 156 "g_tTex1du4" - Name 159 "g_tTex2df4" - Name 162 "g_tTex2di4" - Name 165 "g_tTex2du4" - Name 168 "g_tTex3df4" - Name 171 "g_tTex3di4" - Name 174 "g_tTex3du4" - Name 177 "g_tTexcdf4" - Name 180 "g_tTexcdi4" - Name 183 "g_tTexcdu4" + Name 31 "r12" + Name 35 "g_tTex1di4a" + Name 46 "r14" + Name 50 "g_tTex1du4a" + Name 61 "r30" + Name 64 "g_tTex2df4a" + Name 79 "r32" + Name 82 "g_tTex2di4a" + Name 94 "r34" + Name 97 "g_tTex2du4a" + Name 109 "r60" + Name 112 "g_tTexcdf4a" + Name 126 "r62" + Name 129 "g_tTexcdi4a" + Name 141 "r64" + Name 144 "g_tTexcdu4a" + Name 156 "PS_OUTPUT" + MemberName 156(PS_OUTPUT) 0 "Color" + MemberName 156(PS_OUTPUT) 1 "Depth" + Name 158 "psout" + Name 167 "Color" + Name 171 "Depth" + Name 177 "g_tTex1df4" + Name 180 "g_tTex1di4" + Name 183 "g_tTex1du4" + Name 186 "g_tTex2df4" + Name 189 "g_tTex2di4" + Name 192 "g_tTex2du4" + Name 195 "g_tTex3df4" + Name 198 "g_tTex3di4" + Name 201 "g_tTex3du4" + Name 204 "g_tTexcdf4" + Name 207 "g_tTexcdi4" + Name 210 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 32(g_tTex1di4a) DescriptorSet 0 - Decorate 45(g_tTex1du4a) DescriptorSet 0 - Decorate 57(g_tTex2df4a) DescriptorSet 0 - Decorate 72(g_tTex2di4a) DescriptorSet 0 - Decorate 84(g_tTex2du4a) DescriptorSet 0 - Decorate 96(g_tTexcdf4a) DescriptorSet 0 - Decorate 110(g_tTexcdi4a) DescriptorSet 0 - Decorate 121(g_tTexcdu4a) DescriptorSet 0 - Decorate 140(Color) Location 0 - Decorate 144(Depth) BuiltIn FragDepth - Decorate 150(g_tTex1df4) DescriptorSet 0 - Decorate 150(g_tTex1df4) Binding 0 - Decorate 153(g_tTex1di4) DescriptorSet 0 - Decorate 156(g_tTex1du4) DescriptorSet 0 - Decorate 159(g_tTex2df4) DescriptorSet 0 - Decorate 162(g_tTex2di4) DescriptorSet 0 - Decorate 165(g_tTex2du4) DescriptorSet 0 - Decorate 168(g_tTex3df4) DescriptorSet 0 - Decorate 171(g_tTex3di4) DescriptorSet 0 - Decorate 174(g_tTex3du4) DescriptorSet 0 - Decorate 177(g_tTexcdf4) DescriptorSet 0 - Decorate 180(g_tTexcdi4) DescriptorSet 0 - Decorate 183(g_tTexcdu4) DescriptorSet 0 + Decorate 35(g_tTex1di4a) DescriptorSet 0 + Decorate 50(g_tTex1du4a) DescriptorSet 0 + Decorate 64(g_tTex2df4a) DescriptorSet 0 + Decorate 82(g_tTex2di4a) DescriptorSet 0 + Decorate 97(g_tTex2du4a) DescriptorSet 0 + Decorate 112(g_tTexcdf4a) DescriptorSet 0 + Decorate 129(g_tTexcdi4a) DescriptorSet 0 + Decorate 144(g_tTexcdu4a) DescriptorSet 0 + Decorate 167(Color) Location 0 + Decorate 171(Depth) BuiltIn FragDepth + Decorate 177(g_tTex1df4) DescriptorSet 0 + Decorate 177(g_tTex1df4) Binding 0 + Decorate 180(g_tTex1di4) DescriptorSet 0 + Decorate 183(g_tTex1du4) DescriptorSet 0 + Decorate 186(g_tTex2df4) DescriptorSet 0 + Decorate 189(g_tTex2di4) DescriptorSet 0 + Decorate 192(g_tTex2du4) DescriptorSet 0 + Decorate 195(g_tTex3df4) DescriptorSet 0 + Decorate 198(g_tTex3di4) DescriptorSet 0 + Decorate 201(g_tTex3du4) DescriptorSet 0 + Decorate 204(g_tTexcdf4) DescriptorSet 0 + Decorate 207(g_tTexcdi4) DescriptorSet 0 + Decorate 210(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -475,182 +475,209 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 29: TypeInt 32 1 - 30: TypeImage 29(int) 1D array sampled format:Unknown - 31: TypePointer UniformConstant 30 - 32(g_tTex1di4a): 31(ptr) Variable UniformConstant - 35: TypeImage 29(int) 1D depth array sampled format:Unknown - 36: TypeSampledImage 35 - 42: TypeInt 32 0 - 43: TypeImage 42(int) 1D array sampled format:Unknown - 44: TypePointer UniformConstant 43 - 45(g_tTex1du4a): 44(ptr) Variable UniformConstant - 48: TypeImage 42(int) 1D depth array sampled format:Unknown - 49: TypeSampledImage 48 - 55: TypeImage 6(float) 2D array sampled format:Unknown - 56: TypePointer UniformConstant 55 - 57(g_tTex2df4a): 56(ptr) Variable UniformConstant - 60: TypeImage 6(float) 2D depth array sampled format:Unknown - 61: TypeSampledImage 60 - 63: TypeVector 6(float) 3 - 64: 6(float) Constant 1050253722 - 65: 63(fvec3) ConstantComposite 21 22 64 - 70: TypeImage 29(int) 2D array sampled format:Unknown - 71: TypePointer UniformConstant 70 - 72(g_tTex2di4a): 71(ptr) Variable UniformConstant - 75: TypeImage 29(int) 2D depth array sampled format:Unknown - 76: TypeSampledImage 75 - 82: TypeImage 42(int) 2D array sampled format:Unknown - 83: TypePointer UniformConstant 82 - 84(g_tTex2du4a): 83(ptr) Variable UniformConstant - 87: TypeImage 42(int) 2D depth array sampled format:Unknown - 88: TypeSampledImage 87 - 94: TypeImage 6(float) Cube array sampled format:Unknown - 95: TypePointer UniformConstant 94 - 96(g_tTexcdf4a): 95(ptr) Variable UniformConstant - 99: TypeImage 6(float) Cube depth array sampled format:Unknown - 100: TypeSampledImage 99 - 102: TypeVector 6(float) 4 - 103: 6(float) Constant 1053609165 - 104: 102(fvec4) ConstantComposite 21 22 64 103 - 108: TypeImage 29(int) Cube array sampled format:Unknown - 109: TypePointer UniformConstant 108 -110(g_tTexcdi4a): 109(ptr) Variable UniformConstant - 113: TypeImage 29(int) Cube depth array sampled format:Unknown - 114: TypeSampledImage 113 - 119: TypeImage 42(int) Cube array sampled format:Unknown - 120: TypePointer UniformConstant 119 -121(g_tTexcdu4a): 120(ptr) Variable UniformConstant - 124: TypeImage 42(int) Cube depth array sampled format:Unknown - 125: TypeSampledImage 124 - 129(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) - 130: TypePointer Function 129(PS_OUTPUT) - 132: 29(int) Constant 0 - 133: 6(float) Constant 1065353216 - 134: 102(fvec4) ConstantComposite 133 133 133 133 - 135: TypePointer Function 102(fvec4) - 137: 29(int) Constant 1 - 139: TypePointer Output 102(fvec4) - 140(Color): 139(ptr) Variable Output - 143: TypePointer Output 6(float) - 144(Depth): 143(ptr) Variable Output - 148: TypeImage 6(float) 1D sampled format:Unknown - 149: TypePointer UniformConstant 148 - 150(g_tTex1df4): 149(ptr) Variable UniformConstant - 151: TypeImage 29(int) 1D sampled format:Unknown - 152: TypePointer UniformConstant 151 - 153(g_tTex1di4): 152(ptr) Variable UniformConstant - 154: TypeImage 42(int) 1D sampled format:Unknown - 155: TypePointer UniformConstant 154 - 156(g_tTex1du4): 155(ptr) Variable UniformConstant - 157: TypeImage 6(float) 2D sampled format:Unknown - 158: TypePointer UniformConstant 157 - 159(g_tTex2df4): 158(ptr) Variable UniformConstant - 160: TypeImage 29(int) 2D sampled format:Unknown - 161: TypePointer UniformConstant 160 - 162(g_tTex2di4): 161(ptr) Variable UniformConstant - 163: TypeImage 42(int) 2D sampled format:Unknown - 164: TypePointer UniformConstant 163 - 165(g_tTex2du4): 164(ptr) Variable UniformConstant - 166: TypeImage 6(float) 3D sampled format:Unknown - 167: TypePointer UniformConstant 166 - 168(g_tTex3df4): 167(ptr) Variable UniformConstant - 169: TypeImage 29(int) 3D sampled format:Unknown - 170: TypePointer UniformConstant 169 - 171(g_tTex3di4): 170(ptr) Variable UniformConstant - 172: TypeImage 42(int) 3D sampled format:Unknown - 173: TypePointer UniformConstant 172 - 174(g_tTex3du4): 173(ptr) Variable UniformConstant - 175: TypeImage 6(float) Cube sampled format:Unknown + 25: TypeVector 6(float) 3 + 32: TypeInt 32 1 + 33: TypeImage 32(int) 1D array sampled format:Unknown + 34: TypePointer UniformConstant 33 + 35(g_tTex1di4a): 34(ptr) Variable UniformConstant + 38: TypeImage 32(int) 1D depth array sampled format:Unknown + 39: TypeSampledImage 38 + 47: TypeInt 32 0 + 48: TypeImage 47(int) 1D array sampled format:Unknown + 49: TypePointer UniformConstant 48 + 50(g_tTex1du4a): 49(ptr) Variable UniformConstant + 53: TypeImage 47(int) 1D depth array sampled format:Unknown + 54: TypeSampledImage 53 + 62: TypeImage 6(float) 2D array sampled format:Unknown + 63: TypePointer UniformConstant 62 + 64(g_tTex2df4a): 63(ptr) Variable UniformConstant + 67: TypeImage 6(float) 2D depth array sampled format:Unknown + 68: TypeSampledImage 67 + 70: 6(float) Constant 1050253722 + 71: 25(fvec3) ConstantComposite 21 22 70 + 72: TypeVector 6(float) 4 + 80: TypeImage 32(int) 2D array sampled format:Unknown + 81: TypePointer UniformConstant 80 + 82(g_tTex2di4a): 81(ptr) Variable UniformConstant + 85: TypeImage 32(int) 2D depth array sampled format:Unknown + 86: TypeSampledImage 85 + 95: TypeImage 47(int) 2D array sampled format:Unknown + 96: TypePointer UniformConstant 95 + 97(g_tTex2du4a): 96(ptr) Variable UniformConstant + 100: TypeImage 47(int) 2D depth array sampled format:Unknown + 101: TypeSampledImage 100 + 110: TypeImage 6(float) Cube array sampled format:Unknown + 111: TypePointer UniformConstant 110 +112(g_tTexcdf4a): 111(ptr) Variable UniformConstant + 115: TypeImage 6(float) Cube depth array sampled format:Unknown + 116: TypeSampledImage 115 + 118: 6(float) Constant 1053609165 + 119: 72(fvec4) ConstantComposite 21 22 70 118 + 127: TypeImage 32(int) Cube array sampled format:Unknown + 128: TypePointer UniformConstant 127 +129(g_tTexcdi4a): 128(ptr) Variable UniformConstant + 132: TypeImage 32(int) Cube depth array sampled format:Unknown + 133: TypeSampledImage 132 + 142: TypeImage 47(int) Cube array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTexcdu4a): 143(ptr) Variable UniformConstant + 147: TypeImage 47(int) Cube depth array sampled format:Unknown + 148: TypeSampledImage 147 + 156(PS_OUTPUT): TypeStruct 72(fvec4) 6(float) + 157: TypePointer Function 156(PS_OUTPUT) + 159: 32(int) Constant 0 + 160: 6(float) Constant 1065353216 + 161: 72(fvec4) ConstantComposite 160 160 160 160 + 162: TypePointer Function 72(fvec4) + 164: 32(int) Constant 1 + 166: TypePointer Output 72(fvec4) + 167(Color): 166(ptr) Variable Output + 170: TypePointer Output 6(float) + 171(Depth): 170(ptr) Variable Output + 175: TypeImage 6(float) 1D sampled format:Unknown 176: TypePointer UniformConstant 175 - 177(g_tTexcdf4): 176(ptr) Variable UniformConstant - 178: TypeImage 29(int) Cube sampled format:Unknown + 177(g_tTex1df4): 176(ptr) Variable UniformConstant + 178: TypeImage 32(int) 1D sampled format:Unknown 179: TypePointer UniformConstant 178 - 180(g_tTexcdi4): 179(ptr) Variable UniformConstant - 181: TypeImage 42(int) Cube sampled format:Unknown + 180(g_tTex1di4): 179(ptr) Variable UniformConstant + 181: TypeImage 47(int) 1D sampled format:Unknown 182: TypePointer UniformConstant 181 - 183(g_tTexcdu4): 182(ptr) Variable UniformConstant + 183(g_tTex1du4): 182(ptr) Variable UniformConstant + 184: TypeImage 6(float) 2D sampled format:Unknown + 185: TypePointer UniformConstant 184 + 186(g_tTex2df4): 185(ptr) Variable UniformConstant + 187: TypeImage 32(int) 2D sampled format:Unknown + 188: TypePointer UniformConstant 187 + 189(g_tTex2di4): 188(ptr) Variable UniformConstant + 190: TypeImage 47(int) 2D sampled format:Unknown + 191: TypePointer UniformConstant 190 + 192(g_tTex2du4): 191(ptr) Variable UniformConstant + 193: TypeImage 6(float) 3D sampled format:Unknown + 194: TypePointer UniformConstant 193 + 195(g_tTex3df4): 194(ptr) Variable UniformConstant + 196: TypeImage 32(int) 3D sampled format:Unknown + 197: TypePointer UniformConstant 196 + 198(g_tTex3di4): 197(ptr) Variable UniformConstant + 199: TypeImage 47(int) 3D sampled format:Unknown + 200: TypePointer UniformConstant 199 + 201(g_tTex3du4): 200(ptr) Variable UniformConstant + 202: TypeImage 6(float) Cube sampled format:Unknown + 203: TypePointer UniformConstant 202 + 204(g_tTexcdf4): 203(ptr) Variable UniformConstant + 205: TypeImage 32(int) Cube sampled format:Unknown + 206: TypePointer UniformConstant 205 + 207(g_tTexcdi4): 206(ptr) Variable UniformConstant + 208: TypeImage 47(int) Cube sampled format:Unknown + 209: TypePointer UniformConstant 208 + 210(g_tTexcdu4): 209(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function - 28(r12): 7(ptr) Variable Function - 41(r14): 7(ptr) Variable Function - 54(r30): 7(ptr) Variable Function - 69(r32): 7(ptr) Variable Function - 81(r34): 7(ptr) Variable Function - 93(r60): 7(ptr) Variable Function - 107(r62): 7(ptr) Variable Function - 118(r64): 7(ptr) Variable Function - 131(psout): 130(ptr) Variable Function + 31(r12): 7(ptr) Variable Function + 46(r14): 7(ptr) Variable Function + 61(r30): 7(ptr) Variable Function + 79(r32): 7(ptr) Variable Function + 94(r34): 7(ptr) Variable Function + 109(r60): 7(ptr) Variable Function + 126(r62): 7(ptr) Variable Function + 141(r64): 7(ptr) Variable Function + 158(psout): 157(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 26: 6(float) CompositeExtract 25 0 - 27: 6(float) ImageSampleDrefImplicitLod 19 25 26 - Store 8(r10) 27 - 33: 30 Load 32(g_tTex1di4a) - 34: 13 Load 15(g_sSamp) - 37: 36 SampledImage 33 34 - 38: 6(float) CompositeExtract 23 0 - 39: 6(float) CompositeExtract 38 0 - 40: 6(float) ImageSampleDrefImplicitLod 37 38 39 - Store 28(r12) 40 - 46: 43 Load 45(g_tTex1du4a) - 47: 13 Load 15(g_sSamp) - 50: 49 SampledImage 46 47 - 51: 6(float) CompositeExtract 23 0 - 52: 6(float) CompositeExtract 51 0 - 53: 6(float) ImageSampleDrefImplicitLod 50 51 52 - Store 41(r14) 53 - 58: 55 Load 57(g_tTex2df4a) - 59: 13 Load 15(g_sSamp) - 62: 61 SampledImage 58 59 - 66: 6(float) CompositeExtract 65 0 - 67: 6(float) CompositeExtract 66 0 - 68: 6(float) ImageSampleDrefImplicitLod 62 66 67 - Store 54(r30) 68 - 73: 70 Load 72(g_tTex2di4a) - 74: 13 Load 15(g_sSamp) - 77: 76 SampledImage 73 74 - 78: 6(float) CompositeExtract 65 0 - 79: 6(float) CompositeExtract 78 0 - 80: 6(float) ImageSampleDrefImplicitLod 77 78 79 - Store 69(r32) 80 - 85: 82 Load 84(g_tTex2du4a) - 86: 13 Load 15(g_sSamp) - 89: 88 SampledImage 85 86 - 90: 6(float) CompositeExtract 65 0 - 91: 6(float) CompositeExtract 90 0 - 92: 6(float) ImageSampleDrefImplicitLod 89 90 91 - Store 81(r34) 92 - 97: 94 Load 96(g_tTexcdf4a) - 98: 13 Load 15(g_sSamp) - 101: 100 SampledImage 97 98 - 105: 6(float) CompositeExtract 104 0 - 106: 6(float) ImageSampleDrefImplicitLod 101 105 24 - Store 93(r60) 106 - 111: 108 Load 110(g_tTexcdi4a) - 112: 13 Load 15(g_sSamp) - 115: 114 SampledImage 111 112 - 116: 6(float) CompositeExtract 104 0 - 117: 6(float) ImageSampleDrefImplicitLod 115 116 24 - Store 107(r62) 117 - 122: 119 Load 121(g_tTexcdu4a) - 123: 13 Load 15(g_sSamp) - 126: 125 SampledImage 122 123 - 127: 6(float) CompositeExtract 104 0 - 128: 6(float) ImageSampleDrefImplicitLod 126 127 24 - Store 118(r64) 128 - 136: 135(ptr) AccessChain 131(psout) 132 - Store 136 134 - 138: 7(ptr) AccessChain 131(psout) 137 - Store 138 133 - 141: 135(ptr) AccessChain 131(psout) 132 - 142: 102(fvec4) Load 141 - Store 140(Color) 142 - 145: 7(ptr) AccessChain 131(psout) 137 - 146: 6(float) Load 145 - Store 144(Depth) 146 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 29: 6(float) CompositeExtract 28 2 + 30: 6(float) ImageSampleDrefImplicitLod 19 28 29 + Store 8(r10) 30 + 36: 33 Load 35(g_tTex1di4a) + 37: 13 Load 15(g_sSamp) + 40: 39 SampledImage 36 37 + 41: 6(float) CompositeExtract 23 0 + 42: 6(float) CompositeExtract 23 1 + 43: 25(fvec3) CompositeConstruct 41 42 24 + 44: 6(float) CompositeExtract 43 2 + 45: 6(float) ImageSampleDrefImplicitLod 40 43 44 + Store 31(r12) 45 + 51: 48 Load 50(g_tTex1du4a) + 52: 13 Load 15(g_sSamp) + 55: 54 SampledImage 51 52 + 56: 6(float) CompositeExtract 23 0 + 57: 6(float) CompositeExtract 23 1 + 58: 25(fvec3) CompositeConstruct 56 57 24 + 59: 6(float) CompositeExtract 58 2 + 60: 6(float) ImageSampleDrefImplicitLod 55 58 59 + Store 46(r14) 60 + 65: 62 Load 64(g_tTex2df4a) + 66: 13 Load 15(g_sSamp) + 69: 68 SampledImage 65 66 + 73: 6(float) CompositeExtract 71 0 + 74: 6(float) CompositeExtract 71 1 + 75: 6(float) CompositeExtract 71 2 + 76: 72(fvec4) CompositeConstruct 73 74 75 24 + 77: 6(float) CompositeExtract 76 3 + 78: 6(float) ImageSampleDrefImplicitLod 69 76 77 + Store 61(r30) 78 + 83: 80 Load 82(g_tTex2di4a) + 84: 13 Load 15(g_sSamp) + 87: 86 SampledImage 83 84 + 88: 6(float) CompositeExtract 71 0 + 89: 6(float) CompositeExtract 71 1 + 90: 6(float) CompositeExtract 71 2 + 91: 72(fvec4) CompositeConstruct 88 89 90 24 + 92: 6(float) CompositeExtract 91 3 + 93: 6(float) ImageSampleDrefImplicitLod 87 91 92 + Store 79(r32) 93 + 98: 95 Load 97(g_tTex2du4a) + 99: 13 Load 15(g_sSamp) + 102: 101 SampledImage 98 99 + 103: 6(float) CompositeExtract 71 0 + 104: 6(float) CompositeExtract 71 1 + 105: 6(float) CompositeExtract 71 2 + 106: 72(fvec4) CompositeConstruct 103 104 105 24 + 107: 6(float) CompositeExtract 106 3 + 108: 6(float) ImageSampleDrefImplicitLod 102 106 107 + Store 94(r34) 108 + 113: 110 Load 112(g_tTexcdf4a) + 114: 13 Load 15(g_sSamp) + 117: 116 SampledImage 113 114 + 120: 6(float) CompositeExtract 119 0 + 121: 6(float) CompositeExtract 119 1 + 122: 6(float) CompositeExtract 119 2 + 123: 6(float) CompositeExtract 119 3 + 124: 72(fvec4) CompositeConstruct 120 121 122 123 + 125: 6(float) ImageSampleDrefImplicitLod 117 124 24 + Store 109(r60) 125 + 130: 127 Load 129(g_tTexcdi4a) + 131: 13 Load 15(g_sSamp) + 134: 133 SampledImage 130 131 + 135: 6(float) CompositeExtract 119 0 + 136: 6(float) CompositeExtract 119 1 + 137: 6(float) CompositeExtract 119 2 + 138: 6(float) CompositeExtract 119 3 + 139: 72(fvec4) CompositeConstruct 135 136 137 138 + 140: 6(float) ImageSampleDrefImplicitLod 134 139 24 + Store 126(r62) 140 + 145: 142 Load 144(g_tTexcdu4a) + 146: 13 Load 15(g_sSamp) + 149: 148 SampledImage 145 146 + 150: 6(float) CompositeExtract 119 0 + 151: 6(float) CompositeExtract 119 1 + 152: 6(float) CompositeExtract 119 2 + 153: 6(float) CompositeExtract 119 3 + 154: 72(fvec4) CompositeConstruct 150 151 152 153 + 155: 6(float) ImageSampleDrefImplicitLod 149 154 24 + Store 141(r64) 155 + 163: 162(ptr) AccessChain 158(psout) 159 + Store 163 161 + 165: 7(ptr) AccessChain 158(psout) 164 + Store 165 160 + 168: 162(ptr) AccessChain 158(psout) 159 + 169: 72(fvec4) Load 168 + Store 167(Color) 169 + 172: 7(ptr) AccessChain 158(psout) 164 + 173: 6(float) Load 172 + Store 171(Depth) 173 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out index 253a59e26be31fc8b96bed95724dbea93002b437..acd24b8bb472cd95bdcc4803486f232098c20d0e 100644 --- a/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.basic.dx10.frag.out @@ -2,17 +2,17 @@ hlsl.samplecmp.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r00' (temp float) -0:42 texture (global float) +0:42 texture (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -20,11 +20,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r02' (temp float) -0:43 texture (global float) +0:43 texture (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -32,11 +32,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r04' (temp float) -0:44 texture (global float) +0:44 texture (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -44,11 +44,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r20' (temp float) -0:47 texture (global float) +0:47 texture (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -57,11 +57,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r22' (temp float) -0:48 texture (global float) +0:48 texture (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -70,11 +70,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r24' (temp float) -0:49 texture (global float) +0:49 texture (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -83,11 +83,11 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r50' (temp float) -0:53 texture (global float) +0:53 texture (temp float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -97,11 +97,11 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r52' (temp float) -0:54 texture (global float) +0:54 texture (temp float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -111,11 +111,11 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r54' (temp float) -0:55 texture (global float) +0:55 texture (temp float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:? Sequence -0:? Sequence +0:60 Sequence +0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -177,8 +179,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -187,17 +187,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r00' (temp float) -0:42 texture (global float) +0:42 texture (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -205,11 +205,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r02' (temp float) -0:43 texture (global float) +0:43 texture (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -217,11 +217,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r04' (temp float) -0:44 texture (global float) +0:44 texture (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -229,11 +229,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r20' (temp float) -0:47 texture (global float) +0:47 texture (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -242,11 +242,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r22' (temp float) -0:48 texture (global float) +0:48 texture (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -255,11 +255,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r24' (temp float) -0:49 texture (global float) +0:49 texture (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -268,11 +268,11 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r50' (temp float) -0:53 texture (global float) +0:53 texture (temp float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -282,11 +282,11 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r52' (temp float) -0:54 texture (global float) +0:54 texture (temp float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -296,11 +296,11 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r54' (temp float) -0:55 texture (global float) +0:55 texture (temp float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -324,8 +324,8 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:? Sequence -0:? Sequence +0:60 Sequence +0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) @@ -340,6 +340,8 @@ gl_FragCoord origin is upper left 0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -362,84 +364,82 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 182 +// Id's are bound by 200 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 138 142 + EntryPoint Fragment 4 "main" 156 160 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 24 "r02" - Name 28 "g_tTex1di4" - Name 36 "r04" - Name 40 "g_tTex1du4" - Name 48 "r20" - Name 51 "g_tTex2df4" - Name 63 "r22" - Name 66 "g_tTex2di4" - Name 75 "r24" - Name 78 "g_tTex2du4" - Name 87 "r50" - Name 90 "g_tTexcdf4" - Name 102 "r52" - Name 105 "g_tTexcdi4" - Name 114 "r54" - Name 117 "g_tTexcdu4" - Name 127 "PS_OUTPUT" - MemberName 127(PS_OUTPUT) 0 "Color" - MemberName 127(PS_OUTPUT) 1 "Depth" - Name 129 "psout" - Name 138 "Color" - Name 142 "Depth" - Name 148 "g_tTex3df4" - Name 151 "g_tTex3di4" - Name 154 "g_tTex3du4" - Name 157 "g_tTex1df4a" - Name 160 "g_tTex1di4a" - Name 163 "g_tTex1du4a" - Name 166 "g_tTex2df4a" - Name 169 "g_tTex2di4a" - Name 172 "g_tTex2du4a" - Name 175 "g_tTexcdf4a" - Name 178 "g_tTexcdi4a" - Name 181 "g_tTexcdu4a" + Name 26 "r02" + Name 30 "g_tTex1di4" + Name 39 "r04" + Name 43 "g_tTex1du4" + Name 52 "r20" + Name 55 "g_tTex2df4" + Name 69 "r22" + Name 72 "g_tTex2di4" + Name 83 "r24" + Name 86 "g_tTex2du4" + Name 97 "r50" + Name 100 "g_tTexcdf4" + Name 115 "r52" + Name 118 "g_tTexcdi4" + Name 130 "r54" + Name 133 "g_tTexcdu4" + Name 145 "PS_OUTPUT" + MemberName 145(PS_OUTPUT) 0 "Color" + MemberName 145(PS_OUTPUT) 1 "Depth" + Name 147 "psout" + Name 156 "Color" + Name 160 "Depth" + Name 166 "g_tTex3df4" + Name 169 "g_tTex3di4" + Name 172 "g_tTex3du4" + Name 175 "g_tTex1df4a" + Name 178 "g_tTex1di4a" + Name 181 "g_tTex1du4a" + Name 184 "g_tTex2df4a" + Name 187 "g_tTex2di4a" + Name 190 "g_tTex2du4a" + Name 193 "g_tTexcdf4a" + Name 196 "g_tTexcdi4a" + Name 199 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 28(g_tTex1di4) DescriptorSet 0 - Decorate 40(g_tTex1du4) DescriptorSet 0 - Decorate 51(g_tTex2df4) DescriptorSet 0 - Decorate 66(g_tTex2di4) DescriptorSet 0 - Decorate 78(g_tTex2du4) DescriptorSet 0 - Decorate 90(g_tTexcdf4) DescriptorSet 0 - Decorate 105(g_tTexcdi4) DescriptorSet 0 - Decorate 117(g_tTexcdu4) DescriptorSet 0 - Decorate 138(Color) Location 0 - Decorate 142(Depth) BuiltIn FragDepth - Decorate 148(g_tTex3df4) DescriptorSet 0 - Decorate 151(g_tTex3di4) DescriptorSet 0 - Decorate 154(g_tTex3du4) DescriptorSet 0 - Decorate 157(g_tTex1df4a) DescriptorSet 0 - Decorate 160(g_tTex1di4a) DescriptorSet 0 - Decorate 163(g_tTex1du4a) DescriptorSet 0 - Decorate 166(g_tTex2df4a) DescriptorSet 0 - Decorate 169(g_tTex2di4a) DescriptorSet 0 - Decorate 172(g_tTex2du4a) DescriptorSet 0 - Decorate 175(g_tTexcdf4a) DescriptorSet 0 - Decorate 178(g_tTexcdi4a) DescriptorSet 0 - Decorate 181(g_tTexcdu4a) DescriptorSet 0 + Decorate 30(g_tTex1di4) DescriptorSet 0 + Decorate 43(g_tTex1du4) DescriptorSet 0 + Decorate 55(g_tTex2df4) DescriptorSet 0 + Decorate 72(g_tTex2di4) DescriptorSet 0 + Decorate 86(g_tTex2du4) DescriptorSet 0 + Decorate 100(g_tTexcdf4) DescriptorSet 0 + Decorate 118(g_tTexcdi4) DescriptorSet 0 + Decorate 133(g_tTexcdu4) DescriptorSet 0 + Decorate 156(Color) Location 0 + Decorate 160(Depth) BuiltIn FragDepth + Decorate 166(g_tTex3df4) DescriptorSet 0 + Decorate 169(g_tTex3di4) DescriptorSet 0 + Decorate 172(g_tTex3du4) DescriptorSet 0 + Decorate 175(g_tTex1df4a) DescriptorSet 0 + Decorate 178(g_tTex1di4a) DescriptorSet 0 + Decorate 181(g_tTex1du4a) DescriptorSet 0 + Decorate 184(g_tTex2df4a) DescriptorSet 0 + Decorate 187(g_tTex2di4a) DescriptorSet 0 + Decorate 190(g_tTex2du4a) DescriptorSet 0 + Decorate 193(g_tTexcdf4a) DescriptorSet 0 + Decorate 196(g_tTexcdi4a) DescriptorSet 0 + Decorate 199(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -454,183 +454,201 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 25: TypeInt 32 1 - 26: TypeImage 25(int) 1D sampled format:Unknown - 27: TypePointer UniformConstant 26 - 28(g_tTex1di4): 27(ptr) Variable UniformConstant - 31: TypeImage 25(int) 1D depth sampled format:Unknown - 32: TypeSampledImage 31 - 37: TypeInt 32 0 - 38: TypeImage 37(int) 1D sampled format:Unknown - 39: TypePointer UniformConstant 38 - 40(g_tTex1du4): 39(ptr) Variable UniformConstant - 43: TypeImage 37(int) 1D depth sampled format:Unknown - 44: TypeSampledImage 43 - 49: TypeImage 6(float) 2D sampled format:Unknown - 50: TypePointer UniformConstant 49 - 51(g_tTex2df4): 50(ptr) Variable UniformConstant - 54: TypeImage 6(float) 2D depth sampled format:Unknown - 55: TypeSampledImage 54 - 57: TypeVector 6(float) 2 - 58: 6(float) Constant 1045220557 - 59: 57(fvec2) ConstantComposite 20 58 - 64: TypeImage 25(int) 2D sampled format:Unknown - 65: TypePointer UniformConstant 64 - 66(g_tTex2di4): 65(ptr) Variable UniformConstant - 69: TypeImage 25(int) 2D depth sampled format:Unknown - 70: TypeSampledImage 69 - 76: TypeImage 37(int) 2D sampled format:Unknown - 77: TypePointer UniformConstant 76 - 78(g_tTex2du4): 77(ptr) Variable UniformConstant - 81: TypeImage 37(int) 2D depth sampled format:Unknown - 82: TypeSampledImage 81 - 88: TypeImage 6(float) Cube sampled format:Unknown - 89: TypePointer UniformConstant 88 - 90(g_tTexcdf4): 89(ptr) Variable UniformConstant - 93: TypeImage 6(float) Cube depth sampled format:Unknown - 94: TypeSampledImage 93 - 96: TypeVector 6(float) 3 - 97: 6(float) Constant 1050253722 - 98: 96(fvec3) ConstantComposite 20 58 97 - 103: TypeImage 25(int) Cube sampled format:Unknown - 104: TypePointer UniformConstant 103 - 105(g_tTexcdi4): 104(ptr) Variable UniformConstant - 108: TypeImage 25(int) Cube depth sampled format:Unknown - 109: TypeSampledImage 108 - 115: TypeImage 37(int) Cube sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTexcdu4): 116(ptr) Variable UniformConstant - 120: TypeImage 37(int) Cube depth sampled format:Unknown - 121: TypeSampledImage 120 - 126: TypeVector 6(float) 4 - 127(PS_OUTPUT): TypeStruct 126(fvec4) 6(float) - 128: TypePointer Function 127(PS_OUTPUT) - 130: 25(int) Constant 0 - 131: 6(float) Constant 1065353216 - 132: 126(fvec4) ConstantComposite 131 131 131 131 - 133: TypePointer Function 126(fvec4) - 135: 25(int) Constant 1 - 137: TypePointer Output 126(fvec4) - 138(Color): 137(ptr) Variable Output - 141: TypePointer Output 6(float) - 142(Depth): 141(ptr) Variable Output - 146: TypeImage 6(float) 3D sampled format:Unknown - 147: TypePointer UniformConstant 146 - 148(g_tTex3df4): 147(ptr) Variable UniformConstant - 149: TypeImage 25(int) 3D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex3di4): 150(ptr) Variable UniformConstant - 152: TypeImage 37(int) 3D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex3du4): 153(ptr) Variable UniformConstant - 155: TypeImage 6(float) 1D array sampled format:Unknown - 156: TypePointer UniformConstant 155 -157(g_tTex1df4a): 156(ptr) Variable UniformConstant - 158: TypeImage 25(int) 1D array sampled format:Unknown - 159: TypePointer UniformConstant 158 -160(g_tTex1di4a): 159(ptr) Variable UniformConstant - 161: TypeImage 37(int) 1D array sampled format:Unknown - 162: TypePointer UniformConstant 161 -163(g_tTex1du4a): 162(ptr) Variable UniformConstant - 164: TypeImage 6(float) 2D array sampled format:Unknown + 22: TypeVector 6(float) 2 + 27: TypeInt 32 1 + 28: TypeImage 27(int) 1D sampled format:Unknown + 29: TypePointer UniformConstant 28 + 30(g_tTex1di4): 29(ptr) Variable UniformConstant + 33: TypeImage 27(int) 1D depth sampled format:Unknown + 34: TypeSampledImage 33 + 40: TypeInt 32 0 + 41: TypeImage 40(int) 1D sampled format:Unknown + 42: TypePointer UniformConstant 41 + 43(g_tTex1du4): 42(ptr) Variable UniformConstant + 46: TypeImage 40(int) 1D depth sampled format:Unknown + 47: TypeSampledImage 46 + 53: TypeImage 6(float) 2D sampled format:Unknown + 54: TypePointer UniformConstant 53 + 55(g_tTex2df4): 54(ptr) Variable UniformConstant + 58: TypeImage 6(float) 2D depth sampled format:Unknown + 59: TypeSampledImage 58 + 61: 6(float) Constant 1045220557 + 62: 22(fvec2) ConstantComposite 20 61 + 63: TypeVector 6(float) 3 + 70: TypeImage 27(int) 2D sampled format:Unknown + 71: TypePointer UniformConstant 70 + 72(g_tTex2di4): 71(ptr) Variable UniformConstant + 75: TypeImage 27(int) 2D depth sampled format:Unknown + 76: TypeSampledImage 75 + 84: TypeImage 40(int) 2D sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2du4): 85(ptr) Variable UniformConstant + 89: TypeImage 40(int) 2D depth sampled format:Unknown + 90: TypeSampledImage 89 + 98: TypeImage 6(float) Cube sampled format:Unknown + 99: TypePointer UniformConstant 98 + 100(g_tTexcdf4): 99(ptr) Variable UniformConstant + 103: TypeImage 6(float) Cube depth sampled format:Unknown + 104: TypeSampledImage 103 + 106: 6(float) Constant 1050253722 + 107: 63(fvec3) ConstantComposite 20 61 106 + 108: TypeVector 6(float) 4 + 116: TypeImage 27(int) Cube sampled format:Unknown + 117: TypePointer UniformConstant 116 + 118(g_tTexcdi4): 117(ptr) Variable UniformConstant + 121: TypeImage 27(int) Cube depth sampled format:Unknown + 122: TypeSampledImage 121 + 131: TypeImage 40(int) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdu4): 132(ptr) Variable UniformConstant + 136: TypeImage 40(int) Cube depth sampled format:Unknown + 137: TypeSampledImage 136 + 145(PS_OUTPUT): TypeStruct 108(fvec4) 6(float) + 146: TypePointer Function 145(PS_OUTPUT) + 148: 27(int) Constant 0 + 149: 6(float) Constant 1065353216 + 150: 108(fvec4) ConstantComposite 149 149 149 149 + 151: TypePointer Function 108(fvec4) + 153: 27(int) Constant 1 + 155: TypePointer Output 108(fvec4) + 156(Color): 155(ptr) Variable Output + 159: TypePointer Output 6(float) + 160(Depth): 159(ptr) Variable Output + 164: TypeImage 6(float) 3D sampled format:Unknown 165: TypePointer UniformConstant 164 -166(g_tTex2df4a): 165(ptr) Variable UniformConstant - 167: TypeImage 25(int) 2D array sampled format:Unknown + 166(g_tTex3df4): 165(ptr) Variable UniformConstant + 167: TypeImage 27(int) 3D sampled format:Unknown 168: TypePointer UniformConstant 167 -169(g_tTex2di4a): 168(ptr) Variable UniformConstant - 170: TypeImage 37(int) 2D array sampled format:Unknown + 169(g_tTex3di4): 168(ptr) Variable UniformConstant + 170: TypeImage 40(int) 3D sampled format:Unknown 171: TypePointer UniformConstant 170 -172(g_tTex2du4a): 171(ptr) Variable UniformConstant - 173: TypeImage 6(float) Cube array sampled format:Unknown + 172(g_tTex3du4): 171(ptr) Variable UniformConstant + 173: TypeImage 6(float) 1D array sampled format:Unknown 174: TypePointer UniformConstant 173 -175(g_tTexcdf4a): 174(ptr) Variable UniformConstant - 176: TypeImage 25(int) Cube array sampled format:Unknown +175(g_tTex1df4a): 174(ptr) Variable UniformConstant + 176: TypeImage 27(int) 1D array sampled format:Unknown 177: TypePointer UniformConstant 176 -178(g_tTexcdi4a): 177(ptr) Variable UniformConstant - 179: TypeImage 37(int) Cube array sampled format:Unknown +178(g_tTex1di4a): 177(ptr) Variable UniformConstant + 179: TypeImage 40(int) 1D array sampled format:Unknown 180: TypePointer UniformConstant 179 -181(g_tTexcdu4a): 180(ptr) Variable UniformConstant +181(g_tTex1du4a): 180(ptr) Variable UniformConstant + 182: TypeImage 6(float) 2D array sampled format:Unknown + 183: TypePointer UniformConstant 182 +184(g_tTex2df4a): 183(ptr) Variable UniformConstant + 185: TypeImage 27(int) 2D array sampled format:Unknown + 186: TypePointer UniformConstant 185 +187(g_tTex2di4a): 186(ptr) Variable UniformConstant + 188: TypeImage 40(int) 2D array sampled format:Unknown + 189: TypePointer UniformConstant 188 +190(g_tTex2du4a): 189(ptr) Variable UniformConstant + 191: TypeImage 6(float) Cube array sampled format:Unknown + 192: TypePointer UniformConstant 191 +193(g_tTexcdf4a): 192(ptr) Variable UniformConstant + 194: TypeImage 27(int) Cube array sampled format:Unknown + 195: TypePointer UniformConstant 194 +196(g_tTexcdi4a): 195(ptr) Variable UniformConstant + 197: TypeImage 40(int) Cube array sampled format:Unknown + 198: TypePointer UniformConstant 197 +199(g_tTexcdu4a): 198(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function - 24(r02): 7(ptr) Variable Function - 36(r04): 7(ptr) Variable Function - 48(r20): 7(ptr) Variable Function - 63(r22): 7(ptr) Variable Function - 75(r24): 7(ptr) Variable Function - 87(r50): 7(ptr) Variable Function - 102(r52): 7(ptr) Variable Function - 114(r54): 7(ptr) Variable Function - 129(psout): 128(ptr) Variable Function + 26(r02): 7(ptr) Variable Function + 39(r04): 7(ptr) Variable Function + 52(r20): 7(ptr) Variable Function + 69(r22): 7(ptr) Variable Function + 83(r24): 7(ptr) Variable Function + 97(r50): 7(ptr) Variable Function + 115(r52): 7(ptr) Variable Function + 130(r54): 7(ptr) Variable Function + 147(psout): 146(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 22: 6(float) CompositeExtract 20 0 - 23: 6(float) ImageSampleDrefImplicitLod 19 20 22 - Store 8(r00) 23 - 29: 26 Load 28(g_tTex1di4) - 30: 13 Load 15(g_sSamp) - 33: 32 SampledImage 29 30 - 34: 6(float) CompositeExtract 20 0 - 35: 6(float) ImageSampleDrefImplicitLod 33 20 34 - Store 24(r02) 35 - 41: 38 Load 40(g_tTex1du4) - 42: 13 Load 15(g_sSamp) - 45: 44 SampledImage 41 42 - 46: 6(float) CompositeExtract 20 0 - 47: 6(float) ImageSampleDrefImplicitLod 45 20 46 - Store 36(r04) 47 - 52: 49 Load 51(g_tTex2df4) - 53: 13 Load 15(g_sSamp) - 56: 55 SampledImage 52 53 - 60: 6(float) CompositeExtract 59 0 - 61: 6(float) CompositeExtract 60 0 - 62: 6(float) ImageSampleDrefImplicitLod 56 60 61 - Store 48(r20) 62 - 67: 64 Load 66(g_tTex2di4) - 68: 13 Load 15(g_sSamp) - 71: 70 SampledImage 67 68 - 72: 6(float) CompositeExtract 59 0 - 73: 6(float) CompositeExtract 72 0 - 74: 6(float) ImageSampleDrefImplicitLod 71 72 73 - Store 63(r22) 74 - 79: 76 Load 78(g_tTex2du4) - 80: 13 Load 15(g_sSamp) - 83: 82 SampledImage 79 80 - 84: 6(float) CompositeExtract 59 0 - 85: 6(float) CompositeExtract 84 0 - 86: 6(float) ImageSampleDrefImplicitLod 83 84 85 - Store 75(r24) 86 - 91: 88 Load 90(g_tTexcdf4) - 92: 13 Load 15(g_sSamp) - 95: 94 SampledImage 91 92 - 99: 6(float) CompositeExtract 98 0 - 100: 6(float) CompositeExtract 99 0 - 101: 6(float) ImageSampleDrefImplicitLod 95 99 100 - Store 87(r50) 101 - 106: 103 Load 105(g_tTexcdi4) - 107: 13 Load 15(g_sSamp) - 110: 109 SampledImage 106 107 - 111: 6(float) CompositeExtract 98 0 - 112: 6(float) CompositeExtract 111 0 - 113: 6(float) ImageSampleDrefImplicitLod 110 111 112 - Store 102(r52) 113 - 118: 115 Load 117(g_tTexcdu4) - 119: 13 Load 15(g_sSamp) - 122: 121 SampledImage 118 119 - 123: 6(float) CompositeExtract 98 0 - 124: 6(float) CompositeExtract 123 0 - 125: 6(float) ImageSampleDrefImplicitLod 122 123 124 - Store 114(r54) 125 - 134: 133(ptr) AccessChain 129(psout) 130 - Store 134 132 - 136: 7(ptr) AccessChain 129(psout) 135 - Store 136 131 - 139: 133(ptr) AccessChain 129(psout) 130 - 140: 126(fvec4) Load 139 - Store 138(Color) 140 - 143: 7(ptr) AccessChain 129(psout) 135 - 144: 6(float) Load 143 - Store 142(Depth) 144 + 23: 22(fvec2) CompositeConstruct 20 21 + 24: 6(float) CompositeExtract 23 1 + 25: 6(float) ImageSampleDrefImplicitLod 19 23 24 + Store 8(r00) 25 + 31: 28 Load 30(g_tTex1di4) + 32: 13 Load 15(g_sSamp) + 35: 34 SampledImage 31 32 + 36: 22(fvec2) CompositeConstruct 20 21 + 37: 6(float) CompositeExtract 36 1 + 38: 6(float) ImageSampleDrefImplicitLod 35 36 37 + Store 26(r02) 38 + 44: 41 Load 43(g_tTex1du4) + 45: 13 Load 15(g_sSamp) + 48: 47 SampledImage 44 45 + 49: 22(fvec2) CompositeConstruct 20 21 + 50: 6(float) CompositeExtract 49 1 + 51: 6(float) ImageSampleDrefImplicitLod 48 49 50 + Store 39(r04) 51 + 56: 53 Load 55(g_tTex2df4) + 57: 13 Load 15(g_sSamp) + 60: 59 SampledImage 56 57 + 64: 6(float) CompositeExtract 62 0 + 65: 6(float) CompositeExtract 62 1 + 66: 63(fvec3) CompositeConstruct 64 65 21 + 67: 6(float) CompositeExtract 66 2 + 68: 6(float) ImageSampleDrefImplicitLod 60 66 67 + Store 52(r20) 68 + 73: 70 Load 72(g_tTex2di4) + 74: 13 Load 15(g_sSamp) + 77: 76 SampledImage 73 74 + 78: 6(float) CompositeExtract 62 0 + 79: 6(float) CompositeExtract 62 1 + 80: 63(fvec3) CompositeConstruct 78 79 21 + 81: 6(float) CompositeExtract 80 2 + 82: 6(float) ImageSampleDrefImplicitLod 77 80 81 + Store 69(r22) 82 + 87: 84 Load 86(g_tTex2du4) + 88: 13 Load 15(g_sSamp) + 91: 90 SampledImage 87 88 + 92: 6(float) CompositeExtract 62 0 + 93: 6(float) CompositeExtract 62 1 + 94: 63(fvec3) CompositeConstruct 92 93 21 + 95: 6(float) CompositeExtract 94 2 + 96: 6(float) ImageSampleDrefImplicitLod 91 94 95 + Store 83(r24) 96 + 101: 98 Load 100(g_tTexcdf4) + 102: 13 Load 15(g_sSamp) + 105: 104 SampledImage 101 102 + 109: 6(float) CompositeExtract 107 0 + 110: 6(float) CompositeExtract 107 1 + 111: 6(float) CompositeExtract 107 2 + 112: 108(fvec4) CompositeConstruct 109 110 111 21 + 113: 6(float) CompositeExtract 112 3 + 114: 6(float) ImageSampleDrefImplicitLod 105 112 113 + Store 97(r50) 114 + 119: 116 Load 118(g_tTexcdi4) + 120: 13 Load 15(g_sSamp) + 123: 122 SampledImage 119 120 + 124: 6(float) CompositeExtract 107 0 + 125: 6(float) CompositeExtract 107 1 + 126: 6(float) CompositeExtract 107 2 + 127: 108(fvec4) CompositeConstruct 124 125 126 21 + 128: 6(float) CompositeExtract 127 3 + 129: 6(float) ImageSampleDrefImplicitLod 123 127 128 + Store 115(r52) 129 + 134: 131 Load 133(g_tTexcdu4) + 135: 13 Load 15(g_sSamp) + 138: 137 SampledImage 134 135 + 139: 6(float) CompositeExtract 107 0 + 140: 6(float) CompositeExtract 107 1 + 141: 6(float) CompositeExtract 107 2 + 142: 108(fvec4) CompositeConstruct 139 140 141 21 + 143: 6(float) CompositeExtract 142 3 + 144: 6(float) ImageSampleDrefImplicitLod 138 142 143 + Store 130(r54) 144 + 152: 151(ptr) AccessChain 147(psout) 148 + Store 152 150 + 154: 7(ptr) AccessChain 147(psout) 153 + Store 154 149 + 157: 151(ptr) AccessChain 147(psout) 148 + 158: 108(fvec4) Load 157 + Store 156(Color) 158 + 161: 7(ptr) AccessChain 147(psout) 153 + 162: 6(float) Load 161 + Store 160(Depth) 162 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out index 3d744bd3db2fec1412ea9ecc190c5471eec36a59..fe2c74f56990d3de9f417fdb6f336013ae009b08 100644 --- a/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offset.dx10.frag.out @@ -2,17 +2,17 @@ hlsl.samplecmp.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r01' (temp float) -0:42 textureOffset (global float) +0:42 textureOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -22,11 +22,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r03' (temp float) -0:43 textureOffset (global float) +0:43 textureOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -36,11 +36,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r05' (temp float) -0:44 textureOffset (global float) +0:44 textureOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -50,11 +50,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r21' (temp float) -0:47 textureOffset (global float) +0:47 textureOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -66,11 +66,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r23' (temp float) -0:48 textureOffset (global float) +0:48 textureOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -82,11 +82,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r25' (temp float) -0:49 textureOffset (global float) +0:49 textureOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -112,8 +112,8 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:? Sequence -0:? Sequence +0:65 Sequence +0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) @@ -128,6 +128,8 @@ gl_FragCoord origin is upper left 0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -150,8 +152,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -160,17 +160,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r01' (temp float) -0:42 textureOffset (global float) +0:42 textureOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -180,11 +180,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r03' (temp float) -0:43 textureOffset (global float) +0:43 textureOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -194,11 +194,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r05' (temp float) -0:44 textureOffset (global float) +0:44 textureOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -208,11 +208,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r21' (temp float) -0:47 textureOffset (global float) +0:47 textureOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -224,11 +224,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r23' (temp float) -0:48 textureOffset (global float) +0:48 textureOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -240,11 +240,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r25' (temp float) -0:49 textureOffset (global float) +0:49 textureOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -270,8 +270,8 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:? Sequence -0:? Sequence +0:65 Sequence +0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) @@ -286,6 +286,8 @@ gl_FragCoord origin is upper left 0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -308,81 +310,79 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 156 +// Id's are bound by 166 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 103 107 + EntryPoint Fragment 4 "main" 113 117 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 26 "r03" - Name 29 "g_tTex1di4" - Name 37 "r05" - Name 41 "g_tTex1du4" - Name 49 "r21" - Name 52 "g_tTex2df4" - Name 67 "r23" - Name 70 "g_tTex2di4" - Name 79 "r25" - Name 82 "g_tTex2du4" - Name 92 "PS_OUTPUT" - MemberName 92(PS_OUTPUT) 0 "Color" - MemberName 92(PS_OUTPUT) 1 "Depth" - Name 94 "psout" - Name 103 "Color" - Name 107 "Depth" - Name 113 "g_tTex3df4" - Name 116 "g_tTex3di4" - Name 119 "g_tTex3du4" - Name 122 "g_tTexcdf4" - Name 125 "g_tTexcdi4" - Name 128 "g_tTexcdu4" - Name 131 "g_tTex1df4a" - Name 134 "g_tTex1di4a" - Name 137 "g_tTex1du4a" - Name 140 "g_tTex2df4a" - Name 143 "g_tTex2di4a" - Name 146 "g_tTex2du4a" - Name 149 "g_tTexcdf4a" - Name 152 "g_tTexcdi4a" - Name 155 "g_tTexcdu4a" + Name 28 "r03" + Name 31 "g_tTex1di4" + Name 40 "r05" + Name 44 "g_tTex1du4" + Name 53 "r21" + Name 56 "g_tTex2df4" + Name 73 "r23" + Name 76 "g_tTex2di4" + Name 87 "r25" + Name 90 "g_tTex2du4" + Name 102 "PS_OUTPUT" + MemberName 102(PS_OUTPUT) 0 "Color" + MemberName 102(PS_OUTPUT) 1 "Depth" + Name 104 "psout" + Name 113 "Color" + Name 117 "Depth" + Name 123 "g_tTex3df4" + Name 126 "g_tTex3di4" + Name 129 "g_tTex3du4" + Name 132 "g_tTexcdf4" + Name 135 "g_tTexcdi4" + Name 138 "g_tTexcdu4" + Name 141 "g_tTex1df4a" + Name 144 "g_tTex1di4a" + Name 147 "g_tTex1du4a" + Name 150 "g_tTex2df4a" + Name 153 "g_tTex2di4a" + Name 156 "g_tTex2du4a" + Name 159 "g_tTexcdf4a" + Name 162 "g_tTexcdi4a" + Name 165 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 41(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 70(g_tTex2di4) DescriptorSet 0 - Decorate 82(g_tTex2du4) DescriptorSet 0 - Decorate 103(Color) Location 0 - Decorate 107(Depth) BuiltIn FragDepth - Decorate 113(g_tTex3df4) DescriptorSet 0 - Decorate 116(g_tTex3di4) DescriptorSet 0 - Decorate 119(g_tTex3du4) DescriptorSet 0 - Decorate 122(g_tTexcdf4) DescriptorSet 0 - Decorate 125(g_tTexcdi4) DescriptorSet 0 - Decorate 128(g_tTexcdu4) DescriptorSet 0 - Decorate 131(g_tTex1df4a) DescriptorSet 0 - Decorate 134(g_tTex1di4a) DescriptorSet 0 - Decorate 137(g_tTex1du4a) DescriptorSet 0 - Decorate 140(g_tTex2df4a) DescriptorSet 0 - Decorate 143(g_tTex2di4a) DescriptorSet 0 - Decorate 146(g_tTex2du4a) DescriptorSet 0 - Decorate 149(g_tTexcdf4a) DescriptorSet 0 - Decorate 152(g_tTexcdi4a) DescriptorSet 0 - Decorate 155(g_tTexcdu4a) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 76(g_tTex2di4) DescriptorSet 0 + Decorate 90(g_tTex2du4) DescriptorSet 0 + Decorate 113(Color) Location 0 + Decorate 117(Depth) BuiltIn FragDepth + Decorate 123(g_tTex3df4) DescriptorSet 0 + Decorate 126(g_tTex3di4) DescriptorSet 0 + Decorate 129(g_tTex3du4) DescriptorSet 0 + Decorate 132(g_tTexcdf4) DescriptorSet 0 + Decorate 135(g_tTexcdi4) DescriptorSet 0 + Decorate 138(g_tTexcdu4) DescriptorSet 0 + Decorate 141(g_tTex1df4a) DescriptorSet 0 + Decorate 144(g_tTex1di4a) DescriptorSet 0 + Decorate 147(g_tTex1du4a) DescriptorSet 0 + Decorate 150(g_tTex2df4a) DescriptorSet 0 + Decorate 153(g_tTex2di4a) DescriptorSet 0 + Decorate 156(g_tTex2du4a) DescriptorSet 0 + Decorate 159(g_tTexcdf4a) DescriptorSet 0 + Decorate 162(g_tTexcdi4a) DescriptorSet 0 + Decorate 165(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -397,154 +397,164 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: TypeInt 32 1 - 23: 22(int) Constant 2 - 27: TypeImage 22(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeImage 22(int) 1D depth sampled format:Unknown - 33: TypeSampledImage 32 - 38: TypeInt 32 0 - 39: TypeImage 38(int) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41(g_tTex1du4): 40(ptr) Variable UniformConstant - 44: TypeImage 38(int) 1D depth sampled format:Unknown - 45: TypeSampledImage 44 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeImage 6(float) 2D depth sampled format:Unknown - 56: TypeSampledImage 55 - 58: TypeVector 6(float) 2 - 59: 6(float) Constant 1045220557 - 60: 58(fvec2) ConstantComposite 20 59 - 62: TypeVector 22(int) 2 - 63: 22(int) Constant 3 - 64: 62(ivec2) ConstantComposite 23 63 - 68: TypeImage 22(int) 2D sampled format:Unknown - 69: TypePointer UniformConstant 68 - 70(g_tTex2di4): 69(ptr) Variable UniformConstant - 73: TypeImage 22(int) 2D depth sampled format:Unknown - 74: TypeSampledImage 73 - 80: TypeImage 38(int) 2D sampled format:Unknown - 81: TypePointer UniformConstant 80 - 82(g_tTex2du4): 81(ptr) Variable UniformConstant - 85: TypeImage 38(int) 2D depth sampled format:Unknown - 86: TypeSampledImage 85 - 91: TypeVector 6(float) 4 - 92(PS_OUTPUT): TypeStruct 91(fvec4) 6(float) - 93: TypePointer Function 92(PS_OUTPUT) - 95: 22(int) Constant 0 - 96: 6(float) Constant 1065353216 - 97: 91(fvec4) ConstantComposite 96 96 96 96 - 98: TypePointer Function 91(fvec4) - 100: 22(int) Constant 1 - 102: TypePointer Output 91(fvec4) - 103(Color): 102(ptr) Variable Output - 106: TypePointer Output 6(float) - 107(Depth): 106(ptr) Variable Output - 111: TypeImage 6(float) 3D sampled format:Unknown - 112: TypePointer UniformConstant 111 - 113(g_tTex3df4): 112(ptr) Variable UniformConstant - 114: TypeImage 22(int) 3D sampled format:Unknown - 115: TypePointer UniformConstant 114 - 116(g_tTex3di4): 115(ptr) Variable UniformConstant - 117: TypeImage 38(int) 3D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex3du4): 118(ptr) Variable UniformConstant - 120: TypeImage 6(float) Cube sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTexcdf4): 121(ptr) Variable UniformConstant - 123: TypeImage 22(int) Cube sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTexcdi4): 124(ptr) Variable UniformConstant - 126: TypeImage 38(int) Cube sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTexcdu4): 127(ptr) Variable UniformConstant - 129: TypeImage 6(float) 1D array sampled format:Unknown - 130: TypePointer UniformConstant 129 -131(g_tTex1df4a): 130(ptr) Variable UniformConstant - 132: TypeImage 22(int) 1D array sampled format:Unknown - 133: TypePointer UniformConstant 132 -134(g_tTex1di4a): 133(ptr) Variable UniformConstant - 135: TypeImage 38(int) 1D array sampled format:Unknown - 136: TypePointer UniformConstant 135 -137(g_tTex1du4a): 136(ptr) Variable UniformConstant - 138: TypeImage 6(float) 2D array sampled format:Unknown - 139: TypePointer UniformConstant 138 -140(g_tTex2df4a): 139(ptr) Variable UniformConstant - 141: TypeImage 22(int) 2D array sampled format:Unknown - 142: TypePointer UniformConstant 141 -143(g_tTex2di4a): 142(ptr) Variable UniformConstant - 144: TypeImage 38(int) 2D array sampled format:Unknown - 145: TypePointer UniformConstant 144 -146(g_tTex2du4a): 145(ptr) Variable UniformConstant - 147: TypeImage 6(float) Cube array sampled format:Unknown - 148: TypePointer UniformConstant 147 -149(g_tTexcdf4a): 148(ptr) Variable UniformConstant - 150: TypeImage 22(int) Cube array sampled format:Unknown - 151: TypePointer UniformConstant 150 -152(g_tTexcdi4a): 151(ptr) Variable UniformConstant - 153: TypeImage 38(int) Cube array sampled format:Unknown - 154: TypePointer UniformConstant 153 -155(g_tTexcdu4a): 154(ptr) Variable UniformConstant + 22: TypeVector 6(float) 2 + 24: TypeInt 32 1 + 25: 24(int) Constant 2 + 29: TypeImage 24(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeImage 24(int) 1D depth sampled format:Unknown + 35: TypeSampledImage 34 + 41: TypeInt 32 0 + 42: TypeImage 41(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeImage 41(int) 1D depth sampled format:Unknown + 48: TypeSampledImage 47 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D depth sampled format:Unknown + 60: TypeSampledImage 59 + 62: 6(float) Constant 1045220557 + 63: 22(fvec2) ConstantComposite 20 62 + 64: TypeVector 6(float) 3 + 68: TypeVector 24(int) 2 + 69: 24(int) Constant 3 + 70: 68(ivec2) ConstantComposite 25 69 + 74: TypeImage 24(int) 2D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex2di4): 75(ptr) Variable UniformConstant + 79: TypeImage 24(int) 2D depth sampled format:Unknown + 80: TypeSampledImage 79 + 88: TypeImage 41(int) 2D sampled format:Unknown + 89: TypePointer UniformConstant 88 + 90(g_tTex2du4): 89(ptr) Variable UniformConstant + 93: TypeImage 41(int) 2D depth sampled format:Unknown + 94: TypeSampledImage 93 + 101: TypeVector 6(float) 4 + 102(PS_OUTPUT): TypeStruct 101(fvec4) 6(float) + 103: TypePointer Function 102(PS_OUTPUT) + 105: 24(int) Constant 0 + 106: 6(float) Constant 1065353216 + 107: 101(fvec4) ConstantComposite 106 106 106 106 + 108: TypePointer Function 101(fvec4) + 110: 24(int) Constant 1 + 112: TypePointer Output 101(fvec4) + 113(Color): 112(ptr) Variable Output + 116: TypePointer Output 6(float) + 117(Depth): 116(ptr) Variable Output + 121: TypeImage 6(float) 3D sampled format:Unknown + 122: TypePointer UniformConstant 121 + 123(g_tTex3df4): 122(ptr) Variable UniformConstant + 124: TypeImage 24(int) 3D sampled format:Unknown + 125: TypePointer UniformConstant 124 + 126(g_tTex3di4): 125(ptr) Variable UniformConstant + 127: TypeImage 41(int) 3D sampled format:Unknown + 128: TypePointer UniformConstant 127 + 129(g_tTex3du4): 128(ptr) Variable UniformConstant + 130: TypeImage 6(float) Cube sampled format:Unknown + 131: TypePointer UniformConstant 130 + 132(g_tTexcdf4): 131(ptr) Variable UniformConstant + 133: TypeImage 24(int) Cube sampled format:Unknown + 134: TypePointer UniformConstant 133 + 135(g_tTexcdi4): 134(ptr) Variable UniformConstant + 136: TypeImage 41(int) Cube sampled format:Unknown + 137: TypePointer UniformConstant 136 + 138(g_tTexcdu4): 137(ptr) Variable UniformConstant + 139: TypeImage 6(float) 1D array sampled format:Unknown + 140: TypePointer UniformConstant 139 +141(g_tTex1df4a): 140(ptr) Variable UniformConstant + 142: TypeImage 24(int) 1D array sampled format:Unknown + 143: TypePointer UniformConstant 142 +144(g_tTex1di4a): 143(ptr) Variable UniformConstant + 145: TypeImage 41(int) 1D array sampled format:Unknown + 146: TypePointer UniformConstant 145 +147(g_tTex1du4a): 146(ptr) Variable UniformConstant + 148: TypeImage 6(float) 2D array sampled format:Unknown + 149: TypePointer UniformConstant 148 +150(g_tTex2df4a): 149(ptr) Variable UniformConstant + 151: TypeImage 24(int) 2D array sampled format:Unknown + 152: TypePointer UniformConstant 151 +153(g_tTex2di4a): 152(ptr) Variable UniformConstant + 154: TypeImage 41(int) 2D array sampled format:Unknown + 155: TypePointer UniformConstant 154 +156(g_tTex2du4a): 155(ptr) Variable UniformConstant + 157: TypeImage 6(float) Cube array sampled format:Unknown + 158: TypePointer UniformConstant 157 +159(g_tTexcdf4a): 158(ptr) Variable UniformConstant + 160: TypeImage 24(int) Cube array sampled format:Unknown + 161: TypePointer UniformConstant 160 +162(g_tTexcdi4a): 161(ptr) Variable UniformConstant + 163: TypeImage 41(int) Cube array sampled format:Unknown + 164: TypePointer UniformConstant 163 +165(g_tTexcdu4a): 164(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function - 26(r03): 7(ptr) Variable Function - 37(r05): 7(ptr) Variable Function - 49(r21): 7(ptr) Variable Function - 67(r23): 7(ptr) Variable Function - 79(r25): 7(ptr) Variable Function - 94(psout): 93(ptr) Variable Function + 28(r03): 7(ptr) Variable Function + 40(r05): 7(ptr) Variable Function + 53(r21): 7(ptr) Variable Function + 73(r23): 7(ptr) Variable Function + 87(r25): 7(ptr) Variable Function + 104(psout): 103(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 24: 6(float) CompositeExtract 20 0 - 25: 6(float) ImageSampleDrefImplicitLod 19 20 24 ConstOffset 23 - Store 8(r01) 25 - 30: 27 Load 29(g_tTex1di4) - 31: 13 Load 15(g_sSamp) - 34: 33 SampledImage 30 31 - 35: 6(float) CompositeExtract 20 0 - 36: 6(float) ImageSampleDrefImplicitLod 34 20 35 ConstOffset 23 - Store 26(r03) 36 - 42: 39 Load 41(g_tTex1du4) - 43: 13 Load 15(g_sSamp) - 46: 45 SampledImage 42 43 - 47: 6(float) CompositeExtract 20 0 - 48: 6(float) ImageSampleDrefImplicitLod 46 20 47 ConstOffset 23 - Store 37(r05) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 13 Load 15(g_sSamp) - 57: 56 SampledImage 53 54 - 61: 6(float) CompositeExtract 60 0 - 65: 6(float) CompositeExtract 61 0 - 66: 6(float) ImageSampleDrefImplicitLod 57 61 65 ConstOffset 64 - Store 49(r21) 66 - 71: 68 Load 70(g_tTex2di4) - 72: 13 Load 15(g_sSamp) - 75: 74 SampledImage 71 72 - 76: 6(float) CompositeExtract 60 0 - 77: 6(float) CompositeExtract 76 0 - 78: 6(float) ImageSampleDrefImplicitLod 75 76 77 ConstOffset 64 - Store 67(r23) 78 - 83: 80 Load 82(g_tTex2du4) - 84: 13 Load 15(g_sSamp) - 87: 86 SampledImage 83 84 - 88: 6(float) CompositeExtract 60 0 - 89: 6(float) CompositeExtract 88 0 - 90: 6(float) ImageSampleDrefImplicitLod 87 88 89 ConstOffset 64 - Store 79(r25) 90 - 99: 98(ptr) AccessChain 94(psout) 95 - Store 99 97 - 101: 7(ptr) AccessChain 94(psout) 100 - Store 101 96 - 104: 98(ptr) AccessChain 94(psout) 95 - 105: 91(fvec4) Load 104 - Store 103(Color) 105 - 108: 7(ptr) AccessChain 94(psout) 100 - 109: 6(float) Load 108 - Store 107(Depth) 109 + 23: 22(fvec2) CompositeConstruct 20 21 + 26: 6(float) CompositeExtract 23 1 + 27: 6(float) ImageSampleDrefImplicitLod 19 23 26 ConstOffset 25 + Store 8(r01) 27 + 32: 29 Load 31(g_tTex1di4) + 33: 13 Load 15(g_sSamp) + 36: 35 SampledImage 32 33 + 37: 22(fvec2) CompositeConstruct 20 21 + 38: 6(float) CompositeExtract 37 1 + 39: 6(float) ImageSampleDrefImplicitLod 36 37 38 ConstOffset 25 + Store 28(r03) 39 + 45: 42 Load 44(g_tTex1du4) + 46: 13 Load 15(g_sSamp) + 49: 48 SampledImage 45 46 + 50: 22(fvec2) CompositeConstruct 20 21 + 51: 6(float) CompositeExtract 50 1 + 52: 6(float) ImageSampleDrefImplicitLod 49 50 51 ConstOffset 25 + Store 40(r05) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 13 Load 15(g_sSamp) + 61: 60 SampledImage 57 58 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 21 + 71: 6(float) CompositeExtract 67 2 + 72: 6(float) ImageSampleDrefImplicitLod 61 67 71 ConstOffset 70 + Store 53(r21) 72 + 77: 74 Load 76(g_tTex2di4) + 78: 13 Load 15(g_sSamp) + 81: 80 SampledImage 77 78 + 82: 6(float) CompositeExtract 63 0 + 83: 6(float) CompositeExtract 63 1 + 84: 64(fvec3) CompositeConstruct 82 83 21 + 85: 6(float) CompositeExtract 84 2 + 86: 6(float) ImageSampleDrefImplicitLod 81 84 85 ConstOffset 70 + Store 73(r23) 86 + 91: 88 Load 90(g_tTex2du4) + 92: 13 Load 15(g_sSamp) + 95: 94 SampledImage 91 92 + 96: 6(float) CompositeExtract 63 0 + 97: 6(float) CompositeExtract 63 1 + 98: 64(fvec3) CompositeConstruct 96 97 21 + 99: 6(float) CompositeExtract 98 2 + 100: 6(float) ImageSampleDrefImplicitLod 95 98 99 ConstOffset 70 + Store 87(r25) 100 + 109: 108(ptr) AccessChain 104(psout) 105 + Store 109 107 + 111: 7(ptr) AccessChain 104(psout) 110 + Store 111 106 + 114: 108(ptr) AccessChain 104(psout) 105 + 115: 101(fvec4) Load 114 + Store 113(Color) 115 + 118: 7(ptr) AccessChain 104(psout) 110 + 119: 6(float) Load 118 + Store 117(Depth) 119 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out index 2eb302e7b7e1c2e95e89ca8880a64eb41780bf66..013a645c49ee9e0e8e8ec4b90792fe1b609587a4 100644 --- a/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmp.offsetarray.dx10.frag.out @@ -2,17 +2,17 @@ hlsl.samplecmp.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r11' (temp float) -0:42 textureOffset (global float) +0:42 textureOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -23,11 +23,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r13' (temp float) -0:43 textureOffset (global float) +0:43 textureOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -38,11 +38,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r15' (temp float) -0:44 textureOffset (global float) +0:44 textureOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -53,11 +53,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r31' (temp float) -0:47 textureOffset (global float) +0:47 textureOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -70,11 +70,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r33' (temp float) -0:48 textureOffset (global float) +0:48 textureOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -87,11 +87,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r35' (temp float) -0:49 textureOffset (global float) +0:49 textureOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -118,8 +118,8 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:? Sequence -0:? Sequence +0:66 Sequence +0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) @@ -134,6 +134,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -156,8 +158,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -166,17 +166,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r11' (temp float) -0:42 textureOffset (global float) +0:42 textureOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -187,11 +187,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r13' (temp float) -0:43 textureOffset (global float) +0:43 textureOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -202,11 +202,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r15' (temp float) -0:44 textureOffset (global float) +0:44 textureOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -217,11 +217,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r31' (temp float) -0:47 textureOffset (global float) +0:47 textureOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -234,11 +234,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r33' (temp float) -0:48 textureOffset (global float) +0:48 textureOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -251,11 +251,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r35' (temp float) -0:49 textureOffset (global float) +0:49 textureOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -282,8 +282,8 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:? Sequence -0:? Sequence +0:66 Sequence +0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) @@ -298,6 +298,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -320,81 +322,79 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 162 +// Id's are bound by 177 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 109 113 + EntryPoint Fragment 4 "main" 124 128 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 30 "r13" - Name 33 "g_tTex1di4a" - Name 42 "r15" - Name 46 "g_tTex1du4a" - Name 55 "r31" - Name 58 "g_tTex2df4a" - Name 73 "r33" - Name 76 "g_tTex2di4a" - Name 85 "r35" - Name 88 "g_tTex2du4a" - Name 98 "PS_OUTPUT" - MemberName 98(PS_OUTPUT) 0 "Color" - MemberName 98(PS_OUTPUT) 1 "Depth" - Name 100 "psout" - Name 109 "Color" - Name 113 "Depth" - Name 119 "g_tTex1df4" - Name 122 "g_tTex1di4" - Name 125 "g_tTex1du4" - Name 128 "g_tTex2df4" - Name 131 "g_tTex2di4" - Name 134 "g_tTex2du4" - Name 137 "g_tTex3df4" - Name 140 "g_tTex3di4" - Name 143 "g_tTex3du4" - Name 146 "g_tTexcdf4" - Name 149 "g_tTexcdi4" - Name 152 "g_tTexcdu4" - Name 155 "g_tTexcdf4a" - Name 158 "g_tTexcdi4a" - Name 161 "g_tTexcdu4a" + Name 33 "r13" + Name 36 "g_tTex1di4a" + Name 47 "r15" + Name 51 "g_tTex1du4a" + Name 62 "r31" + Name 65 "g_tTex2df4a" + Name 83 "r33" + Name 86 "g_tTex2di4a" + Name 98 "r35" + Name 101 "g_tTex2du4a" + Name 113 "PS_OUTPUT" + MemberName 113(PS_OUTPUT) 0 "Color" + MemberName 113(PS_OUTPUT) 1 "Depth" + Name 115 "psout" + Name 124 "Color" + Name 128 "Depth" + Name 134 "g_tTex1df4" + Name 137 "g_tTex1di4" + Name 140 "g_tTex1du4" + Name 143 "g_tTex2df4" + Name 146 "g_tTex2di4" + Name 149 "g_tTex2du4" + Name 152 "g_tTex3df4" + Name 155 "g_tTex3di4" + Name 158 "g_tTex3du4" + Name 161 "g_tTexcdf4" + Name 164 "g_tTexcdi4" + Name 167 "g_tTexcdu4" + Name 170 "g_tTexcdf4a" + Name 173 "g_tTexcdi4a" + Name 176 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4a) DescriptorSet 0 - Decorate 46(g_tTex1du4a) DescriptorSet 0 - Decorate 58(g_tTex2df4a) DescriptorSet 0 - Decorate 76(g_tTex2di4a) DescriptorSet 0 - Decorate 88(g_tTex2du4a) DescriptorSet 0 - Decorate 109(Color) Location 0 - Decorate 113(Depth) BuiltIn FragDepth - Decorate 119(g_tTex1df4) DescriptorSet 0 - Decorate 119(g_tTex1df4) Binding 0 - Decorate 122(g_tTex1di4) DescriptorSet 0 - Decorate 125(g_tTex1du4) DescriptorSet 0 - Decorate 128(g_tTex2df4) DescriptorSet 0 - Decorate 131(g_tTex2di4) DescriptorSet 0 - Decorate 134(g_tTex2du4) DescriptorSet 0 - Decorate 137(g_tTex3df4) DescriptorSet 0 - Decorate 140(g_tTex3di4) DescriptorSet 0 - Decorate 143(g_tTex3du4) DescriptorSet 0 - Decorate 146(g_tTexcdf4) DescriptorSet 0 - Decorate 149(g_tTexcdi4) DescriptorSet 0 - Decorate 152(g_tTexcdu4) DescriptorSet 0 - Decorate 155(g_tTexcdf4a) DescriptorSet 0 - Decorate 158(g_tTexcdi4a) DescriptorSet 0 - Decorate 161(g_tTexcdu4a) DescriptorSet 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 65(g_tTex2df4a) DescriptorSet 0 + Decorate 86(g_tTex2di4a) DescriptorSet 0 + Decorate 101(g_tTex2du4a) DescriptorSet 0 + Decorate 124(Color) Location 0 + Decorate 128(Depth) BuiltIn FragDepth + Decorate 134(g_tTex1df4) DescriptorSet 0 + Decorate 134(g_tTex1df4) Binding 0 + Decorate 137(g_tTex1di4) DescriptorSet 0 + Decorate 140(g_tTex1du4) DescriptorSet 0 + Decorate 143(g_tTex2df4) DescriptorSet 0 + Decorate 146(g_tTex2di4) DescriptorSet 0 + Decorate 149(g_tTex2du4) DescriptorSet 0 + Decorate 152(g_tTex3df4) DescriptorSet 0 + Decorate 155(g_tTex3di4) DescriptorSet 0 + Decorate 158(g_tTex3du4) DescriptorSet 0 + Decorate 161(g_tTexcdf4) DescriptorSet 0 + Decorate 164(g_tTexcdi4) DescriptorSet 0 + Decorate 167(g_tTexcdu4) DescriptorSet 0 + Decorate 170(g_tTexcdf4a) DescriptorSet 0 + Decorate 173(g_tTexcdi4a) DescriptorSet 0 + Decorate 176(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -412,157 +412,172 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: TypeInt 32 1 - 27: 26(int) Constant 2 - 31: TypeImage 26(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4a): 32(ptr) Variable UniformConstant - 36: TypeImage 26(int) 1D depth array sampled format:Unknown - 37: TypeSampledImage 36 - 43: TypeInt 32 0 - 44: TypeImage 43(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4a): 45(ptr) Variable UniformConstant - 49: TypeImage 43(int) 1D depth array sampled format:Unknown - 50: TypeSampledImage 49 - 56: TypeImage 6(float) 2D array sampled format:Unknown - 57: TypePointer UniformConstant 56 - 58(g_tTex2df4a): 57(ptr) Variable UniformConstant - 61: TypeImage 6(float) 2D depth array sampled format:Unknown - 62: TypeSampledImage 61 - 64: TypeVector 6(float) 3 - 65: 6(float) Constant 1050253722 - 66: 64(fvec3) ConstantComposite 21 22 65 - 68: TypeVector 26(int) 2 - 69: 26(int) Constant 3 - 70: 68(ivec2) ConstantComposite 27 69 - 74: TypeImage 26(int) 2D array sampled format:Unknown - 75: TypePointer UniformConstant 74 - 76(g_tTex2di4a): 75(ptr) Variable UniformConstant - 79: TypeImage 26(int) 2D depth array sampled format:Unknown - 80: TypeSampledImage 79 - 86: TypeImage 43(int) 2D array sampled format:Unknown - 87: TypePointer UniformConstant 86 - 88(g_tTex2du4a): 87(ptr) Variable UniformConstant - 91: TypeImage 43(int) 2D depth array sampled format:Unknown - 92: TypeSampledImage 91 - 97: TypeVector 6(float) 4 - 98(PS_OUTPUT): TypeStruct 97(fvec4) 6(float) - 99: TypePointer Function 98(PS_OUTPUT) - 101: 26(int) Constant 0 - 102: 6(float) Constant 1065353216 - 103: 97(fvec4) ConstantComposite 102 102 102 102 - 104: TypePointer Function 97(fvec4) - 106: 26(int) Constant 1 - 108: TypePointer Output 97(fvec4) - 109(Color): 108(ptr) Variable Output - 112: TypePointer Output 6(float) - 113(Depth): 112(ptr) Variable Output - 117: TypeImage 6(float) 1D sampled format:Unknown - 118: TypePointer UniformConstant 117 - 119(g_tTex1df4): 118(ptr) Variable UniformConstant - 120: TypeImage 26(int) 1D sampled format:Unknown - 121: TypePointer UniformConstant 120 - 122(g_tTex1di4): 121(ptr) Variable UniformConstant - 123: TypeImage 43(int) 1D sampled format:Unknown - 124: TypePointer UniformConstant 123 - 125(g_tTex1du4): 124(ptr) Variable UniformConstant - 126: TypeImage 6(float) 2D sampled format:Unknown - 127: TypePointer UniformConstant 126 - 128(g_tTex2df4): 127(ptr) Variable UniformConstant - 129: TypeImage 26(int) 2D sampled format:Unknown - 130: TypePointer UniformConstant 129 - 131(g_tTex2di4): 130(ptr) Variable UniformConstant - 132: TypeImage 43(int) 2D sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: TypeInt 32 1 + 30: 29(int) Constant 2 + 34: TypeImage 29(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeImage 29(int) 1D depth array sampled format:Unknown + 40: TypeSampledImage 39 + 48: TypeInt 32 0 + 49: TypeImage 48(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 54: TypeImage 48(int) 1D depth array sampled format:Unknown + 55: TypeSampledImage 54 + 63: TypeImage 6(float) 2D array sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2df4a): 64(ptr) Variable UniformConstant + 68: TypeImage 6(float) 2D depth array sampled format:Unknown + 69: TypeSampledImage 68 + 71: 6(float) Constant 1050253722 + 72: 25(fvec3) ConstantComposite 21 22 71 + 73: TypeVector 6(float) 4 + 78: TypeVector 29(int) 2 + 79: 29(int) Constant 3 + 80: 78(ivec2) ConstantComposite 30 79 + 84: TypeImage 29(int) 2D array sampled format:Unknown + 85: TypePointer UniformConstant 84 + 86(g_tTex2di4a): 85(ptr) Variable UniformConstant + 89: TypeImage 29(int) 2D depth array sampled format:Unknown + 90: TypeSampledImage 89 + 99: TypeImage 48(int) 2D array sampled format:Unknown + 100: TypePointer UniformConstant 99 +101(g_tTex2du4a): 100(ptr) Variable UniformConstant + 104: TypeImage 48(int) 2D depth array sampled format:Unknown + 105: TypeSampledImage 104 + 113(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) + 114: TypePointer Function 113(PS_OUTPUT) + 116: 29(int) Constant 0 + 117: 6(float) Constant 1065353216 + 118: 73(fvec4) ConstantComposite 117 117 117 117 + 119: TypePointer Function 73(fvec4) + 121: 29(int) Constant 1 + 123: TypePointer Output 73(fvec4) + 124(Color): 123(ptr) Variable Output + 127: TypePointer Output 6(float) + 128(Depth): 127(ptr) Variable Output + 132: TypeImage 6(float) 1D sampled format:Unknown 133: TypePointer UniformConstant 132 - 134(g_tTex2du4): 133(ptr) Variable UniformConstant - 135: TypeImage 6(float) 3D sampled format:Unknown + 134(g_tTex1df4): 133(ptr) Variable UniformConstant + 135: TypeImage 29(int) 1D sampled format:Unknown 136: TypePointer UniformConstant 135 - 137(g_tTex3df4): 136(ptr) Variable UniformConstant - 138: TypeImage 26(int) 3D sampled format:Unknown + 137(g_tTex1di4): 136(ptr) Variable UniformConstant + 138: TypeImage 48(int) 1D sampled format:Unknown 139: TypePointer UniformConstant 138 - 140(g_tTex3di4): 139(ptr) Variable UniformConstant - 141: TypeImage 43(int) 3D sampled format:Unknown + 140(g_tTex1du4): 139(ptr) Variable UniformConstant + 141: TypeImage 6(float) 2D sampled format:Unknown 142: TypePointer UniformConstant 141 - 143(g_tTex3du4): 142(ptr) Variable UniformConstant - 144: TypeImage 6(float) Cube sampled format:Unknown + 143(g_tTex2df4): 142(ptr) Variable UniformConstant + 144: TypeImage 29(int) 2D sampled format:Unknown 145: TypePointer UniformConstant 144 - 146(g_tTexcdf4): 145(ptr) Variable UniformConstant - 147: TypeImage 26(int) Cube sampled format:Unknown + 146(g_tTex2di4): 145(ptr) Variable UniformConstant + 147: TypeImage 48(int) 2D sampled format:Unknown 148: TypePointer UniformConstant 147 - 149(g_tTexcdi4): 148(ptr) Variable UniformConstant - 150: TypeImage 43(int) Cube sampled format:Unknown + 149(g_tTex2du4): 148(ptr) Variable UniformConstant + 150: TypeImage 6(float) 3D sampled format:Unknown 151: TypePointer UniformConstant 150 - 152(g_tTexcdu4): 151(ptr) Variable UniformConstant - 153: TypeImage 6(float) Cube array sampled format:Unknown + 152(g_tTex3df4): 151(ptr) Variable UniformConstant + 153: TypeImage 29(int) 3D sampled format:Unknown 154: TypePointer UniformConstant 153 -155(g_tTexcdf4a): 154(ptr) Variable UniformConstant - 156: TypeImage 26(int) Cube array sampled format:Unknown + 155(g_tTex3di4): 154(ptr) Variable UniformConstant + 156: TypeImage 48(int) 3D sampled format:Unknown 157: TypePointer UniformConstant 156 -158(g_tTexcdi4a): 157(ptr) Variable UniformConstant - 159: TypeImage 43(int) Cube array sampled format:Unknown + 158(g_tTex3du4): 157(ptr) Variable UniformConstant + 159: TypeImage 6(float) Cube sampled format:Unknown 160: TypePointer UniformConstant 159 -161(g_tTexcdu4a): 160(ptr) Variable UniformConstant + 161(g_tTexcdf4): 160(ptr) Variable UniformConstant + 162: TypeImage 29(int) Cube sampled format:Unknown + 163: TypePointer UniformConstant 162 + 164(g_tTexcdi4): 163(ptr) Variable UniformConstant + 165: TypeImage 48(int) Cube sampled format:Unknown + 166: TypePointer UniformConstant 165 + 167(g_tTexcdu4): 166(ptr) Variable UniformConstant + 168: TypeImage 6(float) Cube array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTexcdf4a): 169(ptr) Variable UniformConstant + 171: TypeImage 29(int) Cube array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTexcdi4a): 172(ptr) Variable UniformConstant + 174: TypeImage 48(int) Cube array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTexcdu4a): 175(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function - 30(r13): 7(ptr) Variable Function - 42(r15): 7(ptr) Variable Function - 55(r31): 7(ptr) Variable Function - 73(r33): 7(ptr) Variable Function - 85(r35): 7(ptr) Variable Function - 100(psout): 99(ptr) Variable Function + 33(r13): 7(ptr) Variable Function + 47(r15): 7(ptr) Variable Function + 62(r31): 7(ptr) Variable Function + 83(r33): 7(ptr) Variable Function + 98(r35): 7(ptr) Variable Function + 115(psout): 114(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 28: 6(float) CompositeExtract 25 0 - 29: 6(float) ImageSampleDrefImplicitLod 19 25 28 ConstOffset 27 - Store 8(r11) 29 - 34: 31 Load 33(g_tTex1di4a) - 35: 13 Load 15(g_sSamp) - 38: 37 SampledImage 34 35 - 39: 6(float) CompositeExtract 23 0 - 40: 6(float) CompositeExtract 39 0 - 41: 6(float) ImageSampleDrefImplicitLod 38 39 40 ConstOffset 27 - Store 30(r13) 41 - 47: 44 Load 46(g_tTex1du4a) - 48: 13 Load 15(g_sSamp) - 51: 50 SampledImage 47 48 - 52: 6(float) CompositeExtract 23 0 - 53: 6(float) CompositeExtract 52 0 - 54: 6(float) ImageSampleDrefImplicitLod 51 52 53 ConstOffset 27 - Store 42(r15) 54 - 59: 56 Load 58(g_tTex2df4a) - 60: 13 Load 15(g_sSamp) - 63: 62 SampledImage 59 60 - 67: 6(float) CompositeExtract 66 0 - 71: 6(float) CompositeExtract 67 0 - 72: 6(float) ImageSampleDrefImplicitLod 63 67 71 ConstOffset 70 - Store 55(r31) 72 - 77: 74 Load 76(g_tTex2di4a) - 78: 13 Load 15(g_sSamp) - 81: 80 SampledImage 77 78 - 82: 6(float) CompositeExtract 66 0 - 83: 6(float) CompositeExtract 82 0 - 84: 6(float) ImageSampleDrefImplicitLod 81 82 83 ConstOffset 70 - Store 73(r33) 84 - 89: 86 Load 88(g_tTex2du4a) - 90: 13 Load 15(g_sSamp) - 93: 92 SampledImage 89 90 - 94: 6(float) CompositeExtract 66 0 - 95: 6(float) CompositeExtract 94 0 - 96: 6(float) ImageSampleDrefImplicitLod 93 94 95 ConstOffset 70 - Store 85(r35) 96 - 105: 104(ptr) AccessChain 100(psout) 101 - Store 105 103 - 107: 7(ptr) AccessChain 100(psout) 106 - Store 107 102 - 110: 104(ptr) AccessChain 100(psout) 101 - 111: 97(fvec4) Load 110 - Store 109(Color) 111 - 114: 7(ptr) AccessChain 100(psout) 106 - 115: 6(float) Load 114 - Store 113(Depth) 115 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 31: 6(float) CompositeExtract 28 2 + 32: 6(float) ImageSampleDrefImplicitLod 19 28 31 ConstOffset 30 + Store 8(r11) 32 + 37: 34 Load 36(g_tTex1di4a) + 38: 13 Load 15(g_sSamp) + 41: 40 SampledImage 37 38 + 42: 6(float) CompositeExtract 23 0 + 43: 6(float) CompositeExtract 23 1 + 44: 25(fvec3) CompositeConstruct 42 43 24 + 45: 6(float) CompositeExtract 44 2 + 46: 6(float) ImageSampleDrefImplicitLod 41 44 45 ConstOffset 30 + Store 33(r13) 46 + 52: 49 Load 51(g_tTex1du4a) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 57: 6(float) CompositeExtract 23 0 + 58: 6(float) CompositeExtract 23 1 + 59: 25(fvec3) CompositeConstruct 57 58 24 + 60: 6(float) CompositeExtract 59 2 + 61: 6(float) ImageSampleDrefImplicitLod 56 59 60 ConstOffset 30 + Store 47(r15) 61 + 66: 63 Load 65(g_tTex2df4a) + 67: 13 Load 15(g_sSamp) + 70: 69 SampledImage 66 67 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 6(float) CompositeExtract 72 2 + 77: 73(fvec4) CompositeConstruct 74 75 76 24 + 81: 6(float) CompositeExtract 77 3 + 82: 6(float) ImageSampleDrefImplicitLod 70 77 81 ConstOffset 80 + Store 62(r31) 82 + 87: 84 Load 86(g_tTex2di4a) + 88: 13 Load 15(g_sSamp) + 91: 90 SampledImage 87 88 + 92: 6(float) CompositeExtract 72 0 + 93: 6(float) CompositeExtract 72 1 + 94: 6(float) CompositeExtract 72 2 + 95: 73(fvec4) CompositeConstruct 92 93 94 24 + 96: 6(float) CompositeExtract 95 3 + 97: 6(float) ImageSampleDrefImplicitLod 91 95 96 ConstOffset 80 + Store 83(r33) 97 + 102: 99 Load 101(g_tTex2du4a) + 103: 13 Load 15(g_sSamp) + 106: 105 SampledImage 102 103 + 107: 6(float) CompositeExtract 72 0 + 108: 6(float) CompositeExtract 72 1 + 109: 6(float) CompositeExtract 72 2 + 110: 73(fvec4) CompositeConstruct 107 108 109 24 + 111: 6(float) CompositeExtract 110 3 + 112: 6(float) ImageSampleDrefImplicitLod 106 110 111 ConstOffset 80 + Store 98(r35) 112 + 120: 119(ptr) AccessChain 115(psout) 116 + Store 120 118 + 122: 7(ptr) AccessChain 115(psout) 121 + Store 122 117 + 125: 119(ptr) AccessChain 115(psout) 116 + 126: 73(fvec4) Load 125 + Store 124(Color) 126 + 129: 7(ptr) AccessChain 115(psout) 121 + 130: 6(float) Load 129 + Store 128(Depth) 130 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out index 949f7f2bd586d177384a61b61fa0657453f6f81f..29e02cd9088df254129efccf9dff8531eb0b9c4c 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.array.dx10.frag.out @@ -2,17 +2,17 @@ hlsl.samplecmplevelzero.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r10' (temp float) -0:42 textureLod (global float) +0:42 textureLod (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -23,11 +23,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r12' (temp float) -0:43 textureLod (global float) +0:43 textureLod (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -38,11 +38,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r14' (temp float) -0:44 textureLod (global float) +0:44 textureLod (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -53,11 +53,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r30' (temp float) -0:47 textureLod (global float) +0:47 textureLod (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -69,11 +69,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r32' (temp float) -0:48 textureLod (global float) +0:48 textureLod (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -85,11 +85,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r34' (temp float) -0:49 textureLod (global float) +0:49 textureLod (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -101,11 +101,11 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp float) 0:52 'r60' (temp float) -0:52 textureLod (global float) +0:52 textureLod (temp float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -118,11 +118,11 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r62' (temp float) -0:53 textureLod (global float) +0:53 textureLod (temp float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -135,11 +135,11 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r64' (temp float) -0:54 textureLod (global float) +0:54 textureLod (temp float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -166,8 +166,8 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:? Sequence -0:? Sequence +0:59 Sequence +0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) @@ -182,6 +182,8 @@ gl_FragCoord origin is upper left 0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -204,8 +206,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -214,17 +214,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r10' (temp float) -0:42 textureLod (global float) +0:42 textureLod (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -235,11 +235,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r12' (temp float) -0:43 textureLod (global float) +0:43 textureLod (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -250,11 +250,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r14' (temp float) -0:44 textureLod (global float) +0:44 textureLod (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -265,11 +265,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r30' (temp float) -0:47 textureLod (global float) +0:47 textureLod (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -281,11 +281,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r32' (temp float) -0:48 textureLod (global float) +0:48 textureLod (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -297,11 +297,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r34' (temp float) -0:49 textureLod (global float) +0:49 textureLod (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -313,11 +313,11 @@ gl_FragCoord origin is upper left 0:52 Sequence 0:52 move second child to first child (temp float) 0:52 'r60' (temp float) -0:52 textureLod (global float) +0:52 textureLod (temp float) 0:52 Construct combined texture-sampler (temp samplerCubeArrayShadow) 0:52 'g_tTexcdf4a' (uniform textureCubeArray) 0:52 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:52 Construct vec4 (temp float) +0:52 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -330,11 +330,11 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r62' (temp float) -0:53 textureLod (global float) +0:53 textureLod (temp float) 0:53 Construct combined texture-sampler (temp isamplerCubeArrayShadow) 0:53 'g_tTexcdi4a' (uniform itextureCubeArray) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -347,11 +347,11 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r64' (temp float) -0:54 textureLod (global float) +0:54 textureLod (temp float) 0:54 Construct combined texture-sampler (temp usamplerCubeArrayShadow) 0:54 'g_tTexcdu4a' (uniform utextureCubeArray) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -378,8 +378,8 @@ gl_FragCoord origin is upper left 0:57 1 (const int) 0:57 Constant: 0:57 1.000000 -0:? Sequence -0:? Sequence +0:59 Sequence +0:59 Sequence 0:59 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:59 Color: direct index for structure (temp 4-component vector of float) @@ -394,6 +394,8 @@ gl_FragCoord origin is upper left 0:59 1 (const int) 0:59 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -416,84 +418,82 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 185 +// Id's are bound by 212 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 141 145 + EntryPoint Fragment 4 "main" 168 172 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r10" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 29 "r12" - Name 33 "g_tTex1di4a" - Name 42 "r14" - Name 46 "g_tTex1du4a" - Name 55 "r30" - Name 58 "g_tTex2df4a" - Name 70 "r32" - Name 73 "g_tTex2di4a" - Name 82 "r34" - Name 85 "g_tTex2du4a" - Name 94 "r60" - Name 97 "g_tTexcdf4a" - Name 108 "r62" - Name 111 "g_tTexcdi4a" - Name 119 "r64" - Name 122 "g_tTexcdu4a" - Name 130 "PS_OUTPUT" - MemberName 130(PS_OUTPUT) 0 "Color" - MemberName 130(PS_OUTPUT) 1 "Depth" - Name 132 "psout" - Name 141 "Color" - Name 145 "Depth" - Name 151 "g_tTex1df4" - Name 154 "g_tTex1di4" - Name 157 "g_tTex1du4" - Name 160 "g_tTex2df4" - Name 163 "g_tTex2di4" - Name 166 "g_tTex2du4" - Name 169 "g_tTex3df4" - Name 172 "g_tTex3di4" - Name 175 "g_tTex3du4" - Name 178 "g_tTexcdf4" - Name 181 "g_tTexcdi4" - Name 184 "g_tTexcdu4" + Name 32 "r12" + Name 36 "g_tTex1di4a" + Name 47 "r14" + Name 51 "g_tTex1du4a" + Name 62 "r30" + Name 65 "g_tTex2df4a" + Name 80 "r32" + Name 83 "g_tTex2di4a" + Name 95 "r34" + Name 98 "g_tTex2du4a" + Name 110 "r60" + Name 113 "g_tTexcdf4a" + Name 127 "r62" + Name 130 "g_tTexcdi4a" + Name 142 "r64" + Name 145 "g_tTexcdu4a" + Name 157 "PS_OUTPUT" + MemberName 157(PS_OUTPUT) 0 "Color" + MemberName 157(PS_OUTPUT) 1 "Depth" + Name 159 "psout" + Name 168 "Color" + Name 172 "Depth" + Name 178 "g_tTex1df4" + Name 181 "g_tTex1di4" + Name 184 "g_tTex1du4" + Name 187 "g_tTex2df4" + Name 190 "g_tTex2di4" + Name 193 "g_tTex2du4" + Name 196 "g_tTex3df4" + Name 199 "g_tTex3di4" + Name 202 "g_tTex3du4" + Name 205 "g_tTexcdf4" + Name 208 "g_tTexcdi4" + Name 211 "g_tTexcdu4" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 33(g_tTex1di4a) DescriptorSet 0 - Decorate 46(g_tTex1du4a) DescriptorSet 0 - Decorate 58(g_tTex2df4a) DescriptorSet 0 - Decorate 73(g_tTex2di4a) DescriptorSet 0 - Decorate 85(g_tTex2du4a) DescriptorSet 0 - Decorate 97(g_tTexcdf4a) DescriptorSet 0 - Decorate 111(g_tTexcdi4a) DescriptorSet 0 - Decorate 122(g_tTexcdu4a) DescriptorSet 0 - Decorate 141(Color) Location 0 - Decorate 145(Depth) BuiltIn FragDepth - Decorate 151(g_tTex1df4) DescriptorSet 0 - Decorate 151(g_tTex1df4) Binding 0 - Decorate 154(g_tTex1di4) DescriptorSet 0 - Decorate 157(g_tTex1du4) DescriptorSet 0 - Decorate 160(g_tTex2df4) DescriptorSet 0 - Decorate 163(g_tTex2di4) DescriptorSet 0 - Decorate 166(g_tTex2du4) DescriptorSet 0 - Decorate 169(g_tTex3df4) DescriptorSet 0 - Decorate 172(g_tTex3di4) DescriptorSet 0 - Decorate 175(g_tTex3du4) DescriptorSet 0 - Decorate 178(g_tTexcdf4) DescriptorSet 0 - Decorate 181(g_tTexcdi4) DescriptorSet 0 - Decorate 184(g_tTexcdu4) DescriptorSet 0 + Decorate 36(g_tTex1di4a) DescriptorSet 0 + Decorate 51(g_tTex1du4a) DescriptorSet 0 + Decorate 65(g_tTex2df4a) DescriptorSet 0 + Decorate 83(g_tTex2di4a) DescriptorSet 0 + Decorate 98(g_tTex2du4a) DescriptorSet 0 + Decorate 113(g_tTexcdf4a) DescriptorSet 0 + Decorate 130(g_tTexcdi4a) DescriptorSet 0 + Decorate 145(g_tTexcdu4a) DescriptorSet 0 + Decorate 168(Color) Location 0 + Decorate 172(Depth) BuiltIn FragDepth + Decorate 178(g_tTex1df4) DescriptorSet 0 + Decorate 178(g_tTex1df4) Binding 0 + Decorate 181(g_tTex1di4) DescriptorSet 0 + Decorate 184(g_tTex1du4) DescriptorSet 0 + Decorate 187(g_tTex2df4) DescriptorSet 0 + Decorate 190(g_tTex2di4) DescriptorSet 0 + Decorate 193(g_tTex2du4) DescriptorSet 0 + Decorate 196(g_tTex3df4) DescriptorSet 0 + Decorate 199(g_tTex3di4) DescriptorSet 0 + Decorate 202(g_tTex3du4) DescriptorSet 0 + Decorate 205(g_tTexcdf4) DescriptorSet 0 + Decorate 208(g_tTexcdi4) DescriptorSet 0 + Decorate 211(g_tTexcdu4) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -511,183 +511,210 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: 6(float) Constant 0 - 30: TypeInt 32 1 - 31: TypeImage 30(int) 1D array sampled format:Unknown - 32: TypePointer UniformConstant 31 - 33(g_tTex1di4a): 32(ptr) Variable UniformConstant - 36: TypeImage 30(int) 1D depth array sampled format:Unknown - 37: TypeSampledImage 36 - 43: TypeInt 32 0 - 44: TypeImage 43(int) 1D array sampled format:Unknown - 45: TypePointer UniformConstant 44 - 46(g_tTex1du4a): 45(ptr) Variable UniformConstant - 49: TypeImage 43(int) 1D depth array sampled format:Unknown - 50: TypeSampledImage 49 - 56: TypeImage 6(float) 2D array sampled format:Unknown - 57: TypePointer UniformConstant 56 - 58(g_tTex2df4a): 57(ptr) Variable UniformConstant - 61: TypeImage 6(float) 2D depth array sampled format:Unknown - 62: TypeSampledImage 61 - 64: TypeVector 6(float) 3 - 65: 6(float) Constant 1050253722 - 66: 64(fvec3) ConstantComposite 21 22 65 - 71: TypeImage 30(int) 2D array sampled format:Unknown - 72: TypePointer UniformConstant 71 - 73(g_tTex2di4a): 72(ptr) Variable UniformConstant - 76: TypeImage 30(int) 2D depth array sampled format:Unknown - 77: TypeSampledImage 76 - 83: TypeImage 43(int) 2D array sampled format:Unknown - 84: TypePointer UniformConstant 83 - 85(g_tTex2du4a): 84(ptr) Variable UniformConstant - 88: TypeImage 43(int) 2D depth array sampled format:Unknown - 89: TypeSampledImage 88 - 95: TypeImage 6(float) Cube array sampled format:Unknown - 96: TypePointer UniformConstant 95 - 97(g_tTexcdf4a): 96(ptr) Variable UniformConstant - 100: TypeImage 6(float) Cube depth array sampled format:Unknown - 101: TypeSampledImage 100 - 103: TypeVector 6(float) 4 - 104: 6(float) Constant 1053609165 - 105: 103(fvec4) ConstantComposite 21 22 65 104 - 109: TypeImage 30(int) Cube array sampled format:Unknown - 110: TypePointer UniformConstant 109 -111(g_tTexcdi4a): 110(ptr) Variable UniformConstant - 114: TypeImage 30(int) Cube depth array sampled format:Unknown - 115: TypeSampledImage 114 - 120: TypeImage 43(int) Cube array sampled format:Unknown - 121: TypePointer UniformConstant 120 -122(g_tTexcdu4a): 121(ptr) Variable UniformConstant - 125: TypeImage 43(int) Cube depth array sampled format:Unknown - 126: TypeSampledImage 125 - 130(PS_OUTPUT): TypeStruct 103(fvec4) 6(float) - 131: TypePointer Function 130(PS_OUTPUT) - 133: 30(int) Constant 0 - 134: 6(float) Constant 1065353216 - 135: 103(fvec4) ConstantComposite 134 134 134 134 - 136: TypePointer Function 103(fvec4) - 138: 30(int) Constant 1 - 140: TypePointer Output 103(fvec4) - 141(Color): 140(ptr) Variable Output - 144: TypePointer Output 6(float) - 145(Depth): 144(ptr) Variable Output - 149: TypeImage 6(float) 1D sampled format:Unknown - 150: TypePointer UniformConstant 149 - 151(g_tTex1df4): 150(ptr) Variable UniformConstant - 152: TypeImage 30(int) 1D sampled format:Unknown - 153: TypePointer UniformConstant 152 - 154(g_tTex1di4): 153(ptr) Variable UniformConstant - 155: TypeImage 43(int) 1D sampled format:Unknown - 156: TypePointer UniformConstant 155 - 157(g_tTex1du4): 156(ptr) Variable UniformConstant - 158: TypeImage 6(float) 2D sampled format:Unknown - 159: TypePointer UniformConstant 158 - 160(g_tTex2df4): 159(ptr) Variable UniformConstant - 161: TypeImage 30(int) 2D sampled format:Unknown - 162: TypePointer UniformConstant 161 - 163(g_tTex2di4): 162(ptr) Variable UniformConstant - 164: TypeImage 43(int) 2D sampled format:Unknown - 165: TypePointer UniformConstant 164 - 166(g_tTex2du4): 165(ptr) Variable UniformConstant - 167: TypeImage 6(float) 3D sampled format:Unknown - 168: TypePointer UniformConstant 167 - 169(g_tTex3df4): 168(ptr) Variable UniformConstant - 170: TypeImage 30(int) 3D sampled format:Unknown - 171: TypePointer UniformConstant 170 - 172(g_tTex3di4): 171(ptr) Variable UniformConstant - 173: TypeImage 43(int) 3D sampled format:Unknown - 174: TypePointer UniformConstant 173 - 175(g_tTex3du4): 174(ptr) Variable UniformConstant - 176: TypeImage 6(float) Cube sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: 6(float) Constant 0 + 33: TypeInt 32 1 + 34: TypeImage 33(int) 1D array sampled format:Unknown + 35: TypePointer UniformConstant 34 + 36(g_tTex1di4a): 35(ptr) Variable UniformConstant + 39: TypeImage 33(int) 1D depth array sampled format:Unknown + 40: TypeSampledImage 39 + 48: TypeInt 32 0 + 49: TypeImage 48(int) 1D array sampled format:Unknown + 50: TypePointer UniformConstant 49 + 51(g_tTex1du4a): 50(ptr) Variable UniformConstant + 54: TypeImage 48(int) 1D depth array sampled format:Unknown + 55: TypeSampledImage 54 + 63: TypeImage 6(float) 2D array sampled format:Unknown + 64: TypePointer UniformConstant 63 + 65(g_tTex2df4a): 64(ptr) Variable UniformConstant + 68: TypeImage 6(float) 2D depth array sampled format:Unknown + 69: TypeSampledImage 68 + 71: 6(float) Constant 1050253722 + 72: 25(fvec3) ConstantComposite 21 22 71 + 73: TypeVector 6(float) 4 + 81: TypeImage 33(int) 2D array sampled format:Unknown + 82: TypePointer UniformConstant 81 + 83(g_tTex2di4a): 82(ptr) Variable UniformConstant + 86: TypeImage 33(int) 2D depth array sampled format:Unknown + 87: TypeSampledImage 86 + 96: TypeImage 48(int) 2D array sampled format:Unknown + 97: TypePointer UniformConstant 96 + 98(g_tTex2du4a): 97(ptr) Variable UniformConstant + 101: TypeImage 48(int) 2D depth array sampled format:Unknown + 102: TypeSampledImage 101 + 111: TypeImage 6(float) Cube array sampled format:Unknown + 112: TypePointer UniformConstant 111 +113(g_tTexcdf4a): 112(ptr) Variable UniformConstant + 116: TypeImage 6(float) Cube depth array sampled format:Unknown + 117: TypeSampledImage 116 + 119: 6(float) Constant 1053609165 + 120: 73(fvec4) ConstantComposite 21 22 71 119 + 128: TypeImage 33(int) Cube array sampled format:Unknown + 129: TypePointer UniformConstant 128 +130(g_tTexcdi4a): 129(ptr) Variable UniformConstant + 133: TypeImage 33(int) Cube depth array sampled format:Unknown + 134: TypeSampledImage 133 + 143: TypeImage 48(int) Cube array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTexcdu4a): 144(ptr) Variable UniformConstant + 148: TypeImage 48(int) Cube depth array sampled format:Unknown + 149: TypeSampledImage 148 + 157(PS_OUTPUT): TypeStruct 73(fvec4) 6(float) + 158: TypePointer Function 157(PS_OUTPUT) + 160: 33(int) Constant 0 + 161: 6(float) Constant 1065353216 + 162: 73(fvec4) ConstantComposite 161 161 161 161 + 163: TypePointer Function 73(fvec4) + 165: 33(int) Constant 1 + 167: TypePointer Output 73(fvec4) + 168(Color): 167(ptr) Variable Output + 171: TypePointer Output 6(float) + 172(Depth): 171(ptr) Variable Output + 176: TypeImage 6(float) 1D sampled format:Unknown 177: TypePointer UniformConstant 176 - 178(g_tTexcdf4): 177(ptr) Variable UniformConstant - 179: TypeImage 30(int) Cube sampled format:Unknown + 178(g_tTex1df4): 177(ptr) Variable UniformConstant + 179: TypeImage 33(int) 1D sampled format:Unknown 180: TypePointer UniformConstant 179 - 181(g_tTexcdi4): 180(ptr) Variable UniformConstant - 182: TypeImage 43(int) Cube sampled format:Unknown + 181(g_tTex1di4): 180(ptr) Variable UniformConstant + 182: TypeImage 48(int) 1D sampled format:Unknown 183: TypePointer UniformConstant 182 - 184(g_tTexcdu4): 183(ptr) Variable UniformConstant + 184(g_tTex1du4): 183(ptr) Variable UniformConstant + 185: TypeImage 6(float) 2D sampled format:Unknown + 186: TypePointer UniformConstant 185 + 187(g_tTex2df4): 186(ptr) Variable UniformConstant + 188: TypeImage 33(int) 2D sampled format:Unknown + 189: TypePointer UniformConstant 188 + 190(g_tTex2di4): 189(ptr) Variable UniformConstant + 191: TypeImage 48(int) 2D sampled format:Unknown + 192: TypePointer UniformConstant 191 + 193(g_tTex2du4): 192(ptr) Variable UniformConstant + 194: TypeImage 6(float) 3D sampled format:Unknown + 195: TypePointer UniformConstant 194 + 196(g_tTex3df4): 195(ptr) Variable UniformConstant + 197: TypeImage 33(int) 3D sampled format:Unknown + 198: TypePointer UniformConstant 197 + 199(g_tTex3di4): 198(ptr) Variable UniformConstant + 200: TypeImage 48(int) 3D sampled format:Unknown + 201: TypePointer UniformConstant 200 + 202(g_tTex3du4): 201(ptr) Variable UniformConstant + 203: TypeImage 6(float) Cube sampled format:Unknown + 204: TypePointer UniformConstant 203 + 205(g_tTexcdf4): 204(ptr) Variable UniformConstant + 206: TypeImage 33(int) Cube sampled format:Unknown + 207: TypePointer UniformConstant 206 + 208(g_tTexcdi4): 207(ptr) Variable UniformConstant + 209: TypeImage 48(int) Cube sampled format:Unknown + 210: TypePointer UniformConstant 209 + 211(g_tTexcdu4): 210(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r10): 7(ptr) Variable Function - 29(r12): 7(ptr) Variable Function - 42(r14): 7(ptr) Variable Function - 55(r30): 7(ptr) Variable Function - 70(r32): 7(ptr) Variable Function - 82(r34): 7(ptr) Variable Function - 94(r60): 7(ptr) Variable Function - 108(r62): 7(ptr) Variable Function - 119(r64): 7(ptr) Variable Function - 132(psout): 131(ptr) Variable Function + 32(r12): 7(ptr) Variable Function + 47(r14): 7(ptr) Variable Function + 62(r30): 7(ptr) Variable Function + 80(r32): 7(ptr) Variable Function + 95(r34): 7(ptr) Variable Function + 110(r60): 7(ptr) Variable Function + 127(r62): 7(ptr) Variable Function + 142(r64): 7(ptr) Variable Function + 159(psout): 158(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 27: 6(float) CompositeExtract 25 0 - 28: 6(float) ImageSampleDrefExplicitLod 19 25 27 Lod 26 - Store 8(r10) 28 - 34: 31 Load 33(g_tTex1di4a) - 35: 13 Load 15(g_sSamp) - 38: 37 SampledImage 34 35 - 39: 6(float) CompositeExtract 23 0 - 40: 6(float) CompositeExtract 39 0 - 41: 6(float) ImageSampleDrefExplicitLod 38 39 40 Lod 26 - Store 29(r12) 41 - 47: 44 Load 46(g_tTex1du4a) - 48: 13 Load 15(g_sSamp) - 51: 50 SampledImage 47 48 - 52: 6(float) CompositeExtract 23 0 - 53: 6(float) CompositeExtract 52 0 - 54: 6(float) ImageSampleDrefExplicitLod 51 52 53 Lod 26 - Store 42(r14) 54 - 59: 56 Load 58(g_tTex2df4a) - 60: 13 Load 15(g_sSamp) - 63: 62 SampledImage 59 60 - 67: 6(float) CompositeExtract 66 0 - 68: 6(float) CompositeExtract 67 0 - 69: 6(float) ImageSampleDrefExplicitLod 63 67 68 Lod 26 - Store 55(r30) 69 - 74: 71 Load 73(g_tTex2di4a) - 75: 13 Load 15(g_sSamp) - 78: 77 SampledImage 74 75 - 79: 6(float) CompositeExtract 66 0 - 80: 6(float) CompositeExtract 79 0 - 81: 6(float) ImageSampleDrefExplicitLod 78 79 80 Lod 26 - Store 70(r32) 81 - 86: 83 Load 85(g_tTex2du4a) - 87: 13 Load 15(g_sSamp) - 90: 89 SampledImage 86 87 - 91: 6(float) CompositeExtract 66 0 - 92: 6(float) CompositeExtract 91 0 - 93: 6(float) ImageSampleDrefExplicitLod 90 91 92 Lod 26 - Store 82(r34) 93 - 98: 95 Load 97(g_tTexcdf4a) - 99: 13 Load 15(g_sSamp) - 102: 101 SampledImage 98 99 - 106: 6(float) CompositeExtract 105 0 - 107: 6(float) ImageSampleDrefExplicitLod 102 106 24 Lod 24 - Store 94(r60) 107 - 112: 109 Load 111(g_tTexcdi4a) - 113: 13 Load 15(g_sSamp) - 116: 115 SampledImage 112 113 - 117: 6(float) CompositeExtract 105 0 - 118: 6(float) ImageSampleDrefExplicitLod 116 117 24 Lod 24 - Store 108(r62) 118 - 123: 120 Load 122(g_tTexcdu4a) - 124: 13 Load 15(g_sSamp) - 127: 126 SampledImage 123 124 - 128: 6(float) CompositeExtract 105 0 - 129: 6(float) ImageSampleDrefExplicitLod 127 128 24 Lod 24 - Store 119(r64) 129 - 137: 136(ptr) AccessChain 132(psout) 133 - Store 137 135 - 139: 7(ptr) AccessChain 132(psout) 138 - Store 139 134 - 142: 136(ptr) AccessChain 132(psout) 133 - 143: 103(fvec4) Load 142 - Store 141(Color) 143 - 146: 7(ptr) AccessChain 132(psout) 138 - 147: 6(float) Load 146 - Store 145(Depth) 147 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 30: 6(float) CompositeExtract 28 2 + 31: 6(float) ImageSampleDrefExplicitLod 19 28 30 Lod 29 + Store 8(r10) 31 + 37: 34 Load 36(g_tTex1di4a) + 38: 13 Load 15(g_sSamp) + 41: 40 SampledImage 37 38 + 42: 6(float) CompositeExtract 23 0 + 43: 6(float) CompositeExtract 23 1 + 44: 25(fvec3) CompositeConstruct 42 43 24 + 45: 6(float) CompositeExtract 44 2 + 46: 6(float) ImageSampleDrefExplicitLod 41 44 45 Lod 29 + Store 32(r12) 46 + 52: 49 Load 51(g_tTex1du4a) + 53: 13 Load 15(g_sSamp) + 56: 55 SampledImage 52 53 + 57: 6(float) CompositeExtract 23 0 + 58: 6(float) CompositeExtract 23 1 + 59: 25(fvec3) CompositeConstruct 57 58 24 + 60: 6(float) CompositeExtract 59 2 + 61: 6(float) ImageSampleDrefExplicitLod 56 59 60 Lod 29 + Store 47(r14) 61 + 66: 63 Load 65(g_tTex2df4a) + 67: 13 Load 15(g_sSamp) + 70: 69 SampledImage 66 67 + 74: 6(float) CompositeExtract 72 0 + 75: 6(float) CompositeExtract 72 1 + 76: 6(float) CompositeExtract 72 2 + 77: 73(fvec4) CompositeConstruct 74 75 76 24 + 78: 6(float) CompositeExtract 77 3 + 79: 6(float) ImageSampleDrefExplicitLod 70 77 78 Lod 29 + Store 62(r30) 79 + 84: 81 Load 83(g_tTex2di4a) + 85: 13 Load 15(g_sSamp) + 88: 87 SampledImage 84 85 + 89: 6(float) CompositeExtract 72 0 + 90: 6(float) CompositeExtract 72 1 + 91: 6(float) CompositeExtract 72 2 + 92: 73(fvec4) CompositeConstruct 89 90 91 24 + 93: 6(float) CompositeExtract 92 3 + 94: 6(float) ImageSampleDrefExplicitLod 88 92 93 Lod 29 + Store 80(r32) 94 + 99: 96 Load 98(g_tTex2du4a) + 100: 13 Load 15(g_sSamp) + 103: 102 SampledImage 99 100 + 104: 6(float) CompositeExtract 72 0 + 105: 6(float) CompositeExtract 72 1 + 106: 6(float) CompositeExtract 72 2 + 107: 73(fvec4) CompositeConstruct 104 105 106 24 + 108: 6(float) CompositeExtract 107 3 + 109: 6(float) ImageSampleDrefExplicitLod 103 107 108 Lod 29 + Store 95(r34) 109 + 114: 111 Load 113(g_tTexcdf4a) + 115: 13 Load 15(g_sSamp) + 118: 117 SampledImage 114 115 + 121: 6(float) CompositeExtract 120 0 + 122: 6(float) CompositeExtract 120 1 + 123: 6(float) CompositeExtract 120 2 + 124: 6(float) CompositeExtract 120 3 + 125: 73(fvec4) CompositeConstruct 121 122 123 124 + 126: 6(float) ImageSampleDrefExplicitLod 118 125 24 Lod 24 + Store 110(r60) 126 + 131: 128 Load 130(g_tTexcdi4a) + 132: 13 Load 15(g_sSamp) + 135: 134 SampledImage 131 132 + 136: 6(float) CompositeExtract 120 0 + 137: 6(float) CompositeExtract 120 1 + 138: 6(float) CompositeExtract 120 2 + 139: 6(float) CompositeExtract 120 3 + 140: 73(fvec4) CompositeConstruct 136 137 138 139 + 141: 6(float) ImageSampleDrefExplicitLod 135 140 24 Lod 24 + Store 127(r62) 141 + 146: 143 Load 145(g_tTexcdu4a) + 147: 13 Load 15(g_sSamp) + 150: 149 SampledImage 146 147 + 151: 6(float) CompositeExtract 120 0 + 152: 6(float) CompositeExtract 120 1 + 153: 6(float) CompositeExtract 120 2 + 154: 6(float) CompositeExtract 120 3 + 155: 73(fvec4) CompositeConstruct 151 152 153 154 + 156: 6(float) ImageSampleDrefExplicitLod 150 155 24 Lod 24 + Store 142(r64) 156 + 164: 163(ptr) AccessChain 159(psout) 160 + Store 164 162 + 166: 7(ptr) AccessChain 159(psout) 165 + Store 166 161 + 169: 163(ptr) AccessChain 159(psout) 160 + 170: 73(fvec4) Load 169 + Store 168(Color) 170 + 173: 7(ptr) AccessChain 159(psout) 165 + 174: 6(float) Load 173 + Store 172(Depth) 174 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out index 5f83499a44474af1aa0cd814034750049ad6b3ca..de8227649a548860e961748dd601f83fe2e65b85 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.basic.dx10.frag.out @@ -2,17 +2,17 @@ hlsl.samplecmplevelzero.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r00' (temp float) -0:42 textureLod (global float) +0:42 textureLod (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -22,11 +22,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r02' (temp float) -0:43 textureLod (global float) +0:43 textureLod (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -36,11 +36,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r04' (temp float) -0:44 textureLod (global float) +0:44 textureLod (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -50,11 +50,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r20' (temp float) -0:47 textureLod (global float) +0:47 textureLod (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -65,11 +65,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r22' (temp float) -0:48 textureLod (global float) +0:48 textureLod (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -80,11 +80,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r24' (temp float) -0:49 textureLod (global float) +0:49 textureLod (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -95,11 +95,11 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r50' (temp float) -0:53 textureLod (global float) +0:53 textureLod (temp float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -111,11 +111,11 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r52' (temp float) -0:54 textureLod (global float) +0:54 textureLod (temp float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -127,11 +127,11 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r54' (temp float) -0:55 textureLod (global float) +0:55 textureLod (temp float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -157,8 +157,8 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:? Sequence -0:? Sequence +0:60 Sequence +0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) @@ -173,6 +173,8 @@ gl_FragCoord origin is upper left 0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -195,8 +197,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -205,17 +205,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r00' (temp float) -0:42 textureLod (global float) +0:42 textureLod (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -225,11 +225,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r02' (temp float) -0:43 textureLod (global float) +0:43 textureLod (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -239,11 +239,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r04' (temp float) -0:44 textureLod (global float) +0:44 textureLod (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -253,11 +253,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r20' (temp float) -0:47 textureLod (global float) +0:47 textureLod (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -268,11 +268,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r22' (temp float) -0:48 textureLod (global float) +0:48 textureLod (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -283,11 +283,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r24' (temp float) -0:49 textureLod (global float) +0:49 textureLod (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -298,11 +298,11 @@ gl_FragCoord origin is upper left 0:53 Sequence 0:53 move second child to first child (temp float) 0:53 'r50' (temp float) -0:53 textureLod (global float) +0:53 textureLod (temp float) 0:53 Construct combined texture-sampler (temp samplerCubeShadow) 0:53 'g_tTexcdf4' (uniform textureCube) 0:53 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:53 Construct vec4 (temp float) +0:53 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -314,11 +314,11 @@ gl_FragCoord origin is upper left 0:54 Sequence 0:54 move second child to first child (temp float) 0:54 'r52' (temp float) -0:54 textureLod (global float) +0:54 textureLod (temp float) 0:54 Construct combined texture-sampler (temp isamplerCubeShadow) 0:54 'g_tTexcdi4' (uniform itextureCube) 0:54 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:54 Construct vec4 (temp float) +0:54 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -330,11 +330,11 @@ gl_FragCoord origin is upper left 0:55 Sequence 0:55 move second child to first child (temp float) 0:55 'r54' (temp float) -0:55 textureLod (global float) +0:55 textureLod (temp float) 0:55 Construct combined texture-sampler (temp usamplerCubeShadow) 0:55 'g_tTexcdu4' (uniform utextureCube) 0:55 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:55 Construct vec4 (temp float) +0:55 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -360,8 +360,8 @@ gl_FragCoord origin is upper left 0:58 1 (const int) 0:58 Constant: 0:58 1.000000 -0:? Sequence -0:? Sequence +0:60 Sequence +0:60 Sequence 0:60 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:60 Color: direct index for structure (temp 4-component vector of float) @@ -376,6 +376,8 @@ gl_FragCoord origin is upper left 0:60 1 (const int) 0:60 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -398,84 +400,82 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 183 +// Id's are bound by 201 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 139 143 + EntryPoint Fragment 4 "main" 157 161 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r00" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 25 "r02" - Name 29 "g_tTex1di4" - Name 37 "r04" - Name 41 "g_tTex1du4" - Name 49 "r20" - Name 52 "g_tTex2df4" - Name 64 "r22" - Name 67 "g_tTex2di4" - Name 76 "r24" - Name 79 "g_tTex2du4" - Name 88 "r50" - Name 91 "g_tTexcdf4" - Name 103 "r52" - Name 106 "g_tTexcdi4" - Name 115 "r54" - Name 118 "g_tTexcdu4" - Name 128 "PS_OUTPUT" - MemberName 128(PS_OUTPUT) 0 "Color" - MemberName 128(PS_OUTPUT) 1 "Depth" - Name 130 "psout" - Name 139 "Color" - Name 143 "Depth" - Name 149 "g_tTex3df4" - Name 152 "g_tTex3di4" - Name 155 "g_tTex3du4" - Name 158 "g_tTex1df4a" - Name 161 "g_tTex1di4a" - Name 164 "g_tTex1du4a" - Name 167 "g_tTex2df4a" - Name 170 "g_tTex2di4a" - Name 173 "g_tTex2du4a" - Name 176 "g_tTexcdf4a" - Name 179 "g_tTexcdi4a" - Name 182 "g_tTexcdu4a" + Name 27 "r02" + Name 31 "g_tTex1di4" + Name 40 "r04" + Name 44 "g_tTex1du4" + Name 53 "r20" + Name 56 "g_tTex2df4" + Name 70 "r22" + Name 73 "g_tTex2di4" + Name 84 "r24" + Name 87 "g_tTex2du4" + Name 98 "r50" + Name 101 "g_tTexcdf4" + Name 116 "r52" + Name 119 "g_tTexcdi4" + Name 131 "r54" + Name 134 "g_tTexcdu4" + Name 146 "PS_OUTPUT" + MemberName 146(PS_OUTPUT) 0 "Color" + MemberName 146(PS_OUTPUT) 1 "Depth" + Name 148 "psout" + Name 157 "Color" + Name 161 "Depth" + Name 167 "g_tTex3df4" + Name 170 "g_tTex3di4" + Name 173 "g_tTex3du4" + Name 176 "g_tTex1df4a" + Name 179 "g_tTex1di4a" + Name 182 "g_tTex1du4a" + Name 185 "g_tTex2df4a" + Name 188 "g_tTex2di4a" + Name 191 "g_tTex2du4a" + Name 194 "g_tTexcdf4a" + Name 197 "g_tTexcdi4a" + Name 200 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 29(g_tTex1di4) DescriptorSet 0 - Decorate 41(g_tTex1du4) DescriptorSet 0 - Decorate 52(g_tTex2df4) DescriptorSet 0 - Decorate 67(g_tTex2di4) DescriptorSet 0 - Decorate 79(g_tTex2du4) DescriptorSet 0 - Decorate 91(g_tTexcdf4) DescriptorSet 0 - Decorate 106(g_tTexcdi4) DescriptorSet 0 - Decorate 118(g_tTexcdu4) DescriptorSet 0 - Decorate 139(Color) Location 0 - Decorate 143(Depth) BuiltIn FragDepth - Decorate 149(g_tTex3df4) DescriptorSet 0 - Decorate 152(g_tTex3di4) DescriptorSet 0 - Decorate 155(g_tTex3du4) DescriptorSet 0 - Decorate 158(g_tTex1df4a) DescriptorSet 0 - Decorate 161(g_tTex1di4a) DescriptorSet 0 - Decorate 164(g_tTex1du4a) DescriptorSet 0 - Decorate 167(g_tTex2df4a) DescriptorSet 0 - Decorate 170(g_tTex2di4a) DescriptorSet 0 - Decorate 173(g_tTex2du4a) DescriptorSet 0 - Decorate 176(g_tTexcdf4a) DescriptorSet 0 - Decorate 179(g_tTexcdi4a) DescriptorSet 0 - Decorate 182(g_tTexcdu4a) DescriptorSet 0 + Decorate 31(g_tTex1di4) DescriptorSet 0 + Decorate 44(g_tTex1du4) DescriptorSet 0 + Decorate 56(g_tTex2df4) DescriptorSet 0 + Decorate 73(g_tTex2di4) DescriptorSet 0 + Decorate 87(g_tTex2du4) DescriptorSet 0 + Decorate 101(g_tTexcdf4) DescriptorSet 0 + Decorate 119(g_tTexcdi4) DescriptorSet 0 + Decorate 134(g_tTexcdu4) DescriptorSet 0 + Decorate 157(Color) Location 0 + Decorate 161(Depth) BuiltIn FragDepth + Decorate 167(g_tTex3df4) DescriptorSet 0 + Decorate 170(g_tTex3di4) DescriptorSet 0 + Decorate 173(g_tTex3du4) DescriptorSet 0 + Decorate 176(g_tTex1df4a) DescriptorSet 0 + Decorate 179(g_tTex1di4a) DescriptorSet 0 + Decorate 182(g_tTex1du4a) DescriptorSet 0 + Decorate 185(g_tTex2df4a) DescriptorSet 0 + Decorate 188(g_tTex2di4a) DescriptorSet 0 + Decorate 191(g_tTex2du4a) DescriptorSet 0 + Decorate 194(g_tTexcdf4a) DescriptorSet 0 + Decorate 197(g_tTexcdi4a) DescriptorSet 0 + Decorate 200(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -490,184 +490,202 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: 6(float) Constant 0 - 26: TypeInt 32 1 - 27: TypeImage 26(int) 1D sampled format:Unknown - 28: TypePointer UniformConstant 27 - 29(g_tTex1di4): 28(ptr) Variable UniformConstant - 32: TypeImage 26(int) 1D depth sampled format:Unknown - 33: TypeSampledImage 32 - 38: TypeInt 32 0 - 39: TypeImage 38(int) 1D sampled format:Unknown - 40: TypePointer UniformConstant 39 - 41(g_tTex1du4): 40(ptr) Variable UniformConstant - 44: TypeImage 38(int) 1D depth sampled format:Unknown - 45: TypeSampledImage 44 - 50: TypeImage 6(float) 2D sampled format:Unknown - 51: TypePointer UniformConstant 50 - 52(g_tTex2df4): 51(ptr) Variable UniformConstant - 55: TypeImage 6(float) 2D depth sampled format:Unknown - 56: TypeSampledImage 55 - 58: TypeVector 6(float) 2 - 59: 6(float) Constant 1045220557 - 60: 58(fvec2) ConstantComposite 20 59 - 65: TypeImage 26(int) 2D sampled format:Unknown - 66: TypePointer UniformConstant 65 - 67(g_tTex2di4): 66(ptr) Variable UniformConstant - 70: TypeImage 26(int) 2D depth sampled format:Unknown - 71: TypeSampledImage 70 - 77: TypeImage 38(int) 2D sampled format:Unknown - 78: TypePointer UniformConstant 77 - 79(g_tTex2du4): 78(ptr) Variable UniformConstant - 82: TypeImage 38(int) 2D depth sampled format:Unknown - 83: TypeSampledImage 82 - 89: TypeImage 6(float) Cube sampled format:Unknown - 90: TypePointer UniformConstant 89 - 91(g_tTexcdf4): 90(ptr) Variable UniformConstant - 94: TypeImage 6(float) Cube depth sampled format:Unknown - 95: TypeSampledImage 94 - 97: TypeVector 6(float) 3 - 98: 6(float) Constant 1050253722 - 99: 97(fvec3) ConstantComposite 20 59 98 - 104: TypeImage 26(int) Cube sampled format:Unknown - 105: TypePointer UniformConstant 104 - 106(g_tTexcdi4): 105(ptr) Variable UniformConstant - 109: TypeImage 26(int) Cube depth sampled format:Unknown - 110: TypeSampledImage 109 - 116: TypeImage 38(int) Cube sampled format:Unknown - 117: TypePointer UniformConstant 116 - 118(g_tTexcdu4): 117(ptr) Variable UniformConstant - 121: TypeImage 38(int) Cube depth sampled format:Unknown - 122: TypeSampledImage 121 - 127: TypeVector 6(float) 4 - 128(PS_OUTPUT): TypeStruct 127(fvec4) 6(float) - 129: TypePointer Function 128(PS_OUTPUT) - 131: 26(int) Constant 0 - 132: 6(float) Constant 1065353216 - 133: 127(fvec4) ConstantComposite 132 132 132 132 - 134: TypePointer Function 127(fvec4) - 136: 26(int) Constant 1 - 138: TypePointer Output 127(fvec4) - 139(Color): 138(ptr) Variable Output - 142: TypePointer Output 6(float) - 143(Depth): 142(ptr) Variable Output - 147: TypeImage 6(float) 3D sampled format:Unknown - 148: TypePointer UniformConstant 147 - 149(g_tTex3df4): 148(ptr) Variable UniformConstant - 150: TypeImage 26(int) 3D sampled format:Unknown - 151: TypePointer UniformConstant 150 - 152(g_tTex3di4): 151(ptr) Variable UniformConstant - 153: TypeImage 38(int) 3D sampled format:Unknown - 154: TypePointer UniformConstant 153 - 155(g_tTex3du4): 154(ptr) Variable UniformConstant - 156: TypeImage 6(float) 1D array sampled format:Unknown - 157: TypePointer UniformConstant 156 -158(g_tTex1df4a): 157(ptr) Variable UniformConstant - 159: TypeImage 26(int) 1D array sampled format:Unknown - 160: TypePointer UniformConstant 159 -161(g_tTex1di4a): 160(ptr) Variable UniformConstant - 162: TypeImage 38(int) 1D array sampled format:Unknown - 163: TypePointer UniformConstant 162 -164(g_tTex1du4a): 163(ptr) Variable UniformConstant - 165: TypeImage 6(float) 2D array sampled format:Unknown + 22: TypeVector 6(float) 2 + 24: 6(float) Constant 0 + 28: TypeInt 32 1 + 29: TypeImage 28(int) 1D sampled format:Unknown + 30: TypePointer UniformConstant 29 + 31(g_tTex1di4): 30(ptr) Variable UniformConstant + 34: TypeImage 28(int) 1D depth sampled format:Unknown + 35: TypeSampledImage 34 + 41: TypeInt 32 0 + 42: TypeImage 41(int) 1D sampled format:Unknown + 43: TypePointer UniformConstant 42 + 44(g_tTex1du4): 43(ptr) Variable UniformConstant + 47: TypeImage 41(int) 1D depth sampled format:Unknown + 48: TypeSampledImage 47 + 54: TypeImage 6(float) 2D sampled format:Unknown + 55: TypePointer UniformConstant 54 + 56(g_tTex2df4): 55(ptr) Variable UniformConstant + 59: TypeImage 6(float) 2D depth sampled format:Unknown + 60: TypeSampledImage 59 + 62: 6(float) Constant 1045220557 + 63: 22(fvec2) ConstantComposite 20 62 + 64: TypeVector 6(float) 3 + 71: TypeImage 28(int) 2D sampled format:Unknown + 72: TypePointer UniformConstant 71 + 73(g_tTex2di4): 72(ptr) Variable UniformConstant + 76: TypeImage 28(int) 2D depth sampled format:Unknown + 77: TypeSampledImage 76 + 85: TypeImage 41(int) 2D sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2du4): 86(ptr) Variable UniformConstant + 90: TypeImage 41(int) 2D depth sampled format:Unknown + 91: TypeSampledImage 90 + 99: TypeImage 6(float) Cube sampled format:Unknown + 100: TypePointer UniformConstant 99 + 101(g_tTexcdf4): 100(ptr) Variable UniformConstant + 104: TypeImage 6(float) Cube depth sampled format:Unknown + 105: TypeSampledImage 104 + 107: 6(float) Constant 1050253722 + 108: 64(fvec3) ConstantComposite 20 62 107 + 109: TypeVector 6(float) 4 + 117: TypeImage 28(int) Cube sampled format:Unknown + 118: TypePointer UniformConstant 117 + 119(g_tTexcdi4): 118(ptr) Variable UniformConstant + 122: TypeImage 28(int) Cube depth sampled format:Unknown + 123: TypeSampledImage 122 + 132: TypeImage 41(int) Cube sampled format:Unknown + 133: TypePointer UniformConstant 132 + 134(g_tTexcdu4): 133(ptr) Variable UniformConstant + 137: TypeImage 41(int) Cube depth sampled format:Unknown + 138: TypeSampledImage 137 + 146(PS_OUTPUT): TypeStruct 109(fvec4) 6(float) + 147: TypePointer Function 146(PS_OUTPUT) + 149: 28(int) Constant 0 + 150: 6(float) Constant 1065353216 + 151: 109(fvec4) ConstantComposite 150 150 150 150 + 152: TypePointer Function 109(fvec4) + 154: 28(int) Constant 1 + 156: TypePointer Output 109(fvec4) + 157(Color): 156(ptr) Variable Output + 160: TypePointer Output 6(float) + 161(Depth): 160(ptr) Variable Output + 165: TypeImage 6(float) 3D sampled format:Unknown 166: TypePointer UniformConstant 165 -167(g_tTex2df4a): 166(ptr) Variable UniformConstant - 168: TypeImage 26(int) 2D array sampled format:Unknown + 167(g_tTex3df4): 166(ptr) Variable UniformConstant + 168: TypeImage 28(int) 3D sampled format:Unknown 169: TypePointer UniformConstant 168 -170(g_tTex2di4a): 169(ptr) Variable UniformConstant - 171: TypeImage 38(int) 2D array sampled format:Unknown + 170(g_tTex3di4): 169(ptr) Variable UniformConstant + 171: TypeImage 41(int) 3D sampled format:Unknown 172: TypePointer UniformConstant 171 -173(g_tTex2du4a): 172(ptr) Variable UniformConstant - 174: TypeImage 6(float) Cube array sampled format:Unknown + 173(g_tTex3du4): 172(ptr) Variable UniformConstant + 174: TypeImage 6(float) 1D array sampled format:Unknown 175: TypePointer UniformConstant 174 -176(g_tTexcdf4a): 175(ptr) Variable UniformConstant - 177: TypeImage 26(int) Cube array sampled format:Unknown +176(g_tTex1df4a): 175(ptr) Variable UniformConstant + 177: TypeImage 28(int) 1D array sampled format:Unknown 178: TypePointer UniformConstant 177 -179(g_tTexcdi4a): 178(ptr) Variable UniformConstant - 180: TypeImage 38(int) Cube array sampled format:Unknown +179(g_tTex1di4a): 178(ptr) Variable UniformConstant + 180: TypeImage 41(int) 1D array sampled format:Unknown 181: TypePointer UniformConstant 180 -182(g_tTexcdu4a): 181(ptr) Variable UniformConstant +182(g_tTex1du4a): 181(ptr) Variable UniformConstant + 183: TypeImage 6(float) 2D array sampled format:Unknown + 184: TypePointer UniformConstant 183 +185(g_tTex2df4a): 184(ptr) Variable UniformConstant + 186: TypeImage 28(int) 2D array sampled format:Unknown + 187: TypePointer UniformConstant 186 +188(g_tTex2di4a): 187(ptr) Variable UniformConstant + 189: TypeImage 41(int) 2D array sampled format:Unknown + 190: TypePointer UniformConstant 189 +191(g_tTex2du4a): 190(ptr) Variable UniformConstant + 192: TypeImage 6(float) Cube array sampled format:Unknown + 193: TypePointer UniformConstant 192 +194(g_tTexcdf4a): 193(ptr) Variable UniformConstant + 195: TypeImage 28(int) Cube array sampled format:Unknown + 196: TypePointer UniformConstant 195 +197(g_tTexcdi4a): 196(ptr) Variable UniformConstant + 198: TypeImage 41(int) Cube array sampled format:Unknown + 199: TypePointer UniformConstant 198 +200(g_tTexcdu4a): 199(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r00): 7(ptr) Variable Function - 25(r02): 7(ptr) Variable Function - 37(r04): 7(ptr) Variable Function - 49(r20): 7(ptr) Variable Function - 64(r22): 7(ptr) Variable Function - 76(r24): 7(ptr) Variable Function - 88(r50): 7(ptr) Variable Function - 103(r52): 7(ptr) Variable Function - 115(r54): 7(ptr) Variable Function - 130(psout): 129(ptr) Variable Function + 27(r02): 7(ptr) Variable Function + 40(r04): 7(ptr) Variable Function + 53(r20): 7(ptr) Variable Function + 70(r22): 7(ptr) Variable Function + 84(r24): 7(ptr) Variable Function + 98(r50): 7(ptr) Variable Function + 116(r52): 7(ptr) Variable Function + 131(r54): 7(ptr) Variable Function + 148(psout): 147(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 23: 6(float) CompositeExtract 20 0 - 24: 6(float) ImageSampleDrefExplicitLod 19 20 23 Lod 22 - Store 8(r00) 24 - 30: 27 Load 29(g_tTex1di4) - 31: 13 Load 15(g_sSamp) - 34: 33 SampledImage 30 31 - 35: 6(float) CompositeExtract 20 0 - 36: 6(float) ImageSampleDrefExplicitLod 34 20 35 Lod 22 - Store 25(r02) 36 - 42: 39 Load 41(g_tTex1du4) - 43: 13 Load 15(g_sSamp) - 46: 45 SampledImage 42 43 - 47: 6(float) CompositeExtract 20 0 - 48: 6(float) ImageSampleDrefExplicitLod 46 20 47 Lod 22 - Store 37(r04) 48 - 53: 50 Load 52(g_tTex2df4) - 54: 13 Load 15(g_sSamp) - 57: 56 SampledImage 53 54 - 61: 6(float) CompositeExtract 60 0 - 62: 6(float) CompositeExtract 61 0 - 63: 6(float) ImageSampleDrefExplicitLod 57 61 62 Lod 22 - Store 49(r20) 63 - 68: 65 Load 67(g_tTex2di4) - 69: 13 Load 15(g_sSamp) - 72: 71 SampledImage 68 69 - 73: 6(float) CompositeExtract 60 0 - 74: 6(float) CompositeExtract 73 0 - 75: 6(float) ImageSampleDrefExplicitLod 72 73 74 Lod 22 - Store 64(r22) 75 - 80: 77 Load 79(g_tTex2du4) - 81: 13 Load 15(g_sSamp) - 84: 83 SampledImage 80 81 - 85: 6(float) CompositeExtract 60 0 - 86: 6(float) CompositeExtract 85 0 - 87: 6(float) ImageSampleDrefExplicitLod 84 85 86 Lod 22 - Store 76(r24) 87 - 92: 89 Load 91(g_tTexcdf4) - 93: 13 Load 15(g_sSamp) - 96: 95 SampledImage 92 93 - 100: 6(float) CompositeExtract 99 0 - 101: 6(float) CompositeExtract 100 0 - 102: 6(float) ImageSampleDrefExplicitLod 96 100 101 Lod 22 - Store 88(r50) 102 - 107: 104 Load 106(g_tTexcdi4) - 108: 13 Load 15(g_sSamp) - 111: 110 SampledImage 107 108 - 112: 6(float) CompositeExtract 99 0 - 113: 6(float) CompositeExtract 112 0 - 114: 6(float) ImageSampleDrefExplicitLod 111 112 113 Lod 22 - Store 103(r52) 114 - 119: 116 Load 118(g_tTexcdu4) - 120: 13 Load 15(g_sSamp) - 123: 122 SampledImage 119 120 - 124: 6(float) CompositeExtract 99 0 - 125: 6(float) CompositeExtract 124 0 - 126: 6(float) ImageSampleDrefExplicitLod 123 124 125 Lod 22 - Store 115(r54) 126 - 135: 134(ptr) AccessChain 130(psout) 131 - Store 135 133 - 137: 7(ptr) AccessChain 130(psout) 136 - Store 137 132 - 140: 134(ptr) AccessChain 130(psout) 131 - 141: 127(fvec4) Load 140 - Store 139(Color) 141 - 144: 7(ptr) AccessChain 130(psout) 136 - 145: 6(float) Load 144 - Store 143(Depth) 145 + 23: 22(fvec2) CompositeConstruct 20 21 + 25: 6(float) CompositeExtract 23 1 + 26: 6(float) ImageSampleDrefExplicitLod 19 23 25 Lod 24 + Store 8(r00) 26 + 32: 29 Load 31(g_tTex1di4) + 33: 13 Load 15(g_sSamp) + 36: 35 SampledImage 32 33 + 37: 22(fvec2) CompositeConstruct 20 21 + 38: 6(float) CompositeExtract 37 1 + 39: 6(float) ImageSampleDrefExplicitLod 36 37 38 Lod 24 + Store 27(r02) 39 + 45: 42 Load 44(g_tTex1du4) + 46: 13 Load 15(g_sSamp) + 49: 48 SampledImage 45 46 + 50: 22(fvec2) CompositeConstruct 20 21 + 51: 6(float) CompositeExtract 50 1 + 52: 6(float) ImageSampleDrefExplicitLod 49 50 51 Lod 24 + Store 40(r04) 52 + 57: 54 Load 56(g_tTex2df4) + 58: 13 Load 15(g_sSamp) + 61: 60 SampledImage 57 58 + 65: 6(float) CompositeExtract 63 0 + 66: 6(float) CompositeExtract 63 1 + 67: 64(fvec3) CompositeConstruct 65 66 21 + 68: 6(float) CompositeExtract 67 2 + 69: 6(float) ImageSampleDrefExplicitLod 61 67 68 Lod 24 + Store 53(r20) 69 + 74: 71 Load 73(g_tTex2di4) + 75: 13 Load 15(g_sSamp) + 78: 77 SampledImage 74 75 + 79: 6(float) CompositeExtract 63 0 + 80: 6(float) CompositeExtract 63 1 + 81: 64(fvec3) CompositeConstruct 79 80 21 + 82: 6(float) CompositeExtract 81 2 + 83: 6(float) ImageSampleDrefExplicitLod 78 81 82 Lod 24 + Store 70(r22) 83 + 88: 85 Load 87(g_tTex2du4) + 89: 13 Load 15(g_sSamp) + 92: 91 SampledImage 88 89 + 93: 6(float) CompositeExtract 63 0 + 94: 6(float) CompositeExtract 63 1 + 95: 64(fvec3) CompositeConstruct 93 94 21 + 96: 6(float) CompositeExtract 95 2 + 97: 6(float) ImageSampleDrefExplicitLod 92 95 96 Lod 24 + Store 84(r24) 97 + 102: 99 Load 101(g_tTexcdf4) + 103: 13 Load 15(g_sSamp) + 106: 105 SampledImage 102 103 + 110: 6(float) CompositeExtract 108 0 + 111: 6(float) CompositeExtract 108 1 + 112: 6(float) CompositeExtract 108 2 + 113: 109(fvec4) CompositeConstruct 110 111 112 21 + 114: 6(float) CompositeExtract 113 3 + 115: 6(float) ImageSampleDrefExplicitLod 106 113 114 Lod 24 + Store 98(r50) 115 + 120: 117 Load 119(g_tTexcdi4) + 121: 13 Load 15(g_sSamp) + 124: 123 SampledImage 120 121 + 125: 6(float) CompositeExtract 108 0 + 126: 6(float) CompositeExtract 108 1 + 127: 6(float) CompositeExtract 108 2 + 128: 109(fvec4) CompositeConstruct 125 126 127 21 + 129: 6(float) CompositeExtract 128 3 + 130: 6(float) ImageSampleDrefExplicitLod 124 128 129 Lod 24 + Store 116(r52) 130 + 135: 132 Load 134(g_tTexcdu4) + 136: 13 Load 15(g_sSamp) + 139: 138 SampledImage 135 136 + 140: 6(float) CompositeExtract 108 0 + 141: 6(float) CompositeExtract 108 1 + 142: 6(float) CompositeExtract 108 2 + 143: 109(fvec4) CompositeConstruct 140 141 142 21 + 144: 6(float) CompositeExtract 143 3 + 145: 6(float) ImageSampleDrefExplicitLod 139 143 144 Lod 24 + Store 131(r54) 145 + 153: 152(ptr) AccessChain 148(psout) 149 + Store 153 151 + 155: 7(ptr) AccessChain 148(psout) 154 + Store 155 150 + 158: 152(ptr) AccessChain 148(psout) 149 + 159: 109(fvec4) Load 158 + Store 157(Color) 159 + 162: 7(ptr) AccessChain 148(psout) 154 + 163: 6(float) Load 162 + Store 161(Depth) 163 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out index ceb1415f8e4d84ad174190d8f3f277c9495a4ec6..216ed41917936c9846d471484526295ebc9ad0eb 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offset.dx10.frag.out @@ -2,17 +2,17 @@ hlsl.samplecmplevelzero.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r01' (temp float) -0:42 textureLodOffset (global float) +0:42 textureLodOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -24,11 +24,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r03' (temp float) -0:43 textureLodOffset (global float) +0:43 textureLodOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -40,11 +40,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r05' (temp float) -0:44 textureLodOffset (global float) +0:44 textureLodOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -56,11 +56,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r21' (temp float) -0:47 textureLodOffset (global float) +0:47 textureLodOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -74,11 +74,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r23' (temp float) -0:48 textureLodOffset (global float) +0:48 textureLodOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -92,11 +92,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r25' (temp float) -0:49 textureLodOffset (global float) +0:49 textureLodOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -124,8 +124,8 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:? Sequence -0:? Sequence +0:65 Sequence +0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) @@ -140,6 +140,8 @@ gl_FragCoord origin is upper left 0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -162,8 +164,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -172,17 +172,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r01' (temp float) -0:42 textureLodOffset (global float) +0:42 textureLodOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DShadow) 0:42 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec2 (temp float) +0:42 Construct vec2 (temp 2-component vector of float) 0:42 Constant: 0:42 0.100000 0:42 Constant: @@ -194,11 +194,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r03' (temp float) -0:43 textureLodOffset (global float) +0:43 textureLodOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DShadow) 0:43 'g_tTex1di4' (uniform itexture1D) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec2 (temp float) +0:43 Construct vec2 (temp 2-component vector of float) 0:43 Constant: 0:43 0.100000 0:43 Constant: @@ -210,11 +210,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r05' (temp float) -0:44 textureLodOffset (global float) +0:44 textureLodOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DShadow) 0:44 'g_tTex1du4' (uniform utexture1D) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec2 (temp float) +0:44 Construct vec2 (temp 2-component vector of float) 0:44 Constant: 0:44 0.100000 0:44 Constant: @@ -226,11 +226,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r21' (temp float) -0:47 textureLodOffset (global float) +0:47 textureLodOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DShadow) 0:47 'g_tTex2df4' (uniform texture2D) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec3 (temp float) +0:47 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -244,11 +244,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r23' (temp float) -0:48 textureLodOffset (global float) +0:48 textureLodOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DShadow) 0:48 'g_tTex2di4' (uniform itexture2D) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec3 (temp float) +0:48 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -262,11 +262,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r25' (temp float) -0:49 textureLodOffset (global float) +0:49 textureLodOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DShadow) 0:49 'g_tTex2du4' (uniform utexture2D) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec3 (temp float) +0:49 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -294,8 +294,8 @@ gl_FragCoord origin is upper left 0:63 1 (const int) 0:63 Constant: 0:63 1.000000 -0:? Sequence -0:? Sequence +0:65 Sequence +0:65 Sequence 0:65 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:65 Color: direct index for structure (temp 4-component vector of float) @@ -310,6 +310,8 @@ gl_FragCoord origin is upper left 0:65 1 (const int) 0:65 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -332,81 +334,79 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 157 +// Id's are bound by 167 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 104 108 + EntryPoint Fragment 4 "main" 114 118 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r01" Name 11 "g_tTex1df4" Name 15 "g_sSamp" - Name 27 "r03" - Name 30 "g_tTex1di4" - Name 38 "r05" - Name 42 "g_tTex1du4" - Name 50 "r21" - Name 53 "g_tTex2df4" - Name 68 "r23" - Name 71 "g_tTex2di4" - Name 80 "r25" - Name 83 "g_tTex2du4" - Name 93 "PS_OUTPUT" - MemberName 93(PS_OUTPUT) 0 "Color" - MemberName 93(PS_OUTPUT) 1 "Depth" - Name 95 "psout" - Name 104 "Color" - Name 108 "Depth" - Name 114 "g_tTex3df4" - Name 117 "g_tTex3di4" - Name 120 "g_tTex3du4" - Name 123 "g_tTexcdf4" - Name 126 "g_tTexcdi4" - Name 129 "g_tTexcdu4" - Name 132 "g_tTex1df4a" - Name 135 "g_tTex1di4a" - Name 138 "g_tTex1du4a" - Name 141 "g_tTex2df4a" - Name 144 "g_tTex2di4a" - Name 147 "g_tTex2du4a" - Name 150 "g_tTexcdf4a" - Name 153 "g_tTexcdi4a" - Name 156 "g_tTexcdu4a" + Name 29 "r03" + Name 32 "g_tTex1di4" + Name 41 "r05" + Name 45 "g_tTex1du4" + Name 54 "r21" + Name 57 "g_tTex2df4" + Name 74 "r23" + Name 77 "g_tTex2di4" + Name 88 "r25" + Name 91 "g_tTex2du4" + Name 103 "PS_OUTPUT" + MemberName 103(PS_OUTPUT) 0 "Color" + MemberName 103(PS_OUTPUT) 1 "Depth" + Name 105 "psout" + Name 114 "Color" + Name 118 "Depth" + Name 124 "g_tTex3df4" + Name 127 "g_tTex3di4" + Name 130 "g_tTex3du4" + Name 133 "g_tTexcdf4" + Name 136 "g_tTexcdi4" + Name 139 "g_tTexcdu4" + Name 142 "g_tTex1df4a" + Name 145 "g_tTex1di4a" + Name 148 "g_tTex1du4a" + Name 151 "g_tTex2df4a" + Name 154 "g_tTex2di4a" + Name 157 "g_tTex2du4a" + Name 160 "g_tTexcdf4a" + Name 163 "g_tTexcdi4a" + Name 166 "g_tTexcdu4a" Decorate 11(g_tTex1df4) DescriptorSet 0 Decorate 11(g_tTex1df4) Binding 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 30(g_tTex1di4) DescriptorSet 0 - Decorate 42(g_tTex1du4) DescriptorSet 0 - Decorate 53(g_tTex2df4) DescriptorSet 0 - Decorate 71(g_tTex2di4) DescriptorSet 0 - Decorate 83(g_tTex2du4) DescriptorSet 0 - Decorate 104(Color) Location 0 - Decorate 108(Depth) BuiltIn FragDepth - Decorate 114(g_tTex3df4) DescriptorSet 0 - Decorate 117(g_tTex3di4) DescriptorSet 0 - Decorate 120(g_tTex3du4) DescriptorSet 0 - Decorate 123(g_tTexcdf4) DescriptorSet 0 - Decorate 126(g_tTexcdi4) DescriptorSet 0 - Decorate 129(g_tTexcdu4) DescriptorSet 0 - Decorate 132(g_tTex1df4a) DescriptorSet 0 - Decorate 135(g_tTex1di4a) DescriptorSet 0 - Decorate 138(g_tTex1du4a) DescriptorSet 0 - Decorate 141(g_tTex2df4a) DescriptorSet 0 - Decorate 144(g_tTex2di4a) DescriptorSet 0 - Decorate 147(g_tTex2du4a) DescriptorSet 0 - Decorate 150(g_tTexcdf4a) DescriptorSet 0 - Decorate 153(g_tTexcdi4a) DescriptorSet 0 - Decorate 156(g_tTexcdu4a) DescriptorSet 0 + Decorate 32(g_tTex1di4) DescriptorSet 0 + Decorate 45(g_tTex1du4) DescriptorSet 0 + Decorate 57(g_tTex2df4) DescriptorSet 0 + Decorate 77(g_tTex2di4) DescriptorSet 0 + Decorate 91(g_tTex2du4) DescriptorSet 0 + Decorate 114(Color) Location 0 + Decorate 118(Depth) BuiltIn FragDepth + Decorate 124(g_tTex3df4) DescriptorSet 0 + Decorate 127(g_tTex3di4) DescriptorSet 0 + Decorate 130(g_tTex3du4) DescriptorSet 0 + Decorate 133(g_tTexcdf4) DescriptorSet 0 + Decorate 136(g_tTexcdi4) DescriptorSet 0 + Decorate 139(g_tTexcdu4) DescriptorSet 0 + Decorate 142(g_tTex1df4a) DescriptorSet 0 + Decorate 145(g_tTex1di4a) DescriptorSet 0 + Decorate 148(g_tTex1du4a) DescriptorSet 0 + Decorate 151(g_tTex2df4a) DescriptorSet 0 + Decorate 154(g_tTex2di4a) DescriptorSet 0 + Decorate 157(g_tTex2du4a) DescriptorSet 0 + Decorate 160(g_tTexcdf4a) DescriptorSet 0 + Decorate 163(g_tTexcdi4a) DescriptorSet 0 + Decorate 166(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -421,155 +421,165 @@ gl_FragCoord origin is upper left 18: TypeSampledImage 17 20: 6(float) Constant 1036831949 21: 6(float) Constant 1061158912 - 22: 6(float) Constant 0 - 23: TypeInt 32 1 - 24: 23(int) Constant 2 - 28: TypeImage 23(int) 1D sampled format:Unknown - 29: TypePointer UniformConstant 28 - 30(g_tTex1di4): 29(ptr) Variable UniformConstant - 33: TypeImage 23(int) 1D depth sampled format:Unknown - 34: TypeSampledImage 33 - 39: TypeInt 32 0 - 40: TypeImage 39(int) 1D sampled format:Unknown - 41: TypePointer UniformConstant 40 - 42(g_tTex1du4): 41(ptr) Variable UniformConstant - 45: TypeImage 39(int) 1D depth sampled format:Unknown - 46: TypeSampledImage 45 - 51: TypeImage 6(float) 2D sampled format:Unknown - 52: TypePointer UniformConstant 51 - 53(g_tTex2df4): 52(ptr) Variable UniformConstant - 56: TypeImage 6(float) 2D depth sampled format:Unknown - 57: TypeSampledImage 56 - 59: TypeVector 6(float) 2 - 60: 6(float) Constant 1045220557 - 61: 59(fvec2) ConstantComposite 20 60 - 63: TypeVector 23(int) 2 - 64: 23(int) Constant 3 - 65: 63(ivec2) ConstantComposite 24 64 - 69: TypeImage 23(int) 2D sampled format:Unknown - 70: TypePointer UniformConstant 69 - 71(g_tTex2di4): 70(ptr) Variable UniformConstant - 74: TypeImage 23(int) 2D depth sampled format:Unknown - 75: TypeSampledImage 74 - 81: TypeImage 39(int) 2D sampled format:Unknown - 82: TypePointer UniformConstant 81 - 83(g_tTex2du4): 82(ptr) Variable UniformConstant - 86: TypeImage 39(int) 2D depth sampled format:Unknown - 87: TypeSampledImage 86 - 92: TypeVector 6(float) 4 - 93(PS_OUTPUT): TypeStruct 92(fvec4) 6(float) - 94: TypePointer Function 93(PS_OUTPUT) - 96: 23(int) Constant 0 - 97: 6(float) Constant 1065353216 - 98: 92(fvec4) ConstantComposite 97 97 97 97 - 99: TypePointer Function 92(fvec4) - 101: 23(int) Constant 1 - 103: TypePointer Output 92(fvec4) - 104(Color): 103(ptr) Variable Output - 107: TypePointer Output 6(float) - 108(Depth): 107(ptr) Variable Output - 112: TypeImage 6(float) 3D sampled format:Unknown - 113: TypePointer UniformConstant 112 - 114(g_tTex3df4): 113(ptr) Variable UniformConstant - 115: TypeImage 23(int) 3D sampled format:Unknown - 116: TypePointer UniformConstant 115 - 117(g_tTex3di4): 116(ptr) Variable UniformConstant - 118: TypeImage 39(int) 3D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex3du4): 119(ptr) Variable UniformConstant - 121: TypeImage 6(float) Cube sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTexcdf4): 122(ptr) Variable UniformConstant - 124: TypeImage 23(int) Cube sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTexcdi4): 125(ptr) Variable UniformConstant - 127: TypeImage 39(int) Cube sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTexcdu4): 128(ptr) Variable UniformConstant - 130: TypeImage 6(float) 1D array sampled format:Unknown - 131: TypePointer UniformConstant 130 -132(g_tTex1df4a): 131(ptr) Variable UniformConstant - 133: TypeImage 23(int) 1D array sampled format:Unknown - 134: TypePointer UniformConstant 133 -135(g_tTex1di4a): 134(ptr) Variable UniformConstant - 136: TypeImage 39(int) 1D array sampled format:Unknown - 137: TypePointer UniformConstant 136 -138(g_tTex1du4a): 137(ptr) Variable UniformConstant - 139: TypeImage 6(float) 2D array sampled format:Unknown - 140: TypePointer UniformConstant 139 -141(g_tTex2df4a): 140(ptr) Variable UniformConstant - 142: TypeImage 23(int) 2D array sampled format:Unknown - 143: TypePointer UniformConstant 142 -144(g_tTex2di4a): 143(ptr) Variable UniformConstant - 145: TypeImage 39(int) 2D array sampled format:Unknown - 146: TypePointer UniformConstant 145 -147(g_tTex2du4a): 146(ptr) Variable UniformConstant - 148: TypeImage 6(float) Cube array sampled format:Unknown - 149: TypePointer UniformConstant 148 -150(g_tTexcdf4a): 149(ptr) Variable UniformConstant - 151: TypeImage 23(int) Cube array sampled format:Unknown - 152: TypePointer UniformConstant 151 -153(g_tTexcdi4a): 152(ptr) Variable UniformConstant - 154: TypeImage 39(int) Cube array sampled format:Unknown - 155: TypePointer UniformConstant 154 -156(g_tTexcdu4a): 155(ptr) Variable UniformConstant + 22: TypeVector 6(float) 2 + 24: 6(float) Constant 0 + 25: TypeInt 32 1 + 26: 25(int) Constant 2 + 30: TypeImage 25(int) 1D sampled format:Unknown + 31: TypePointer UniformConstant 30 + 32(g_tTex1di4): 31(ptr) Variable UniformConstant + 35: TypeImage 25(int) 1D depth sampled format:Unknown + 36: TypeSampledImage 35 + 42: TypeInt 32 0 + 43: TypeImage 42(int) 1D sampled format:Unknown + 44: TypePointer UniformConstant 43 + 45(g_tTex1du4): 44(ptr) Variable UniformConstant + 48: TypeImage 42(int) 1D depth sampled format:Unknown + 49: TypeSampledImage 48 + 55: TypeImage 6(float) 2D sampled format:Unknown + 56: TypePointer UniformConstant 55 + 57(g_tTex2df4): 56(ptr) Variable UniformConstant + 60: TypeImage 6(float) 2D depth sampled format:Unknown + 61: TypeSampledImage 60 + 63: 6(float) Constant 1045220557 + 64: 22(fvec2) ConstantComposite 20 63 + 65: TypeVector 6(float) 3 + 69: TypeVector 25(int) 2 + 70: 25(int) Constant 3 + 71: 69(ivec2) ConstantComposite 26 70 + 75: TypeImage 25(int) 2D sampled format:Unknown + 76: TypePointer UniformConstant 75 + 77(g_tTex2di4): 76(ptr) Variable UniformConstant + 80: TypeImage 25(int) 2D depth sampled format:Unknown + 81: TypeSampledImage 80 + 89: TypeImage 42(int) 2D sampled format:Unknown + 90: TypePointer UniformConstant 89 + 91(g_tTex2du4): 90(ptr) Variable UniformConstant + 94: TypeImage 42(int) 2D depth sampled format:Unknown + 95: TypeSampledImage 94 + 102: TypeVector 6(float) 4 + 103(PS_OUTPUT): TypeStruct 102(fvec4) 6(float) + 104: TypePointer Function 103(PS_OUTPUT) + 106: 25(int) Constant 0 + 107: 6(float) Constant 1065353216 + 108: 102(fvec4) ConstantComposite 107 107 107 107 + 109: TypePointer Function 102(fvec4) + 111: 25(int) Constant 1 + 113: TypePointer Output 102(fvec4) + 114(Color): 113(ptr) Variable Output + 117: TypePointer Output 6(float) + 118(Depth): 117(ptr) Variable Output + 122: TypeImage 6(float) 3D sampled format:Unknown + 123: TypePointer UniformConstant 122 + 124(g_tTex3df4): 123(ptr) Variable UniformConstant + 125: TypeImage 25(int) 3D sampled format:Unknown + 126: TypePointer UniformConstant 125 + 127(g_tTex3di4): 126(ptr) Variable UniformConstant + 128: TypeImage 42(int) 3D sampled format:Unknown + 129: TypePointer UniformConstant 128 + 130(g_tTex3du4): 129(ptr) Variable UniformConstant + 131: TypeImage 6(float) Cube sampled format:Unknown + 132: TypePointer UniformConstant 131 + 133(g_tTexcdf4): 132(ptr) Variable UniformConstant + 134: TypeImage 25(int) Cube sampled format:Unknown + 135: TypePointer UniformConstant 134 + 136(g_tTexcdi4): 135(ptr) Variable UniformConstant + 137: TypeImage 42(int) Cube sampled format:Unknown + 138: TypePointer UniformConstant 137 + 139(g_tTexcdu4): 138(ptr) Variable UniformConstant + 140: TypeImage 6(float) 1D array sampled format:Unknown + 141: TypePointer UniformConstant 140 +142(g_tTex1df4a): 141(ptr) Variable UniformConstant + 143: TypeImage 25(int) 1D array sampled format:Unknown + 144: TypePointer UniformConstant 143 +145(g_tTex1di4a): 144(ptr) Variable UniformConstant + 146: TypeImage 42(int) 1D array sampled format:Unknown + 147: TypePointer UniformConstant 146 +148(g_tTex1du4a): 147(ptr) Variable UniformConstant + 149: TypeImage 6(float) 2D array sampled format:Unknown + 150: TypePointer UniformConstant 149 +151(g_tTex2df4a): 150(ptr) Variable UniformConstant + 152: TypeImage 25(int) 2D array sampled format:Unknown + 153: TypePointer UniformConstant 152 +154(g_tTex2di4a): 153(ptr) Variable UniformConstant + 155: TypeImage 42(int) 2D array sampled format:Unknown + 156: TypePointer UniformConstant 155 +157(g_tTex2du4a): 156(ptr) Variable UniformConstant + 158: TypeImage 6(float) Cube array sampled format:Unknown + 159: TypePointer UniformConstant 158 +160(g_tTexcdf4a): 159(ptr) Variable UniformConstant + 161: TypeImage 25(int) Cube array sampled format:Unknown + 162: TypePointer UniformConstant 161 +163(g_tTexcdi4a): 162(ptr) Variable UniformConstant + 164: TypeImage 42(int) Cube array sampled format:Unknown + 165: TypePointer UniformConstant 164 +166(g_tTexcdu4a): 165(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r01): 7(ptr) Variable Function - 27(r03): 7(ptr) Variable Function - 38(r05): 7(ptr) Variable Function - 50(r21): 7(ptr) Variable Function - 68(r23): 7(ptr) Variable Function - 80(r25): 7(ptr) Variable Function - 95(psout): 94(ptr) Variable Function + 29(r03): 7(ptr) Variable Function + 41(r05): 7(ptr) Variable Function + 54(r21): 7(ptr) Variable Function + 74(r23): 7(ptr) Variable Function + 88(r25): 7(ptr) Variable Function + 105(psout): 104(ptr) Variable Function 12: 9 Load 11(g_tTex1df4) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 20 0 - 26: 6(float) ImageSampleDrefExplicitLod 19 20 25 Lod ConstOffset 22 24 - Store 8(r01) 26 - 31: 28 Load 30(g_tTex1di4) - 32: 13 Load 15(g_sSamp) - 35: 34 SampledImage 31 32 - 36: 6(float) CompositeExtract 20 0 - 37: 6(float) ImageSampleDrefExplicitLod 35 20 36 Lod ConstOffset 22 24 - Store 27(r03) 37 - 43: 40 Load 42(g_tTex1du4) - 44: 13 Load 15(g_sSamp) - 47: 46 SampledImage 43 44 - 48: 6(float) CompositeExtract 20 0 - 49: 6(float) ImageSampleDrefExplicitLod 47 20 48 Lod ConstOffset 22 24 - Store 38(r05) 49 - 54: 51 Load 53(g_tTex2df4) - 55: 13 Load 15(g_sSamp) - 58: 57 SampledImage 54 55 - 62: 6(float) CompositeExtract 61 0 - 66: 6(float) CompositeExtract 62 0 - 67: 6(float) ImageSampleDrefExplicitLod 58 62 66 Lod ConstOffset 22 65 - Store 50(r21) 67 - 72: 69 Load 71(g_tTex2di4) - 73: 13 Load 15(g_sSamp) - 76: 75 SampledImage 72 73 - 77: 6(float) CompositeExtract 61 0 - 78: 6(float) CompositeExtract 77 0 - 79: 6(float) ImageSampleDrefExplicitLod 76 77 78 Lod ConstOffset 22 65 - Store 68(r23) 79 - 84: 81 Load 83(g_tTex2du4) - 85: 13 Load 15(g_sSamp) - 88: 87 SampledImage 84 85 - 89: 6(float) CompositeExtract 61 0 - 90: 6(float) CompositeExtract 89 0 - 91: 6(float) ImageSampleDrefExplicitLod 88 89 90 Lod ConstOffset 22 65 - Store 80(r25) 91 - 100: 99(ptr) AccessChain 95(psout) 96 - Store 100 98 - 102: 7(ptr) AccessChain 95(psout) 101 - Store 102 97 - 105: 99(ptr) AccessChain 95(psout) 96 - 106: 92(fvec4) Load 105 - Store 104(Color) 106 - 109: 7(ptr) AccessChain 95(psout) 101 - 110: 6(float) Load 109 - Store 108(Depth) 110 + 23: 22(fvec2) CompositeConstruct 20 21 + 27: 6(float) CompositeExtract 23 1 + 28: 6(float) ImageSampleDrefExplicitLod 19 23 27 Lod ConstOffset 24 26 + Store 8(r01) 28 + 33: 30 Load 32(g_tTex1di4) + 34: 13 Load 15(g_sSamp) + 37: 36 SampledImage 33 34 + 38: 22(fvec2) CompositeConstruct 20 21 + 39: 6(float) CompositeExtract 38 1 + 40: 6(float) ImageSampleDrefExplicitLod 37 38 39 Lod ConstOffset 24 26 + Store 29(r03) 40 + 46: 43 Load 45(g_tTex1du4) + 47: 13 Load 15(g_sSamp) + 50: 49 SampledImage 46 47 + 51: 22(fvec2) CompositeConstruct 20 21 + 52: 6(float) CompositeExtract 51 1 + 53: 6(float) ImageSampleDrefExplicitLod 50 51 52 Lod ConstOffset 24 26 + Store 41(r05) 53 + 58: 55 Load 57(g_tTex2df4) + 59: 13 Load 15(g_sSamp) + 62: 61 SampledImage 58 59 + 66: 6(float) CompositeExtract 64 0 + 67: 6(float) CompositeExtract 64 1 + 68: 65(fvec3) CompositeConstruct 66 67 21 + 72: 6(float) CompositeExtract 68 2 + 73: 6(float) ImageSampleDrefExplicitLod 62 68 72 Lod ConstOffset 24 71 + Store 54(r21) 73 + 78: 75 Load 77(g_tTex2di4) + 79: 13 Load 15(g_sSamp) + 82: 81 SampledImage 78 79 + 83: 6(float) CompositeExtract 64 0 + 84: 6(float) CompositeExtract 64 1 + 85: 65(fvec3) CompositeConstruct 83 84 21 + 86: 6(float) CompositeExtract 85 2 + 87: 6(float) ImageSampleDrefExplicitLod 82 85 86 Lod ConstOffset 24 71 + Store 74(r23) 87 + 92: 89 Load 91(g_tTex2du4) + 93: 13 Load 15(g_sSamp) + 96: 95 SampledImage 92 93 + 97: 6(float) CompositeExtract 64 0 + 98: 6(float) CompositeExtract 64 1 + 99: 65(fvec3) CompositeConstruct 97 98 21 + 100: 6(float) CompositeExtract 99 2 + 101: 6(float) ImageSampleDrefExplicitLod 96 99 100 Lod ConstOffset 24 71 + Store 88(r25) 101 + 110: 109(ptr) AccessChain 105(psout) 106 + Store 110 108 + 112: 7(ptr) AccessChain 105(psout) 111 + Store 112 107 + 115: 109(ptr) AccessChain 105(psout) 106 + 116: 102(fvec4) Load 115 + Store 114(Color) 116 + 119: 7(ptr) AccessChain 105(psout) 111 + 120: 6(float) Load 119 + Store 118(Depth) 120 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out index ea32bceccce9041b330bbd2bfc3ad697991974d0..2e5f3cda46cd6910a956d4c682919bcd4b806d7f 100644 --- a/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplecmplevelzero.offsetarray.dx10.frag.out @@ -2,17 +2,17 @@ hlsl.samplecmplevelzero.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r11' (temp float) -0:42 textureLodOffset (global float) +0:42 textureLodOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -25,11 +25,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r13' (temp float) -0:43 textureLodOffset (global float) +0:43 textureLodOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -42,11 +42,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r15' (temp float) -0:44 textureLodOffset (global float) +0:44 textureLodOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -59,11 +59,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r31' (temp float) -0:47 textureLodOffset (global float) +0:47 textureLodOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -78,11 +78,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r33' (temp float) -0:48 textureLodOffset (global float) +0:48 textureLodOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -97,11 +97,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r35' (temp float) -0:49 textureLodOffset (global float) +0:49 textureLodOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -130,8 +130,8 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:? Sequence -0:? Sequence +0:66 Sequence +0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) @@ -146,6 +146,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -168,8 +170,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -178,17 +178,17 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:38 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:38 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:38 Function Parameters: 0:? Sequence 0:42 Sequence 0:42 move second child to first child (temp float) 0:42 'r11' (temp float) -0:42 textureLodOffset (global float) +0:42 textureLodOffset (temp float) 0:42 Construct combined texture-sampler (temp sampler1DArrayShadow) 0:42 'g_tTex1df4a' (uniform texture1DArray) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:42 Construct vec3 (temp float) +0:42 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -201,11 +201,11 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp float) 0:43 'r13' (temp float) -0:43 textureLodOffset (global float) +0:43 textureLodOffset (temp float) 0:43 Construct combined texture-sampler (temp isampler1DArrayShadow) 0:43 'g_tTex1di4a' (uniform itexture1DArray) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:43 Construct vec3 (temp float) +0:43 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -218,11 +218,11 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp float) 0:44 'r15' (temp float) -0:44 textureLodOffset (global float) +0:44 textureLodOffset (temp float) 0:44 Construct combined texture-sampler (temp usampler1DArrayShadow) 0:44 'g_tTex1du4a' (uniform utexture1DArray) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:44 Construct vec3 (temp float) +0:44 Construct vec3 (temp 3-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -235,11 +235,11 @@ gl_FragCoord origin is upper left 0:47 Sequence 0:47 move second child to first child (temp float) 0:47 'r31' (temp float) -0:47 textureLodOffset (global float) +0:47 textureLodOffset (temp float) 0:47 Construct combined texture-sampler (temp sampler2DArrayShadow) 0:47 'g_tTex2df4a' (uniform texture2DArray) 0:47 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:47 Construct vec4 (temp float) +0:47 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -254,11 +254,11 @@ gl_FragCoord origin is upper left 0:48 Sequence 0:48 move second child to first child (temp float) 0:48 'r33' (temp float) -0:48 textureLodOffset (global float) +0:48 textureLodOffset (temp float) 0:48 Construct combined texture-sampler (temp isampler2DArrayShadow) 0:48 'g_tTex2di4a' (uniform itexture2DArray) 0:48 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:48 Construct vec4 (temp float) +0:48 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -273,11 +273,11 @@ gl_FragCoord origin is upper left 0:49 Sequence 0:49 move second child to first child (temp float) 0:49 'r35' (temp float) -0:49 textureLodOffset (global float) +0:49 textureLodOffset (temp float) 0:49 Construct combined texture-sampler (temp usampler2DArrayShadow) 0:49 'g_tTex2du4a' (uniform utexture2DArray) 0:49 'g_sSamp' (layout(binding=0 ) uniform sampler) -0:49 Construct vec4 (temp float) +0:49 Construct vec4 (temp 4-component vector of float) 0:? Constant: 0:? 0.100000 0:? 0.200000 @@ -306,8 +306,8 @@ gl_FragCoord origin is upper left 0:64 1 (const int) 0:64 Constant: 0:64 1.000000 -0:? Sequence -0:? Sequence +0:66 Sequence +0:66 Sequence 0:66 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:66 Color: direct index for structure (temp 4-component vector of float) @@ -322,6 +322,8 @@ gl_FragCoord origin is upper left 0:66 1 (const int) 0:66 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:? 'g_tTex1di4' (uniform itexture1D) @@ -344,81 +346,79 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 163 +// Id's are bound by 178 Capability Shader Capability Sampled1D Capability SampledCubeArray 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 110 114 + EntryPoint Fragment 4 "main" 125 129 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 8 "r11" Name 11 "g_tTex1df4a" Name 15 "g_sSamp" - Name 31 "r13" - Name 34 "g_tTex1di4a" - Name 43 "r15" - Name 47 "g_tTex1du4a" - Name 56 "r31" - Name 59 "g_tTex2df4a" - Name 74 "r33" - Name 77 "g_tTex2di4a" - Name 86 "r35" - Name 89 "g_tTex2du4a" - Name 99 "PS_OUTPUT" - MemberName 99(PS_OUTPUT) 0 "Color" - MemberName 99(PS_OUTPUT) 1 "Depth" - Name 101 "psout" - Name 110 "Color" - Name 114 "Depth" - Name 120 "g_tTex1df4" - Name 123 "g_tTex1di4" - Name 126 "g_tTex1du4" - Name 129 "g_tTex2df4" - Name 132 "g_tTex2di4" - Name 135 "g_tTex2du4" - Name 138 "g_tTex3df4" - Name 141 "g_tTex3di4" - Name 144 "g_tTex3du4" - Name 147 "g_tTexcdf4" - Name 150 "g_tTexcdi4" - Name 153 "g_tTexcdu4" - Name 156 "g_tTexcdf4a" - Name 159 "g_tTexcdi4a" - Name 162 "g_tTexcdu4a" + Name 34 "r13" + Name 37 "g_tTex1di4a" + Name 48 "r15" + Name 52 "g_tTex1du4a" + Name 63 "r31" + Name 66 "g_tTex2df4a" + Name 84 "r33" + Name 87 "g_tTex2di4a" + Name 99 "r35" + Name 102 "g_tTex2du4a" + Name 114 "PS_OUTPUT" + MemberName 114(PS_OUTPUT) 0 "Color" + MemberName 114(PS_OUTPUT) 1 "Depth" + Name 116 "psout" + Name 125 "Color" + Name 129 "Depth" + Name 135 "g_tTex1df4" + Name 138 "g_tTex1di4" + Name 141 "g_tTex1du4" + Name 144 "g_tTex2df4" + Name 147 "g_tTex2di4" + Name 150 "g_tTex2du4" + Name 153 "g_tTex3df4" + Name 156 "g_tTex3di4" + Name 159 "g_tTex3du4" + Name 162 "g_tTexcdf4" + Name 165 "g_tTexcdi4" + Name 168 "g_tTexcdu4" + Name 171 "g_tTexcdf4a" + Name 174 "g_tTexcdi4a" + Name 177 "g_tTexcdu4a" Decorate 11(g_tTex1df4a) DescriptorSet 0 Decorate 15(g_sSamp) DescriptorSet 0 Decorate 15(g_sSamp) Binding 0 - Decorate 34(g_tTex1di4a) DescriptorSet 0 - Decorate 47(g_tTex1du4a) DescriptorSet 0 - Decorate 59(g_tTex2df4a) DescriptorSet 0 - Decorate 77(g_tTex2di4a) DescriptorSet 0 - Decorate 89(g_tTex2du4a) DescriptorSet 0 - Decorate 110(Color) Location 0 - Decorate 114(Depth) BuiltIn FragDepth - Decorate 120(g_tTex1df4) DescriptorSet 0 - Decorate 120(g_tTex1df4) Binding 0 - Decorate 123(g_tTex1di4) DescriptorSet 0 - Decorate 126(g_tTex1du4) DescriptorSet 0 - Decorate 129(g_tTex2df4) DescriptorSet 0 - Decorate 132(g_tTex2di4) DescriptorSet 0 - Decorate 135(g_tTex2du4) DescriptorSet 0 - Decorate 138(g_tTex3df4) DescriptorSet 0 - Decorate 141(g_tTex3di4) DescriptorSet 0 - Decorate 144(g_tTex3du4) DescriptorSet 0 - Decorate 147(g_tTexcdf4) DescriptorSet 0 - Decorate 150(g_tTexcdi4) DescriptorSet 0 - Decorate 153(g_tTexcdu4) DescriptorSet 0 - Decorate 156(g_tTexcdf4a) DescriptorSet 0 - Decorate 159(g_tTexcdi4a) DescriptorSet 0 - Decorate 162(g_tTexcdu4a) DescriptorSet 0 + Decorate 37(g_tTex1di4a) DescriptorSet 0 + Decorate 52(g_tTex1du4a) DescriptorSet 0 + Decorate 66(g_tTex2df4a) DescriptorSet 0 + Decorate 87(g_tTex2di4a) DescriptorSet 0 + Decorate 102(g_tTex2du4a) DescriptorSet 0 + Decorate 125(Color) Location 0 + Decorate 129(Depth) BuiltIn FragDepth + Decorate 135(g_tTex1df4) DescriptorSet 0 + Decorate 135(g_tTex1df4) Binding 0 + Decorate 138(g_tTex1di4) DescriptorSet 0 + Decorate 141(g_tTex1du4) DescriptorSet 0 + Decorate 144(g_tTex2df4) DescriptorSet 0 + Decorate 147(g_tTex2di4) DescriptorSet 0 + Decorate 150(g_tTex2du4) DescriptorSet 0 + Decorate 153(g_tTex3df4) DescriptorSet 0 + Decorate 156(g_tTex3di4) DescriptorSet 0 + Decorate 159(g_tTex3du4) DescriptorSet 0 + Decorate 162(g_tTexcdf4) DescriptorSet 0 + Decorate 165(g_tTexcdi4) DescriptorSet 0 + Decorate 168(g_tTexcdu4) DescriptorSet 0 + Decorate 171(g_tTexcdf4a) DescriptorSet 0 + Decorate 174(g_tTexcdi4a) DescriptorSet 0 + Decorate 177(g_tTexcdu4a) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -436,158 +436,173 @@ gl_FragCoord origin is upper left 22: 6(float) Constant 1045220557 23: 20(fvec2) ConstantComposite 21 22 24: 6(float) Constant 1061158912 - 26: 6(float) Constant 0 - 27: TypeInt 32 1 - 28: 27(int) Constant 2 - 32: TypeImage 27(int) 1D array sampled format:Unknown - 33: TypePointer UniformConstant 32 - 34(g_tTex1di4a): 33(ptr) Variable UniformConstant - 37: TypeImage 27(int) 1D depth array sampled format:Unknown - 38: TypeSampledImage 37 - 44: TypeInt 32 0 - 45: TypeImage 44(int) 1D array sampled format:Unknown - 46: TypePointer UniformConstant 45 - 47(g_tTex1du4a): 46(ptr) Variable UniformConstant - 50: TypeImage 44(int) 1D depth array sampled format:Unknown - 51: TypeSampledImage 50 - 57: TypeImage 6(float) 2D array sampled format:Unknown - 58: TypePointer UniformConstant 57 - 59(g_tTex2df4a): 58(ptr) Variable UniformConstant - 62: TypeImage 6(float) 2D depth array sampled format:Unknown - 63: TypeSampledImage 62 - 65: TypeVector 6(float) 3 - 66: 6(float) Constant 1050253722 - 67: 65(fvec3) ConstantComposite 21 22 66 - 69: TypeVector 27(int) 2 - 70: 27(int) Constant 3 - 71: 69(ivec2) ConstantComposite 28 70 - 75: TypeImage 27(int) 2D array sampled format:Unknown - 76: TypePointer UniformConstant 75 - 77(g_tTex2di4a): 76(ptr) Variable UniformConstant - 80: TypeImage 27(int) 2D depth array sampled format:Unknown - 81: TypeSampledImage 80 - 87: TypeImage 44(int) 2D array sampled format:Unknown - 88: TypePointer UniformConstant 87 - 89(g_tTex2du4a): 88(ptr) Variable UniformConstant - 92: TypeImage 44(int) 2D depth array sampled format:Unknown - 93: TypeSampledImage 92 - 98: TypeVector 6(float) 4 - 99(PS_OUTPUT): TypeStruct 98(fvec4) 6(float) - 100: TypePointer Function 99(PS_OUTPUT) - 102: 27(int) Constant 0 - 103: 6(float) Constant 1065353216 - 104: 98(fvec4) ConstantComposite 103 103 103 103 - 105: TypePointer Function 98(fvec4) - 107: 27(int) Constant 1 - 109: TypePointer Output 98(fvec4) - 110(Color): 109(ptr) Variable Output - 113: TypePointer Output 6(float) - 114(Depth): 113(ptr) Variable Output - 118: TypeImage 6(float) 1D sampled format:Unknown - 119: TypePointer UniformConstant 118 - 120(g_tTex1df4): 119(ptr) Variable UniformConstant - 121: TypeImage 27(int) 1D sampled format:Unknown - 122: TypePointer UniformConstant 121 - 123(g_tTex1di4): 122(ptr) Variable UniformConstant - 124: TypeImage 44(int) 1D sampled format:Unknown - 125: TypePointer UniformConstant 124 - 126(g_tTex1du4): 125(ptr) Variable UniformConstant - 127: TypeImage 6(float) 2D sampled format:Unknown - 128: TypePointer UniformConstant 127 - 129(g_tTex2df4): 128(ptr) Variable UniformConstant - 130: TypeImage 27(int) 2D sampled format:Unknown - 131: TypePointer UniformConstant 130 - 132(g_tTex2di4): 131(ptr) Variable UniformConstant - 133: TypeImage 44(int) 2D sampled format:Unknown + 25: TypeVector 6(float) 3 + 29: 6(float) Constant 0 + 30: TypeInt 32 1 + 31: 30(int) Constant 2 + 35: TypeImage 30(int) 1D array sampled format:Unknown + 36: TypePointer UniformConstant 35 + 37(g_tTex1di4a): 36(ptr) Variable UniformConstant + 40: TypeImage 30(int) 1D depth array sampled format:Unknown + 41: TypeSampledImage 40 + 49: TypeInt 32 0 + 50: TypeImage 49(int) 1D array sampled format:Unknown + 51: TypePointer UniformConstant 50 + 52(g_tTex1du4a): 51(ptr) Variable UniformConstant + 55: TypeImage 49(int) 1D depth array sampled format:Unknown + 56: TypeSampledImage 55 + 64: TypeImage 6(float) 2D array sampled format:Unknown + 65: TypePointer UniformConstant 64 + 66(g_tTex2df4a): 65(ptr) Variable UniformConstant + 69: TypeImage 6(float) 2D depth array sampled format:Unknown + 70: TypeSampledImage 69 + 72: 6(float) Constant 1050253722 + 73: 25(fvec3) ConstantComposite 21 22 72 + 74: TypeVector 6(float) 4 + 79: TypeVector 30(int) 2 + 80: 30(int) Constant 3 + 81: 79(ivec2) ConstantComposite 31 80 + 85: TypeImage 30(int) 2D array sampled format:Unknown + 86: TypePointer UniformConstant 85 + 87(g_tTex2di4a): 86(ptr) Variable UniformConstant + 90: TypeImage 30(int) 2D depth array sampled format:Unknown + 91: TypeSampledImage 90 + 100: TypeImage 49(int) 2D array sampled format:Unknown + 101: TypePointer UniformConstant 100 +102(g_tTex2du4a): 101(ptr) Variable UniformConstant + 105: TypeImage 49(int) 2D depth array sampled format:Unknown + 106: TypeSampledImage 105 + 114(PS_OUTPUT): TypeStruct 74(fvec4) 6(float) + 115: TypePointer Function 114(PS_OUTPUT) + 117: 30(int) Constant 0 + 118: 6(float) Constant 1065353216 + 119: 74(fvec4) ConstantComposite 118 118 118 118 + 120: TypePointer Function 74(fvec4) + 122: 30(int) Constant 1 + 124: TypePointer Output 74(fvec4) + 125(Color): 124(ptr) Variable Output + 128: TypePointer Output 6(float) + 129(Depth): 128(ptr) Variable Output + 133: TypeImage 6(float) 1D sampled format:Unknown 134: TypePointer UniformConstant 133 - 135(g_tTex2du4): 134(ptr) Variable UniformConstant - 136: TypeImage 6(float) 3D sampled format:Unknown + 135(g_tTex1df4): 134(ptr) Variable UniformConstant + 136: TypeImage 30(int) 1D sampled format:Unknown 137: TypePointer UniformConstant 136 - 138(g_tTex3df4): 137(ptr) Variable UniformConstant - 139: TypeImage 27(int) 3D sampled format:Unknown + 138(g_tTex1di4): 137(ptr) Variable UniformConstant + 139: TypeImage 49(int) 1D sampled format:Unknown 140: TypePointer UniformConstant 139 - 141(g_tTex3di4): 140(ptr) Variable UniformConstant - 142: TypeImage 44(int) 3D sampled format:Unknown + 141(g_tTex1du4): 140(ptr) Variable UniformConstant + 142: TypeImage 6(float) 2D sampled format:Unknown 143: TypePointer UniformConstant 142 - 144(g_tTex3du4): 143(ptr) Variable UniformConstant - 145: TypeImage 6(float) Cube sampled format:Unknown + 144(g_tTex2df4): 143(ptr) Variable UniformConstant + 145: TypeImage 30(int) 2D sampled format:Unknown 146: TypePointer UniformConstant 145 - 147(g_tTexcdf4): 146(ptr) Variable UniformConstant - 148: TypeImage 27(int) Cube sampled format:Unknown + 147(g_tTex2di4): 146(ptr) Variable UniformConstant + 148: TypeImage 49(int) 2D sampled format:Unknown 149: TypePointer UniformConstant 148 - 150(g_tTexcdi4): 149(ptr) Variable UniformConstant - 151: TypeImage 44(int) Cube sampled format:Unknown + 150(g_tTex2du4): 149(ptr) Variable UniformConstant + 151: TypeImage 6(float) 3D sampled format:Unknown 152: TypePointer UniformConstant 151 - 153(g_tTexcdu4): 152(ptr) Variable UniformConstant - 154: TypeImage 6(float) Cube array sampled format:Unknown + 153(g_tTex3df4): 152(ptr) Variable UniformConstant + 154: TypeImage 30(int) 3D sampled format:Unknown 155: TypePointer UniformConstant 154 -156(g_tTexcdf4a): 155(ptr) Variable UniformConstant - 157: TypeImage 27(int) Cube array sampled format:Unknown + 156(g_tTex3di4): 155(ptr) Variable UniformConstant + 157: TypeImage 49(int) 3D sampled format:Unknown 158: TypePointer UniformConstant 157 -159(g_tTexcdi4a): 158(ptr) Variable UniformConstant - 160: TypeImage 44(int) Cube array sampled format:Unknown + 159(g_tTex3du4): 158(ptr) Variable UniformConstant + 160: TypeImage 6(float) Cube sampled format:Unknown 161: TypePointer UniformConstant 160 -162(g_tTexcdu4a): 161(ptr) Variable UniformConstant + 162(g_tTexcdf4): 161(ptr) Variable UniformConstant + 163: TypeImage 30(int) Cube sampled format:Unknown + 164: TypePointer UniformConstant 163 + 165(g_tTexcdi4): 164(ptr) Variable UniformConstant + 166: TypeImage 49(int) Cube sampled format:Unknown + 167: TypePointer UniformConstant 166 + 168(g_tTexcdu4): 167(ptr) Variable UniformConstant + 169: TypeImage 6(float) Cube array sampled format:Unknown + 170: TypePointer UniformConstant 169 +171(g_tTexcdf4a): 170(ptr) Variable UniformConstant + 172: TypeImage 30(int) Cube array sampled format:Unknown + 173: TypePointer UniformConstant 172 +174(g_tTexcdi4a): 173(ptr) Variable UniformConstant + 175: TypeImage 49(int) Cube array sampled format:Unknown + 176: TypePointer UniformConstant 175 +177(g_tTexcdu4a): 176(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 8(r11): 7(ptr) Variable Function - 31(r13): 7(ptr) Variable Function - 43(r15): 7(ptr) Variable Function - 56(r31): 7(ptr) Variable Function - 74(r33): 7(ptr) Variable Function - 86(r35): 7(ptr) Variable Function - 101(psout): 100(ptr) Variable Function + 34(r13): 7(ptr) Variable Function + 48(r15): 7(ptr) Variable Function + 63(r31): 7(ptr) Variable Function + 84(r33): 7(ptr) Variable Function + 99(r35): 7(ptr) Variable Function + 116(psout): 115(ptr) Variable Function 12: 9 Load 11(g_tTex1df4a) 16: 13 Load 15(g_sSamp) 19: 18 SampledImage 12 16 - 25: 6(float) CompositeExtract 23 0 - 29: 6(float) CompositeExtract 25 0 - 30: 6(float) ImageSampleDrefExplicitLod 19 25 29 Lod ConstOffset 26 28 - Store 8(r11) 30 - 35: 32 Load 34(g_tTex1di4a) - 36: 13 Load 15(g_sSamp) - 39: 38 SampledImage 35 36 - 40: 6(float) CompositeExtract 23 0 - 41: 6(float) CompositeExtract 40 0 - 42: 6(float) ImageSampleDrefExplicitLod 39 40 41 Lod ConstOffset 26 28 - Store 31(r13) 42 - 48: 45 Load 47(g_tTex1du4a) - 49: 13 Load 15(g_sSamp) - 52: 51 SampledImage 48 49 - 53: 6(float) CompositeExtract 23 0 - 54: 6(float) CompositeExtract 53 0 - 55: 6(float) ImageSampleDrefExplicitLod 52 53 54 Lod ConstOffset 26 28 - Store 43(r15) 55 - 60: 57 Load 59(g_tTex2df4a) - 61: 13 Load 15(g_sSamp) - 64: 63 SampledImage 60 61 - 68: 6(float) CompositeExtract 67 0 - 72: 6(float) CompositeExtract 68 0 - 73: 6(float) ImageSampleDrefExplicitLod 64 68 72 Lod ConstOffset 26 71 - Store 56(r31) 73 - 78: 75 Load 77(g_tTex2di4a) - 79: 13 Load 15(g_sSamp) - 82: 81 SampledImage 78 79 - 83: 6(float) CompositeExtract 67 0 - 84: 6(float) CompositeExtract 83 0 - 85: 6(float) ImageSampleDrefExplicitLod 82 83 84 Lod ConstOffset 26 71 - Store 74(r33) 85 - 90: 87 Load 89(g_tTex2du4a) - 91: 13 Load 15(g_sSamp) - 94: 93 SampledImage 90 91 - 95: 6(float) CompositeExtract 67 0 - 96: 6(float) CompositeExtract 95 0 - 97: 6(float) ImageSampleDrefExplicitLod 94 95 96 Lod ConstOffset 26 71 - Store 86(r35) 97 - 106: 105(ptr) AccessChain 101(psout) 102 - Store 106 104 - 108: 7(ptr) AccessChain 101(psout) 107 - Store 108 103 - 111: 105(ptr) AccessChain 101(psout) 102 - 112: 98(fvec4) Load 111 - Store 110(Color) 112 - 115: 7(ptr) AccessChain 101(psout) 107 - 116: 6(float) Load 115 - Store 114(Depth) 116 + 26: 6(float) CompositeExtract 23 0 + 27: 6(float) CompositeExtract 23 1 + 28: 25(fvec3) CompositeConstruct 26 27 24 + 32: 6(float) CompositeExtract 28 2 + 33: 6(float) ImageSampleDrefExplicitLod 19 28 32 Lod ConstOffset 29 31 + Store 8(r11) 33 + 38: 35 Load 37(g_tTex1di4a) + 39: 13 Load 15(g_sSamp) + 42: 41 SampledImage 38 39 + 43: 6(float) CompositeExtract 23 0 + 44: 6(float) CompositeExtract 23 1 + 45: 25(fvec3) CompositeConstruct 43 44 24 + 46: 6(float) CompositeExtract 45 2 + 47: 6(float) ImageSampleDrefExplicitLod 42 45 46 Lod ConstOffset 29 31 + Store 34(r13) 47 + 53: 50 Load 52(g_tTex1du4a) + 54: 13 Load 15(g_sSamp) + 57: 56 SampledImage 53 54 + 58: 6(float) CompositeExtract 23 0 + 59: 6(float) CompositeExtract 23 1 + 60: 25(fvec3) CompositeConstruct 58 59 24 + 61: 6(float) CompositeExtract 60 2 + 62: 6(float) ImageSampleDrefExplicitLod 57 60 61 Lod ConstOffset 29 31 + Store 48(r15) 62 + 67: 64 Load 66(g_tTex2df4a) + 68: 13 Load 15(g_sSamp) + 71: 70 SampledImage 67 68 + 75: 6(float) CompositeExtract 73 0 + 76: 6(float) CompositeExtract 73 1 + 77: 6(float) CompositeExtract 73 2 + 78: 74(fvec4) CompositeConstruct 75 76 77 24 + 82: 6(float) CompositeExtract 78 3 + 83: 6(float) ImageSampleDrefExplicitLod 71 78 82 Lod ConstOffset 29 81 + Store 63(r31) 83 + 88: 85 Load 87(g_tTex2di4a) + 89: 13 Load 15(g_sSamp) + 92: 91 SampledImage 88 89 + 93: 6(float) CompositeExtract 73 0 + 94: 6(float) CompositeExtract 73 1 + 95: 6(float) CompositeExtract 73 2 + 96: 74(fvec4) CompositeConstruct 93 94 95 24 + 97: 6(float) CompositeExtract 96 3 + 98: 6(float) ImageSampleDrefExplicitLod 92 96 97 Lod ConstOffset 29 81 + Store 84(r33) 98 + 103: 100 Load 102(g_tTex2du4a) + 104: 13 Load 15(g_sSamp) + 107: 106 SampledImage 103 104 + 108: 6(float) CompositeExtract 73 0 + 109: 6(float) CompositeExtract 73 1 + 110: 6(float) CompositeExtract 73 2 + 111: 74(fvec4) CompositeConstruct 108 109 110 24 + 112: 6(float) CompositeExtract 111 3 + 113: 6(float) ImageSampleDrefExplicitLod 107 111 112 Lod ConstOffset 29 81 + Store 99(r35) 113 + 121: 120(ptr) AccessChain 116(psout) 117 + Store 121 119 + 123: 7(ptr) AccessChain 116(psout) 122 + Store 123 118 + 126: 120(ptr) AccessChain 116(psout) 117 + 127: 74(fvec4) Load 126 + Store 125(Color) 127 + 130: 7(ptr) AccessChain 116(psout) 122 + 131: 6(float) Load 130 + Store 129(Depth) 131 Return FunctionEnd diff --git a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out index 16f575af8edd4afd6c133497e6f2346e3f0846d6..2a0d77a0c3abc60602dea6ebc2fd66d244bffb3f 100644 --- a/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.array.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplegrad.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureGrad (global 4-component vector of float) +0:27 textureGrad (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureGrad (global 4-component vector of int) +0:28 textureGrad (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureGrad (global 4-component vector of uint) +0:29 textureGrad (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureGrad (global 4-component vector of float) +0:31 textureGrad (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -67,7 +67,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureGrad (global 4-component vector of int) +0:32 textureGrad (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -84,7 +84,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureGrad (global 4-component vector of uint) +0:33 textureGrad (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -101,7 +101,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureGrad (global 4-component vector of float) +0:35 textureGrad (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -121,7 +121,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureGrad (global 4-component vector of int) +0:36 textureGrad (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -141,7 +141,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureGrad (global 4-component vector of uint) +0:37 textureGrad (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -175,8 +175,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -191,6 +191,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -202,8 +204,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -212,13 +212,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureGrad (global 4-component vector of float) +0:27 textureGrad (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -232,7 +232,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureGrad (global 4-component vector of int) +0:28 textureGrad (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -246,7 +246,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureGrad (global 4-component vector of uint) +0:29 textureGrad (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -260,7 +260,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureGrad (global 4-component vector of float) +0:31 textureGrad (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -277,7 +277,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureGrad (global 4-component vector of int) +0:32 textureGrad (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -294,7 +294,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureGrad (global 4-component vector of uint) +0:33 textureGrad (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -311,7 +311,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureGrad (global 4-component vector of float) +0:35 textureGrad (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -331,7 +331,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureGrad (global 4-component vector of int) +0:36 textureGrad (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -351,7 +351,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureGrad (global 4-component vector of uint) +0:37 textureGrad (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -385,8 +385,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -401,6 +401,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -412,8 +414,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out index d0d275f13d6e0a4f52bbe769531da06f2577d015..feaba770212e1fc9325270cbb96d68b7eb0cedf3 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplegrad.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureGrad (global 4-component vector of float) +0:31 textureGrad (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureGrad (global 4-component vector of int) +0:32 textureGrad (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureGrad (global 4-component vector of uint) +0:33 textureGrad (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureGrad (global 4-component vector of float) +0:35 textureGrad (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -63,7 +63,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureGrad (global 4-component vector of int) +0:36 textureGrad (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -79,7 +79,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureGrad (global 4-component vector of uint) +0:37 textureGrad (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -95,7 +95,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureGrad (global 4-component vector of float) +0:39 textureGrad (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -114,7 +114,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureGrad (global 4-component vector of int) +0:40 textureGrad (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureGrad (global 4-component vector of uint) +0:41 textureGrad (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -152,7 +152,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval40' (temp 4-component vector of float) -0:43 textureGrad (global 4-component vector of float) +0:43 textureGrad (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -171,7 +171,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval41' (temp 4-component vector of int) -0:44 textureGrad (global 4-component vector of int) +0:44 textureGrad (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -190,7 +190,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval42' (temp 4-component vector of uint) -0:45 textureGrad (global 4-component vector of uint) +0:45 textureGrad (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -223,8 +223,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:? Sequence -0:? Sequence +0:50 Sequence +0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) @@ -239,6 +239,8 @@ gl_FragCoord origin is upper left 0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -253,8 +255,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -263,13 +263,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureGrad (global 4-component vector of float) +0:31 textureGrad (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -282,7 +282,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureGrad (global 4-component vector of int) +0:32 textureGrad (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -295,7 +295,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureGrad (global 4-component vector of uint) +0:33 textureGrad (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -308,7 +308,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureGrad (global 4-component vector of float) +0:35 textureGrad (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -324,7 +324,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureGrad (global 4-component vector of int) +0:36 textureGrad (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -340,7 +340,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureGrad (global 4-component vector of uint) +0:37 textureGrad (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -356,7 +356,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureGrad (global 4-component vector of float) +0:39 textureGrad (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -375,7 +375,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureGrad (global 4-component vector of int) +0:40 textureGrad (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -394,7 +394,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureGrad (global 4-component vector of uint) +0:41 textureGrad (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -413,7 +413,7 @@ gl_FragCoord origin is upper left 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of float) 0:43 'txval40' (temp 4-component vector of float) -0:43 textureGrad (global 4-component vector of float) +0:43 textureGrad (temp 4-component vector of float) 0:43 Construct combined texture-sampler (temp samplerCube) 0:43 'g_tTexcdf4' (uniform textureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -432,7 +432,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of int) 0:44 'txval41' (temp 4-component vector of int) -0:44 textureGrad (global 4-component vector of int) +0:44 textureGrad (temp 4-component vector of int) 0:44 Construct combined texture-sampler (temp isamplerCube) 0:44 'g_tTexcdi4' (uniform itextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -451,7 +451,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of uint) 0:45 'txval42' (temp 4-component vector of uint) -0:45 textureGrad (global 4-component vector of uint) +0:45 textureGrad (temp 4-component vector of uint) 0:45 Construct combined texture-sampler (temp usamplerCube) 0:45 'g_tTexcdu4' (uniform utextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -484,8 +484,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Constant: 0:48 1.000000 -0:? Sequence -0:? Sequence +0:50 Sequence +0:50 Sequence 0:50 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:50 Color: direct index for structure (temp 4-component vector of float) @@ -500,6 +500,8 @@ gl_FragCoord origin is upper left 0:50 1 (const int) 0:50 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -514,8 +516,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out index 5e95ae0d22d161483cbecdbfaad6c8ce3c7c2d2a..f6d37c3be2e16f5197d8f264fc50deb39f282446 100644 --- a/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplegrad.basic.dx10.vert.out @@ -1,13 +1,13 @@ hlsl.samplegrad.basic.dx10.vert Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of float) 0:30 'txval10' (temp 4-component vector of float) -0:30 textureGrad (global 4-component vector of float) +0:30 textureGrad (temp 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) 0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ Shader version: 450 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of int) 0:31 'txval11' (temp 4-component vector of int) -0:31 textureGrad (global 4-component vector of int) +0:31 textureGrad (temp 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -33,7 +33,7 @@ Shader version: 450 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of uint) 0:32 'txval12' (temp 4-component vector of uint) -0:32 textureGrad (global 4-component vector of uint) +0:32 textureGrad (temp 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -46,7 +46,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureGrad (global 4-component vector of float) +0:34 textureGrad (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -62,7 +62,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureGrad (global 4-component vector of int) +0:35 textureGrad (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -78,7 +78,7 @@ Shader version: 450 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureGrad (global 4-component vector of uint) +0:36 textureGrad (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -94,7 +94,7 @@ Shader version: 450 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:38 'txval30' (temp 4-component vector of float) -0:38 textureGrad (global 4-component vector of float) +0:38 textureGrad (temp 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -113,7 +113,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of int) 0:39 'txval31' (temp 4-component vector of int) -0:39 textureGrad (global 4-component vector of int) +0:39 textureGrad (temp 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -132,7 +132,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of uint) 0:40 'txval32' (temp 4-component vector of uint) -0:40 textureGrad (global 4-component vector of uint) +0:40 textureGrad (temp 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -151,7 +151,7 @@ Shader version: 450 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:42 'txval40' (temp 4-component vector of float) -0:42 textureGrad (global 4-component vector of float) +0:42 textureGrad (temp 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -170,7 +170,7 @@ Shader version: 450 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of int) 0:43 'txval41' (temp 4-component vector of int) -0:43 textureGrad (global 4-component vector of int) +0:43 textureGrad (temp 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -189,7 +189,7 @@ Shader version: 450 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of uint) 0:44 'txval42' (temp 4-component vector of uint) -0:44 textureGrad (global 4-component vector of uint) +0:44 textureGrad (temp 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -215,8 +215,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:48 Pos: direct index for structure (temp 4-component vector of float) @@ -225,6 +225,7 @@ Shader version: 450 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -239,7 +240,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -247,13 +247,13 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of float) 0:30 'txval10' (temp 4-component vector of float) -0:30 textureGrad (global 4-component vector of float) +0:30 textureGrad (temp 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) 0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -266,7 +266,7 @@ Shader version: 450 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of int) 0:31 'txval11' (temp 4-component vector of int) -0:31 textureGrad (global 4-component vector of int) +0:31 textureGrad (temp 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -279,7 +279,7 @@ Shader version: 450 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of uint) 0:32 'txval12' (temp 4-component vector of uint) -0:32 textureGrad (global 4-component vector of uint) +0:32 textureGrad (temp 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -292,7 +292,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureGrad (global 4-component vector of float) +0:34 textureGrad (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -308,7 +308,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureGrad (global 4-component vector of int) +0:35 textureGrad (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -324,7 +324,7 @@ Shader version: 450 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureGrad (global 4-component vector of uint) +0:36 textureGrad (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -340,7 +340,7 @@ Shader version: 450 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:38 'txval30' (temp 4-component vector of float) -0:38 textureGrad (global 4-component vector of float) +0:38 textureGrad (temp 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -359,7 +359,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of int) 0:39 'txval31' (temp 4-component vector of int) -0:39 textureGrad (global 4-component vector of int) +0:39 textureGrad (temp 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -378,7 +378,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of uint) 0:40 'txval32' (temp 4-component vector of uint) -0:40 textureGrad (global 4-component vector of uint) +0:40 textureGrad (temp 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -397,7 +397,7 @@ Shader version: 450 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:42 'txval40' (temp 4-component vector of float) -0:42 textureGrad (global 4-component vector of float) +0:42 textureGrad (temp 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -416,7 +416,7 @@ Shader version: 450 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of int) 0:43 'txval41' (temp 4-component vector of int) -0:43 textureGrad (global 4-component vector of int) +0:43 textureGrad (temp 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -435,7 +435,7 @@ Shader version: 450 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of uint) 0:44 'txval42' (temp 4-component vector of uint) -0:44 textureGrad (global 4-component vector of uint) +0:44 textureGrad (temp 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -461,8 +461,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:48 Pos: direct index for structure (temp 4-component vector of float) @@ -471,6 +471,7 @@ Shader version: 450 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -485,7 +486,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out index ffe88328d32ecdb077a7550db5e13da85a6fdfc0..7938e527561ea0247f988afe2ca51949e2e775bd 100644 --- a/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offset.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplegrad.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureGradOffset (global 4-component vector of float) +0:31 textureGradOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -23,7 +23,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureGradOffset (global 4-component vector of int) +0:32 textureGradOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -38,7 +38,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureGradOffset (global 4-component vector of uint) +0:33 textureGradOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureGradOffset (global 4-component vector of float) +0:35 textureGradOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -72,7 +72,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureGradOffset (global 4-component vector of int) +0:36 textureGradOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -91,7 +91,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureGradOffset (global 4-component vector of uint) +0:37 textureGradOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -110,7 +110,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureGradOffset (global 4-component vector of float) +0:39 textureGradOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -133,7 +133,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureGradOffset (global 4-component vector of int) +0:40 textureGradOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -156,7 +156,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureGradOffset (global 4-component vector of uint) +0:41 textureGradOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -193,8 +193,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -209,6 +209,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -223,8 +225,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -233,13 +233,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureGradOffset (global 4-component vector of float) +0:31 textureGradOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -254,7 +254,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureGradOffset (global 4-component vector of int) +0:32 textureGradOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -269,7 +269,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureGradOffset (global 4-component vector of uint) +0:33 textureGradOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -284,7 +284,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureGradOffset (global 4-component vector of float) +0:35 textureGradOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -303,7 +303,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureGradOffset (global 4-component vector of int) +0:36 textureGradOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -322,7 +322,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureGradOffset (global 4-component vector of uint) +0:37 textureGradOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -341,7 +341,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureGradOffset (global 4-component vector of float) +0:39 textureGradOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -364,7 +364,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureGradOffset (global 4-component vector of int) +0:40 textureGradOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -387,7 +387,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureGradOffset (global 4-component vector of uint) +0:41 textureGradOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -424,8 +424,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -440,6 +440,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -454,8 +456,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out index 9e1417600fe3747fa4fd9f0ca0fd71fa45d82587..dee78bc48abe9d4df87dfa197038fde1ee1599e9 100644 --- a/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplegrad.offsetarray.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplegrad.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureGradOffset (global 4-component vector of float) +0:27 textureGradOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -24,7 +24,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureGradOffset (global 4-component vector of int) +0:28 textureGradOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -40,7 +40,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureGradOffset (global 4-component vector of uint) +0:29 textureGradOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -56,7 +56,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureGradOffset (global 4-component vector of float) +0:31 textureGradOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -76,7 +76,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureGradOffset (global 4-component vector of int) +0:32 textureGradOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -96,7 +96,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureGradOffset (global 4-component vector of uint) +0:33 textureGradOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -130,8 +130,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:? Sequence -0:? Sequence +0:38 Sequence +0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:38 Color: direct index for structure (temp 4-component vector of float) @@ -146,6 +146,8 @@ gl_FragCoord origin is upper left 0:38 1 (const int) 0:38 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -157,8 +159,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -167,13 +167,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureGradOffset (global 4-component vector of float) +0:27 textureGradOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -189,7 +189,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureGradOffset (global 4-component vector of int) +0:28 textureGradOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -205,7 +205,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureGradOffset (global 4-component vector of uint) +0:29 textureGradOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -221,7 +221,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureGradOffset (global 4-component vector of float) +0:31 textureGradOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -241,7 +241,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureGradOffset (global 4-component vector of int) +0:32 textureGradOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -261,7 +261,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureGradOffset (global 4-component vector of uint) +0:33 textureGradOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -295,8 +295,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Constant: 0:36 1.000000 -0:? Sequence -0:? Sequence +0:38 Sequence +0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:38 Color: direct index for structure (temp 4-component vector of float) @@ -311,6 +311,8 @@ gl_FragCoord origin is upper left 0:38 1 (const int) 0:38 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -322,8 +324,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCubeArray) 0:? 'g_tTexcdi4' (uniform itextureCubeArray) 0:? 'g_tTexcdu4' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out index 766f6acb9bffd7038d0f1d250904ba686a1cfef9..afdedb7dad11295d70bbac16bed07eeb57536f7f 100644 --- a/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.array.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplelevel.array.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureLod (global 4-component vector of float) +0:27 textureLod (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -20,7 +20,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureLod (global 4-component vector of int) +0:28 textureLod (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4a' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -32,7 +32,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureLod (global 4-component vector of uint) +0:29 textureLod (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4a' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -44,7 +44,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureLod (global 4-component vector of float) +0:31 textureLod (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4a' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -57,7 +57,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureLod (global 4-component vector of int) +0:32 textureLod (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4a' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -70,7 +70,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureLod (global 4-component vector of uint) +0:33 textureLod (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4a' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -83,7 +83,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureLod (global 4-component vector of float) +0:35 textureLod (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -97,7 +97,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureLod (global 4-component vector of int) +0:36 textureLod (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -111,7 +111,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureLod (global 4-component vector of uint) +0:37 textureLod (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -139,8 +139,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -155,6 +155,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -166,8 +168,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -176,13 +176,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:24 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:24 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:24 Function Parameters: 0:? Sequence 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval10' (temp 4-component vector of float) -0:27 textureLod (global 4-component vector of float) +0:27 textureLod (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler1DArray) 0:27 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval11' (temp 4-component vector of int) -0:28 textureLod (global 4-component vector of int) +0:28 textureLod (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler1DArray) 0:28 'g_tTex1di4a' (uniform itexture1DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -206,7 +206,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval12' (temp 4-component vector of uint) -0:29 textureLod (global 4-component vector of uint) +0:29 textureLod (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler1DArray) 0:29 'g_tTex1du4a' (uniform utexture1DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -218,7 +218,7 @@ gl_FragCoord origin is upper left 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval20' (temp 4-component vector of float) -0:31 textureLod (global 4-component vector of float) +0:31 textureLod (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler2DArray) 0:31 'g_tTex2df4a' (uniform texture2DArray) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -231,7 +231,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval21' (temp 4-component vector of int) -0:32 textureLod (global 4-component vector of int) +0:32 textureLod (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler2DArray) 0:32 'g_tTex2di4a' (uniform itexture2DArray) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval22' (temp 4-component vector of uint) -0:33 textureLod (global 4-component vector of uint) +0:33 textureLod (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler2DArray) 0:33 'g_tTex2du4a' (uniform utexture2DArray) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval40' (temp 4-component vector of float) -0:35 textureLod (global 4-component vector of float) +0:35 textureLod (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp samplerCubeArray) 0:35 'g_tTexcdf4a' (uniform textureCubeArray) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -271,7 +271,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval41' (temp 4-component vector of int) -0:36 textureLod (global 4-component vector of int) +0:36 textureLod (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isamplerCubeArray) 0:36 'g_tTexcdi4a' (uniform itextureCubeArray) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval42' (temp 4-component vector of uint) -0:37 textureLod (global 4-component vector of uint) +0:37 textureLod (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usamplerCubeArray) 0:37 'g_tTexcdu4a' (uniform utextureCubeArray) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -313,8 +313,8 @@ gl_FragCoord origin is upper left 0:40 1 (const int) 0:40 Constant: 0:40 1.000000 -0:? Sequence -0:? Sequence +0:42 Sequence +0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:42 Color: direct index for structure (temp 4-component vector of float) @@ -329,6 +329,8 @@ gl_FragCoord origin is upper left 0:42 1 (const int) 0:42 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -340,8 +342,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4a' (uniform textureCubeArray) 0:? 'g_tTexcdi4a' (uniform itextureCubeArray) 0:? 'g_tTexcdu4a' (uniform utextureCubeArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out index ee53339b0b509c9172d8b8f2e04e930fb5d8e794..34a659788348493c74ada69142429c247b5c289a 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplelevel.basic.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) 0:32 'txval10' (temp 4-component vector of float) -0:32 textureLod (global 4-component vector of float) +0:32 textureLod (temp 4-component vector of float) 0:32 Construct combined texture-sampler (temp sampler1D) 0:32 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -19,7 +19,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of int) 0:33 'txval11' (temp 4-component vector of int) -0:33 textureLod (global 4-component vector of int) +0:33 textureLod (temp 4-component vector of int) 0:33 Construct combined texture-sampler (temp isampler1D) 0:33 'g_tTex1di4' (uniform itexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -30,7 +30,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of uint) 0:34 'txval12' (temp 4-component vector of uint) -0:34 textureLod (global 4-component vector of uint) +0:34 textureLod (temp 4-component vector of uint) 0:34 Construct combined texture-sampler (temp usampler1D) 0:34 'g_tTex1du4' (uniform utexture1D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -41,7 +41,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:36 'txval20' (temp 4-component vector of float) -0:36 textureLod (global 4-component vector of float) +0:36 textureLod (temp 4-component vector of float) 0:36 Construct combined texture-sampler (temp sampler2D) 0:36 'g_tTex2df4' (uniform texture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -53,7 +53,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of int) 0:37 'txval21' (temp 4-component vector of int) -0:37 textureLod (global 4-component vector of int) +0:37 textureLod (temp 4-component vector of int) 0:37 Construct combined texture-sampler (temp isampler2D) 0:37 'g_tTex2di4' (uniform itexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -65,7 +65,7 @@ gl_FragCoord origin is upper left 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of uint) 0:38 'txval22' (temp 4-component vector of uint) -0:38 textureLod (global 4-component vector of uint) +0:38 textureLod (temp 4-component vector of uint) 0:38 Construct combined texture-sampler (temp usampler2D) 0:38 'g_tTex2du4' (uniform utexture2D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval30' (temp 4-component vector of float) -0:40 textureLod (global 4-component vector of float) +0:40 textureLod (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler3D) 0:40 'g_tTex3df4' (uniform texture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -90,7 +90,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval31' (temp 4-component vector of int) -0:41 textureLod (global 4-component vector of int) +0:41 textureLod (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler3D) 0:41 'g_tTex3di4' (uniform itexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -103,7 +103,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval32' (temp 4-component vector of uint) -0:42 textureLod (global 4-component vector of uint) +0:42 textureLod (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler3D) 0:42 'g_tTex3du4' (uniform utexture3D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -116,7 +116,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of float) 0:44 'txval40' (temp 4-component vector of float) -0:44 textureLod (global 4-component vector of float) +0:44 textureLod (temp 4-component vector of float) 0:44 Construct combined texture-sampler (temp samplerCube) 0:44 'g_tTexcdf4' (uniform textureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -129,7 +129,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of int) 0:45 'txval41' (temp 4-component vector of int) -0:45 textureLod (global 4-component vector of int) +0:45 textureLod (temp 4-component vector of int) 0:45 Construct combined texture-sampler (temp isamplerCube) 0:45 'g_tTexcdi4' (uniform itextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -142,7 +142,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of uint) 0:46 'txval42' (temp 4-component vector of uint) -0:46 textureLod (global 4-component vector of uint) +0:46 textureLod (temp 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usamplerCube) 0:46 'g_tTexcdu4' (uniform utextureCube) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -169,8 +169,8 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:? Sequence -0:? Sequence +0:51 Sequence +0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) @@ -185,6 +185,8 @@ gl_FragCoord origin is upper left 0:51 1 (const int) 0:51 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -200,8 +202,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -210,13 +210,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:29 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:29 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:29 Function Parameters: 0:? Sequence 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of float) 0:32 'txval10' (temp 4-component vector of float) -0:32 textureLod (global 4-component vector of float) +0:32 textureLod (temp 4-component vector of float) 0:32 Construct combined texture-sampler (temp sampler1D) 0:32 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -227,7 +227,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of int) 0:33 'txval11' (temp 4-component vector of int) -0:33 textureLod (global 4-component vector of int) +0:33 textureLod (temp 4-component vector of int) 0:33 Construct combined texture-sampler (temp isampler1D) 0:33 'g_tTex1di4' (uniform itexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -238,7 +238,7 @@ gl_FragCoord origin is upper left 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of uint) 0:34 'txval12' (temp 4-component vector of uint) -0:34 textureLod (global 4-component vector of uint) +0:34 textureLod (temp 4-component vector of uint) 0:34 Construct combined texture-sampler (temp usampler1D) 0:34 'g_tTex1du4' (uniform utexture1D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -249,7 +249,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:36 'txval20' (temp 4-component vector of float) -0:36 textureLod (global 4-component vector of float) +0:36 textureLod (temp 4-component vector of float) 0:36 Construct combined texture-sampler (temp sampler2D) 0:36 'g_tTex2df4' (uniform texture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -261,7 +261,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of int) 0:37 'txval21' (temp 4-component vector of int) -0:37 textureLod (global 4-component vector of int) +0:37 textureLod (temp 4-component vector of int) 0:37 Construct combined texture-sampler (temp isampler2D) 0:37 'g_tTex2di4' (uniform itexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -273,7 +273,7 @@ gl_FragCoord origin is upper left 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of uint) 0:38 'txval22' (temp 4-component vector of uint) -0:38 textureLod (global 4-component vector of uint) +0:38 textureLod (temp 4-component vector of uint) 0:38 Construct combined texture-sampler (temp usampler2D) 0:38 'g_tTex2du4' (uniform utexture2D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -285,7 +285,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of float) 0:40 'txval30' (temp 4-component vector of float) -0:40 textureLod (global 4-component vector of float) +0:40 textureLod (temp 4-component vector of float) 0:40 Construct combined texture-sampler (temp sampler3D) 0:40 'g_tTex3df4' (uniform texture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -298,7 +298,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of int) 0:41 'txval31' (temp 4-component vector of int) -0:41 textureLod (global 4-component vector of int) +0:41 textureLod (temp 4-component vector of int) 0:41 Construct combined texture-sampler (temp isampler3D) 0:41 'g_tTex3di4' (uniform itexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -311,7 +311,7 @@ gl_FragCoord origin is upper left 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of uint) 0:42 'txval32' (temp 4-component vector of uint) -0:42 textureLod (global 4-component vector of uint) +0:42 textureLod (temp 4-component vector of uint) 0:42 Construct combined texture-sampler (temp usampler3D) 0:42 'g_tTex3du4' (uniform utexture3D) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -324,7 +324,7 @@ gl_FragCoord origin is upper left 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of float) 0:44 'txval40' (temp 4-component vector of float) -0:44 textureLod (global 4-component vector of float) +0:44 textureLod (temp 4-component vector of float) 0:44 Construct combined texture-sampler (temp samplerCube) 0:44 'g_tTexcdf4' (uniform textureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -337,7 +337,7 @@ gl_FragCoord origin is upper left 0:45 Sequence 0:45 move second child to first child (temp 4-component vector of int) 0:45 'txval41' (temp 4-component vector of int) -0:45 textureLod (global 4-component vector of int) +0:45 textureLod (temp 4-component vector of int) 0:45 Construct combined texture-sampler (temp isamplerCube) 0:45 'g_tTexcdi4' (uniform itextureCube) 0:45 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -350,7 +350,7 @@ gl_FragCoord origin is upper left 0:46 Sequence 0:46 move second child to first child (temp 4-component vector of uint) 0:46 'txval42' (temp 4-component vector of uint) -0:46 textureLod (global 4-component vector of uint) +0:46 textureLod (temp 4-component vector of uint) 0:46 Construct combined texture-sampler (temp usamplerCube) 0:46 'g_tTexcdu4' (uniform utextureCube) 0:46 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -377,8 +377,8 @@ gl_FragCoord origin is upper left 0:49 1 (const int) 0:49 Constant: 0:49 1.000000 -0:? Sequence -0:? Sequence +0:51 Sequence +0:51 Sequence 0:51 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:51 Color: direct index for structure (temp 4-component vector of float) @@ -393,6 +393,8 @@ gl_FragCoord origin is upper left 0:51 1 (const int) 0:51 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_sSamp2d' (uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) @@ -408,8 +410,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out index 9af7a9fcd984fc238489bf27e524da9776134775..04d0870e27522447dd5b6e6b9e69b160ded4e534 100644 --- a/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out +++ b/Test/baseResults/hlsl.samplelevel.basic.dx10.vert.out @@ -1,13 +1,13 @@ hlsl.samplelevel.basic.dx10.vert Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of float) 0:30 'txval10' (temp 4-component vector of float) -0:30 textureLod (global 4-component vector of float) +0:30 textureLod (temp 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) 0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -18,7 +18,7 @@ Shader version: 450 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of int) 0:31 'txval11' (temp 4-component vector of int) -0:31 textureLod (global 4-component vector of int) +0:31 textureLod (temp 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -29,7 +29,7 @@ Shader version: 450 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of uint) 0:32 'txval12' (temp 4-component vector of uint) -0:32 textureLod (global 4-component vector of uint) +0:32 textureLod (temp 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -40,7 +40,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureLod (global 4-component vector of float) +0:34 textureLod (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -52,7 +52,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureLod (global 4-component vector of int) +0:35 textureLod (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -64,7 +64,7 @@ Shader version: 450 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureLod (global 4-component vector of uint) +0:36 textureLod (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -76,7 +76,7 @@ Shader version: 450 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:38 'txval30' (temp 4-component vector of float) -0:38 textureLod (global 4-component vector of float) +0:38 textureLod (temp 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -89,7 +89,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of int) 0:39 'txval31' (temp 4-component vector of int) -0:39 textureLod (global 4-component vector of int) +0:39 textureLod (temp 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -102,7 +102,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of uint) 0:40 'txval32' (temp 4-component vector of uint) -0:40 textureLod (global 4-component vector of uint) +0:40 textureLod (temp 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -115,7 +115,7 @@ Shader version: 450 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:42 'txval40' (temp 4-component vector of float) -0:42 textureLod (global 4-component vector of float) +0:42 textureLod (temp 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -128,7 +128,7 @@ Shader version: 450 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of int) 0:43 'txval41' (temp 4-component vector of int) -0:43 textureLod (global 4-component vector of int) +0:43 textureLod (temp 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -141,7 +141,7 @@ Shader version: 450 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of uint) 0:44 'txval42' (temp 4-component vector of uint) -0:44 textureLod (global 4-component vector of uint) +0:44 textureLod (temp 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -161,8 +161,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:48 Pos: direct index for structure (temp 4-component vector of float) @@ -171,6 +171,7 @@ Shader version: 450 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -185,7 +186,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) Linked vertex stage: @@ -193,13 +193,13 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:27 Function Definition: main( (global structure{temp 4-component vector of float Pos}) +0:27 Function Definition: main( (temp structure{temp 4-component vector of float Pos}) 0:27 Function Parameters: 0:? Sequence 0:30 Sequence 0:30 move second child to first child (temp 4-component vector of float) 0:30 'txval10' (temp 4-component vector of float) -0:30 textureLod (global 4-component vector of float) +0:30 textureLod (temp 4-component vector of float) 0:30 Construct combined texture-sampler (temp sampler1D) 0:30 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:30 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -210,7 +210,7 @@ Shader version: 450 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of int) 0:31 'txval11' (temp 4-component vector of int) -0:31 textureLod (global 4-component vector of int) +0:31 textureLod (temp 4-component vector of int) 0:31 Construct combined texture-sampler (temp isampler1D) 0:31 'g_tTex1di4' (uniform itexture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -221,7 +221,7 @@ Shader version: 450 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of uint) 0:32 'txval12' (temp 4-component vector of uint) -0:32 textureLod (global 4-component vector of uint) +0:32 textureLod (temp 4-component vector of uint) 0:32 Construct combined texture-sampler (temp usampler1D) 0:32 'g_tTex1du4' (uniform utexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -232,7 +232,7 @@ Shader version: 450 0:34 Sequence 0:34 move second child to first child (temp 4-component vector of float) 0:34 'txval20' (temp 4-component vector of float) -0:34 textureLod (global 4-component vector of float) +0:34 textureLod (temp 4-component vector of float) 0:34 Construct combined texture-sampler (temp sampler2D) 0:34 'g_tTex2df4' (uniform texture2D) 0:34 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -244,7 +244,7 @@ Shader version: 450 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of int) 0:35 'txval21' (temp 4-component vector of int) -0:35 textureLod (global 4-component vector of int) +0:35 textureLod (temp 4-component vector of int) 0:35 Construct combined texture-sampler (temp isampler2D) 0:35 'g_tTex2di4' (uniform itexture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -256,7 +256,7 @@ Shader version: 450 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of uint) 0:36 'txval22' (temp 4-component vector of uint) -0:36 textureLod (global 4-component vector of uint) +0:36 textureLod (temp 4-component vector of uint) 0:36 Construct combined texture-sampler (temp usampler2D) 0:36 'g_tTex2du4' (uniform utexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -268,7 +268,7 @@ Shader version: 450 0:38 Sequence 0:38 move second child to first child (temp 4-component vector of float) 0:38 'txval30' (temp 4-component vector of float) -0:38 textureLod (global 4-component vector of float) +0:38 textureLod (temp 4-component vector of float) 0:38 Construct combined texture-sampler (temp sampler3D) 0:38 'g_tTex3df4' (uniform texture3D) 0:38 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -281,7 +281,7 @@ Shader version: 450 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of int) 0:39 'txval31' (temp 4-component vector of int) -0:39 textureLod (global 4-component vector of int) +0:39 textureLod (temp 4-component vector of int) 0:39 Construct combined texture-sampler (temp isampler3D) 0:39 'g_tTex3di4' (uniform itexture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -294,7 +294,7 @@ Shader version: 450 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of uint) 0:40 'txval32' (temp 4-component vector of uint) -0:40 textureLod (global 4-component vector of uint) +0:40 textureLod (temp 4-component vector of uint) 0:40 Construct combined texture-sampler (temp usampler3D) 0:40 'g_tTex3du4' (uniform utexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -307,7 +307,7 @@ Shader version: 450 0:42 Sequence 0:42 move second child to first child (temp 4-component vector of float) 0:42 'txval40' (temp 4-component vector of float) -0:42 textureLod (global 4-component vector of float) +0:42 textureLod (temp 4-component vector of float) 0:42 Construct combined texture-sampler (temp samplerCube) 0:42 'g_tTexcdf4' (uniform textureCube) 0:42 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -320,7 +320,7 @@ Shader version: 450 0:43 Sequence 0:43 move second child to first child (temp 4-component vector of int) 0:43 'txval41' (temp 4-component vector of int) -0:43 textureLod (global 4-component vector of int) +0:43 textureLod (temp 4-component vector of int) 0:43 Construct combined texture-sampler (temp isamplerCube) 0:43 'g_tTexcdi4' (uniform itextureCube) 0:43 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -333,7 +333,7 @@ Shader version: 450 0:44 Sequence 0:44 move second child to first child (temp 4-component vector of uint) 0:44 'txval42' (temp 4-component vector of uint) -0:44 textureLod (global 4-component vector of uint) +0:44 textureLod (temp 4-component vector of uint) 0:44 Construct combined texture-sampler (temp usamplerCube) 0:44 'g_tTexcdu4' (uniform utextureCube) 0:44 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -353,8 +353,8 @@ Shader version: 450 0:? 0.000000 0:? 0.000000 0:? 0.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Pos' (out 4-component vector of float Position) 0:48 Pos: direct index for structure (temp 4-component vector of float) @@ -363,6 +363,7 @@ Shader version: 450 0:48 0 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Pos' (out 4-component vector of float Position) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -377,7 +378,6 @@ Shader version: 450 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Pos' (out 4-component vector of float Position) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out index d669a9991312b95e9dfe4dfa0bd344e47a11d382..aa77961067174508d37dbdab49b90dcb8b8b1afe 100644 --- a/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offset.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplelevel.offset.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureLodOffset (global 4-component vector of float) +0:31 textureLodOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -21,7 +21,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureLodOffset (global 4-component vector of int) +0:32 textureLodOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -34,7 +34,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureLodOffset (global 4-component vector of uint) +0:33 textureLodOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -47,7 +47,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureLodOffset (global 4-component vector of float) +0:35 textureLodOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -62,7 +62,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureLodOffset (global 4-component vector of int) +0:36 textureLodOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -77,7 +77,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureLodOffset (global 4-component vector of uint) +0:37 textureLodOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -92,7 +92,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureLodOffset (global 4-component vector of float) +0:39 textureLodOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -109,7 +109,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureLodOffset (global 4-component vector of int) +0:40 textureLodOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -126,7 +126,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureLodOffset (global 4-component vector of uint) +0:41 textureLodOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -157,8 +157,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -173,6 +173,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -187,8 +189,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -197,13 +197,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:28 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:28 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:28 Function Parameters: 0:? Sequence 0:31 Sequence 0:31 move second child to first child (temp 4-component vector of float) 0:31 'txval10' (temp 4-component vector of float) -0:31 textureLodOffset (global 4-component vector of float) +0:31 textureLodOffset (temp 4-component vector of float) 0:31 Construct combined texture-sampler (temp sampler1D) 0:31 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) 0:31 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -216,7 +216,7 @@ gl_FragCoord origin is upper left 0:32 Sequence 0:32 move second child to first child (temp 4-component vector of int) 0:32 'txval11' (temp 4-component vector of int) -0:32 textureLodOffset (global 4-component vector of int) +0:32 textureLodOffset (temp 4-component vector of int) 0:32 Construct combined texture-sampler (temp isampler1D) 0:32 'g_tTex1di4' (uniform itexture1D) 0:32 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -229,7 +229,7 @@ gl_FragCoord origin is upper left 0:33 Sequence 0:33 move second child to first child (temp 4-component vector of uint) 0:33 'txval12' (temp 4-component vector of uint) -0:33 textureLodOffset (global 4-component vector of uint) +0:33 textureLodOffset (temp 4-component vector of uint) 0:33 Construct combined texture-sampler (temp usampler1D) 0:33 'g_tTex1du4' (uniform utexture1D) 0:33 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -242,7 +242,7 @@ gl_FragCoord origin is upper left 0:35 Sequence 0:35 move second child to first child (temp 4-component vector of float) 0:35 'txval20' (temp 4-component vector of float) -0:35 textureLodOffset (global 4-component vector of float) +0:35 textureLodOffset (temp 4-component vector of float) 0:35 Construct combined texture-sampler (temp sampler2D) 0:35 'g_tTex2df4' (uniform texture2D) 0:35 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -257,7 +257,7 @@ gl_FragCoord origin is upper left 0:36 Sequence 0:36 move second child to first child (temp 4-component vector of int) 0:36 'txval21' (temp 4-component vector of int) -0:36 textureLodOffset (global 4-component vector of int) +0:36 textureLodOffset (temp 4-component vector of int) 0:36 Construct combined texture-sampler (temp isampler2D) 0:36 'g_tTex2di4' (uniform itexture2D) 0:36 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -272,7 +272,7 @@ gl_FragCoord origin is upper left 0:37 Sequence 0:37 move second child to first child (temp 4-component vector of uint) 0:37 'txval22' (temp 4-component vector of uint) -0:37 textureLodOffset (global 4-component vector of uint) +0:37 textureLodOffset (temp 4-component vector of uint) 0:37 Construct combined texture-sampler (temp usampler2D) 0:37 'g_tTex2du4' (uniform utexture2D) 0:37 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -287,7 +287,7 @@ gl_FragCoord origin is upper left 0:39 Sequence 0:39 move second child to first child (temp 4-component vector of float) 0:39 'txval30' (temp 4-component vector of float) -0:39 textureLodOffset (global 4-component vector of float) +0:39 textureLodOffset (temp 4-component vector of float) 0:39 Construct combined texture-sampler (temp sampler3D) 0:39 'g_tTex3df4' (uniform texture3D) 0:39 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -304,7 +304,7 @@ gl_FragCoord origin is upper left 0:40 Sequence 0:40 move second child to first child (temp 4-component vector of int) 0:40 'txval31' (temp 4-component vector of int) -0:40 textureLodOffset (global 4-component vector of int) +0:40 textureLodOffset (temp 4-component vector of int) 0:40 Construct combined texture-sampler (temp isampler3D) 0:40 'g_tTex3di4' (uniform itexture3D) 0:40 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -321,7 +321,7 @@ gl_FragCoord origin is upper left 0:41 Sequence 0:41 move second child to first child (temp 4-component vector of uint) 0:41 'txval32' (temp 4-component vector of uint) -0:41 textureLodOffset (global 4-component vector of uint) +0:41 textureLodOffset (temp 4-component vector of uint) 0:41 Construct combined texture-sampler (temp usampler3D) 0:41 'g_tTex3du4' (uniform utexture3D) 0:41 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -352,8 +352,8 @@ gl_FragCoord origin is upper left 0:46 1 (const int) 0:46 Constant: 0:46 1.000000 -0:? Sequence -0:? Sequence +0:48 Sequence +0:48 Sequence 0:48 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:48 Color: direct index for structure (temp 4-component vector of float) @@ -368,6 +368,8 @@ gl_FragCoord origin is upper left 0:48 1 (const int) 0:48 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1D) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) @@ -382,8 +384,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTexcdf4' (uniform textureCube) 0:? 'g_tTexcdi4' (uniform itextureCube) 0:? 'g_tTexcdu4' (uniform utextureCube) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out index fd2673b6a88bdfa8453de5df452f9a4181b5e905..056a4f13c8fe343c3313b31fb83e49d94f105dee 100644 --- a/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out +++ b/Test/baseResults/hlsl.samplelevel.offsetarray.dx10.frag.out @@ -2,13 +2,13 @@ hlsl.samplelevel.offsetarray.dx10.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureLodOffset (global 4-component vector of float) +0:23 textureLodOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -22,7 +22,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureLodOffset (global 4-component vector of int) +0:24 textureLodOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -36,7 +36,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureLodOffset (global 4-component vector of uint) +0:25 textureLodOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -50,7 +50,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureLodOffset (global 4-component vector of float) +0:27 textureLodOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -66,7 +66,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureLodOffset (global 4-component vector of int) +0:28 textureLodOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -82,7 +82,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureLodOffset (global 4-component vector of uint) +0:29 textureLodOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -112,8 +112,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -128,6 +128,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -136,8 +138,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) Linked fragment stage: @@ -146,13 +146,13 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:20 Function Definition: main( (global structure{temp 4-component vector of float Color, temp float Depth}) +0:20 Function Definition: main( (temp structure{temp 4-component vector of float Color, temp float Depth}) 0:20 Function Parameters: 0:? Sequence 0:23 Sequence 0:23 move second child to first child (temp 4-component vector of float) 0:23 'txval10' (temp 4-component vector of float) -0:23 textureLodOffset (global 4-component vector of float) +0:23 textureLodOffset (temp 4-component vector of float) 0:23 Construct combined texture-sampler (temp sampler1DArray) 0:23 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) 0:23 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -166,7 +166,7 @@ gl_FragCoord origin is upper left 0:24 Sequence 0:24 move second child to first child (temp 4-component vector of int) 0:24 'txval11' (temp 4-component vector of int) -0:24 textureLodOffset (global 4-component vector of int) +0:24 textureLodOffset (temp 4-component vector of int) 0:24 Construct combined texture-sampler (temp isampler1DArray) 0:24 'g_tTex1di4' (uniform itexture1DArray) 0:24 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -180,7 +180,7 @@ gl_FragCoord origin is upper left 0:25 Sequence 0:25 move second child to first child (temp 4-component vector of uint) 0:25 'txval12' (temp 4-component vector of uint) -0:25 textureLodOffset (global 4-component vector of uint) +0:25 textureLodOffset (temp 4-component vector of uint) 0:25 Construct combined texture-sampler (temp usampler1DArray) 0:25 'g_tTex1du4' (uniform utexture1DArray) 0:25 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -194,7 +194,7 @@ gl_FragCoord origin is upper left 0:27 Sequence 0:27 move second child to first child (temp 4-component vector of float) 0:27 'txval20' (temp 4-component vector of float) -0:27 textureLodOffset (global 4-component vector of float) +0:27 textureLodOffset (temp 4-component vector of float) 0:27 Construct combined texture-sampler (temp sampler2DArray) 0:27 'g_tTex2df4' (uniform texture2DArray) 0:27 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -210,7 +210,7 @@ gl_FragCoord origin is upper left 0:28 Sequence 0:28 move second child to first child (temp 4-component vector of int) 0:28 'txval21' (temp 4-component vector of int) -0:28 textureLodOffset (global 4-component vector of int) +0:28 textureLodOffset (temp 4-component vector of int) 0:28 Construct combined texture-sampler (temp isampler2DArray) 0:28 'g_tTex2di4' (uniform itexture2DArray) 0:28 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -226,7 +226,7 @@ gl_FragCoord origin is upper left 0:29 Sequence 0:29 move second child to first child (temp 4-component vector of uint) 0:29 'txval22' (temp 4-component vector of uint) -0:29 textureLodOffset (global 4-component vector of uint) +0:29 textureLodOffset (temp 4-component vector of uint) 0:29 Construct combined texture-sampler (temp usampler2DArray) 0:29 'g_tTex2du4' (uniform utexture2DArray) 0:29 'g_sSamp' (layout(binding=0 ) uniform sampler) @@ -256,8 +256,8 @@ gl_FragCoord origin is upper left 0:34 1 (const int) 0:34 Constant: 0:34 1.000000 -0:? Sequence -0:? Sequence +0:36 Sequence +0:36 Sequence 0:36 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:36 Color: direct index for structure (temp 4-component vector of float) @@ -272,6 +272,8 @@ gl_FragCoord origin is upper left 0:36 1 (const int) 0:36 Branch: Return 0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'Depth' (out float FragDepth) 0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) 0:? 'g_tTex1df4a' (layout(binding=1 ) uniform texture1DArray) 0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1DArray) @@ -280,8 +282,6 @@ gl_FragCoord origin is upper left 0:? 'g_tTex2df4' (uniform texture2DArray) 0:? 'g_tTex2di4' (uniform itexture2DArray) 0:? 'g_tTex2du4' (uniform utexture2DArray) -0:? 'Color' (layout(location=0 ) out 4-component vector of float) -0:? 'Depth' (out float FragDepth) // Module Version 10000 // Generated by (magic number): 80001 diff --git a/Test/baseResults/hlsl.scope.frag.out b/Test/baseResults/hlsl.scope.frag.out index 4218c4fb861883abfef0122438506228eed6cdd4..81c1a8442f5c04b51508eb0f8dd78eee3b5fdaa6 100755 --- a/Test/baseResults/hlsl.scope.frag.out +++ b/Test/baseResults/hlsl.scope.frag.out @@ -2,7 +2,7 @@ hlsl.scope.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global void) +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence @@ -47,7 +47,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global void) +0:2 Function Definition: PixelShaderFunction(vf4; (temp void) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence diff --git a/Test/baseResults/hlsl.semicolons.frag.out b/Test/baseResults/hlsl.semicolons.frag.out index a37991d8494c6a44f2f18ea54c0032d32345e230..a9f927687c6004dda6cc6ad2b20747bf907753ae 100644 --- a/Test/baseResults/hlsl.semicolons.frag.out +++ b/Test/baseResults/hlsl.semicolons.frag.out @@ -2,11 +2,11 @@ hlsl.semicolons.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: MyFunc( (global void) +0:2 Function Definition: MyFunc( (temp void) 0:2 Function Parameters: -0:8 Function Definition: MyFunc2( (global void) +0:8 Function Definition: MyFunc2( (temp void) 0:8 Function Parameters: -0:13 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:13 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) @@ -19,8 +19,8 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:? Sequence -0:? Sequence +0:17 Sequence +0:17 Sequence 0:17 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:17 color: direct index for structure (temp 4-component vector of float) @@ -38,11 +38,11 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: MyFunc( (global void) +0:2 Function Definition: MyFunc( (temp void) 0:2 Function Parameters: -0:8 Function Definition: MyFunc2( (global void) +0:8 Function Definition: MyFunc2( (temp void) 0:8 Function Parameters: -0:13 Function Definition: main( (global structure{temp 4-component vector of float color}) +0:13 Function Definition: main( (temp structure{temp 4-component vector of float color}) 0:13 Function Parameters: 0:? Sequence 0:16 move second child to first child (temp 4-component vector of float) @@ -55,8 +55,8 @@ gl_FragCoord origin is upper left 0:16 1.000000 0:16 1.000000 0:16 1.000000 -0:? Sequence -0:? Sequence +0:17 Sequence +0:17 Sequence 0:17 move second child to first child (temp 4-component vector of float) 0:? 'color' (layout(location=0 ) out 4-component vector of float) 0:17 color: direct index for structure (temp 4-component vector of float) diff --git a/Test/baseResults/hlsl.shapeConv.frag.out b/Test/baseResults/hlsl.shapeConv.frag.out index c7fdf8d02b6a73b4f2ce320d9a8f3dfb012408cf..a15caac5b3f11c510983efcdf3632ad08cbc5e16 100755 --- a/Test/baseResults/hlsl.shapeConv.frag.out +++ b/Test/baseResults/hlsl.shapeConv.frag.out @@ -2,7 +2,7 @@ hlsl.shapeConv.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;f1; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:2 'f' (in float) @@ -58,41 +58,43 @@ gl_FragCoord origin is upper left 0:13 'MyVal' (temp 3-component vector of float) 0:13 Construct vec3 (temp 3-component vector of float) 0:13 'V' (temp float) -0:16 Compare Greater Than (temp bool) +0:16 Compare Greater Than (temp 3-component vector of bool) 0:16 'foo' (temp 3-component vector of float) 0:16 Constant: 0:16 4.000000 0:16 4.000000 0:16 4.000000 -0:17 Compare Greater Than or Equal (temp bool) +0:17 Compare Greater Than or Equal (temp 3-component vector of bool) 0:17 'foo' (temp 3-component vector of float) 0:17 Constant: 0:17 5.000000 0:17 5.000000 0:17 5.000000 -0:18 Compare Less Than (temp bool) +0:18 Compare Less Than (temp 3-component vector of bool) 0:18 Constant: 0:18 6.000000 0:18 6.000000 0:18 6.000000 0:18 'foo' (temp 3-component vector of float) -0:19 Compare Less Than or Equal (temp bool) +0:19 Compare Less Than or Equal (temp 3-component vector of bool) 0:19 Constant: 0:19 7.000000 0:19 7.000000 0:19 7.000000 0:19 'foo' (temp 3-component vector of float) -0:21 Compare Equal (temp bool) -0:21 Construct vec4 (temp 4-component vector of float) -0:21 direct index (temp float) -0:21 'v' (temp 4-component vector of float) -0:21 Constant: -0:21 0 (const int) -0:21 'v' (temp 4-component vector of float) -0:22 Compare Not Equal (temp bool) -0:22 Construct vec4 (temp 4-component vector of float) -0:22 'f' (in float) -0:22 'v' (temp 4-component vector of float) +0:21 all (temp bool) +0:21 Equal (temp 4-component vector of bool) +0:21 Construct vec4 (temp 4-component vector of float) +0:21 direct index (temp float) +0:21 'v' (temp 4-component vector of float) +0:21 Constant: +0:21 0 (const int) +0:21 'v' (temp 4-component vector of float) +0:22 any (temp bool) +0:22 NotEqual (temp 4-component vector of bool) +0:22 Construct vec4 (temp 4-component vector of float) +0:22 'f' (in float) +0:22 'v' (temp 4-component vector of float) 0:26 Compare Equal (temp bool) 0:26 'f1' (temp 1-component vector of float) 0:26 Construct float (temp 1-component vector of float) @@ -113,11 +115,12 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;f1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;f1; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (in 4-component vector of float) 0:2 'f' (in float) @@ -173,41 +176,43 @@ gl_FragCoord origin is upper left 0:13 'MyVal' (temp 3-component vector of float) 0:13 Construct vec3 (temp 3-component vector of float) 0:13 'V' (temp float) -0:16 Compare Greater Than (temp bool) +0:16 Compare Greater Than (temp 3-component vector of bool) 0:16 'foo' (temp 3-component vector of float) 0:16 Constant: 0:16 4.000000 0:16 4.000000 0:16 4.000000 -0:17 Compare Greater Than or Equal (temp bool) +0:17 Compare Greater Than or Equal (temp 3-component vector of bool) 0:17 'foo' (temp 3-component vector of float) 0:17 Constant: 0:17 5.000000 0:17 5.000000 0:17 5.000000 -0:18 Compare Less Than (temp bool) +0:18 Compare Less Than (temp 3-component vector of bool) 0:18 Constant: 0:18 6.000000 0:18 6.000000 0:18 6.000000 0:18 'foo' (temp 3-component vector of float) -0:19 Compare Less Than or Equal (temp bool) +0:19 Compare Less Than or Equal (temp 3-component vector of bool) 0:19 Constant: 0:19 7.000000 0:19 7.000000 0:19 7.000000 0:19 'foo' (temp 3-component vector of float) -0:21 Compare Equal (temp bool) -0:21 Construct vec4 (temp 4-component vector of float) -0:21 direct index (temp float) -0:21 'v' (temp 4-component vector of float) -0:21 Constant: -0:21 0 (const int) -0:21 'v' (temp 4-component vector of float) -0:22 Compare Not Equal (temp bool) -0:22 Construct vec4 (temp 4-component vector of float) -0:22 'f' (in float) -0:22 'v' (temp 4-component vector of float) +0:21 all (temp bool) +0:21 Equal (temp 4-component vector of bool) +0:21 Construct vec4 (temp 4-component vector of float) +0:21 direct index (temp float) +0:21 'v' (temp 4-component vector of float) +0:21 Constant: +0:21 0 (const int) +0:21 'v' (temp 4-component vector of float) +0:22 any (temp bool) +0:22 NotEqual (temp 4-component vector of bool) +0:22 Construct vec4 (temp 4-component vector of float) +0:22 'f' (in float) +0:22 'v' (temp 4-component vector of float) 0:26 Compare Equal (temp bool) 0:26 'f1' (temp 1-component vector of float) 0:26 Construct float (temp 1-component vector of float) @@ -227,7 +232,7 @@ gl_FragCoord origin is upper left // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 84 +// Id's are bound by 85 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -244,7 +249,7 @@ gl_FragCoord origin is upper left Name 33 "V" Name 34 "MyVal" Name 37 "foo" - Name 69 "f1" + Name 70 "f1" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -266,17 +271,19 @@ gl_FragCoord origin is upper left 39: 6(float) Constant 1082130432 40: 22(fvec3) ConstantComposite 39 39 39 41: TypeBool - 44: 6(float) Constant 1084227584 - 45: 22(fvec3) ConstantComposite 44 44 44 - 47: 6(float) Constant 1086324736 - 48: 22(fvec3) ConstantComposite 47 47 47 - 51: 6(float) Constant 1088421888 - 52: 22(fvec3) ConstantComposite 51 51 51 - 55: TypeInt 32 0 - 56: 55(int) Constant 0 - 61: TypeVector 41(bool) 4 + 42: TypeVector 41(bool) 3 + 45: 6(float) Constant 1084227584 + 46: 22(fvec3) ConstantComposite 45 45 45 + 48: 6(float) Constant 1086324736 + 49: 22(fvec3) ConstantComposite 48 48 48 + 52: 6(float) Constant 1088421888 + 53: 22(fvec3) ConstantComposite 52 52 52 + 56: TypeInt 32 0 + 57: 56(int) Constant 0 + 62: TypeVector 41(bool) 4 4(main): 2 Function None 3 5: Label + Return FunctionEnd 13(PixelShaderFunction(vf4;f1;): 7(fvec4) Function None 10 11(input): 8(ptr) FunctionParameter @@ -288,7 +295,7 @@ gl_FragCoord origin is upper left 33(V): 9(ptr) Variable Function 34(MyVal): 23(ptr) Variable Function 37(foo): 23(ptr) Variable Function - 69(f1): 9(ptr) Variable Function + 70(f1): 9(ptr) Variable Function Store 15(v) 17 Store 15(v) 19 20: 6(float) Load 12(f) @@ -305,35 +312,35 @@ gl_FragCoord origin is upper left 36: 22(fvec3) CompositeConstruct 35 35 35 Store 34(MyVal) 36 38: 22(fvec3) Load 37(foo) - 42: 41(bool) FOrdGreaterThan 38 40 - 43: 22(fvec3) Load 37(foo) - 46: 41(bool) FOrdGreaterThanEqual 43 45 - 49: 22(fvec3) Load 37(foo) - 50: 41(bool) FOrdLessThan 48 49 - 53: 22(fvec3) Load 37(foo) - 54: 41(bool) FOrdLessThanEqual 52 53 - 57: 9(ptr) AccessChain 15(v) 56 - 58: 6(float) Load 57 - 59: 7(fvec4) CompositeConstruct 58 58 58 58 - 60: 7(fvec4) Load 15(v) - 62: 61(bvec4) FOrdEqual 59 60 - 63: 41(bool) All 62 - 64: 6(float) Load 12(f) - 65: 7(fvec4) CompositeConstruct 64 64 64 64 - 66: 7(fvec4) Load 15(v) - 67: 61(bvec4) FOrdNotEqual 65 66 - 68: 41(bool) Any 67 - 70: 6(float) Load 69(f1) - 71: 7(fvec4) Load 15(v) - 72: 6(float) CompositeExtract 71 0 - 73: 41(bool) FOrdEqual 70 72 - 74: 7(fvec4) Load 15(v) - 75: 6(float) CompositeExtract 74 0 - 76: 6(float) Load 69(f1) - 77: 41(bool) FOrdLessThan 75 76 - 78: 6(float) Load 69(f1) - 79: 6(float) Load 69(f1) - 80: 22(fvec3) CompositeConstruct 79 79 79 - 81: 7(fvec4) Load 11(input) - ReturnValue 81 + 43: 42(bvec3) FOrdGreaterThan 38 40 + 44: 22(fvec3) Load 37(foo) + 47: 42(bvec3) FOrdGreaterThanEqual 44 46 + 50: 22(fvec3) Load 37(foo) + 51: 42(bvec3) FOrdLessThan 49 50 + 54: 22(fvec3) Load 37(foo) + 55: 42(bvec3) FOrdLessThanEqual 53 54 + 58: 9(ptr) AccessChain 15(v) 57 + 59: 6(float) Load 58 + 60: 7(fvec4) CompositeConstruct 59 59 59 59 + 61: 7(fvec4) Load 15(v) + 63: 62(bvec4) FOrdEqual 60 61 + 64: 41(bool) All 63 + 65: 6(float) Load 12(f) + 66: 7(fvec4) CompositeConstruct 65 65 65 65 + 67: 7(fvec4) Load 15(v) + 68: 62(bvec4) FOrdNotEqual 66 67 + 69: 41(bool) Any 68 + 71: 6(float) Load 70(f1) + 72: 7(fvec4) Load 15(v) + 73: 6(float) CompositeExtract 72 0 + 74: 41(bool) FOrdEqual 71 73 + 75: 7(fvec4) Load 15(v) + 76: 6(float) CompositeExtract 75 0 + 77: 6(float) Load 70(f1) + 78: 41(bool) FOrdLessThan 76 77 + 79: 6(float) Load 70(f1) + 80: 6(float) Load 70(f1) + 81: 22(fvec3) CompositeConstruct 80 80 80 + 82: 7(fvec4) Load 11(input) + ReturnValue 82 FunctionEnd diff --git a/Test/baseResults/hlsl.shapeConvRet.frag.out b/Test/baseResults/hlsl.shapeConvRet.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..c21378703cbbf9c16858f0e430b35f04d6b87ef7 --- /dev/null +++ b/Test/baseResults/hlsl.shapeConvRet.frag.out @@ -0,0 +1,94 @@ +hlsl.shapeConvRet.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo( (temp 3-component vector of int) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 13 (const int) +0:3 13 (const int) +0:3 13 (const int) +0:7 Function Definition: main(f1; (temp 4-component vector of float) +0:7 Function Parameters: +0:7 'f' (layout(location=0 ) in float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:8 Construct vec4 (temp 4-component vector of float) +0:8 'f' (layout(location=0 ) in float) +0:8 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'f' (layout(location=0 ) in float) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:2 Function Definition: foo( (temp 3-component vector of int) +0:2 Function Parameters: +0:? Sequence +0:3 Branch: Return with expression +0:3 Constant: +0:3 13 (const int) +0:3 13 (const int) +0:3 13 (const int) +0:7 Function Definition: main(f1; (temp 4-component vector of float) +0:7 Function Parameters: +0:7 'f' (layout(location=0 ) in float) +0:? Sequence +0:8 Sequence +0:8 move second child to first child (temp 4-component vector of float) +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:8 Construct vec4 (temp 4-component vector of float) +0:8 'f' (layout(location=0 ) in float) +0:8 Branch: Return +0:? Linker Objects +0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) +0:? 'f' (layout(location=0 ) in float) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 24 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 18 20 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "foo(" + Name 18 "@entryPointOutput" + Name 20 "f" + Decorate 18(@entryPointOutput) Location 0 + Decorate 20(f) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 3 + 8: TypeFunction 7(ivec3) + 11: 6(int) Constant 13 + 12: 7(ivec3) ConstantComposite 11 11 11 + 15: TypeFloat 32 + 16: TypeVector 15(float) 4 + 17: TypePointer Output 16(fvec4) +18(@entryPointOutput): 17(ptr) Variable Output + 19: TypePointer Input 15(float) + 20(f): 19(ptr) Variable Input + 4(main): 2 Function None 3 + 5: Label + 21: 15(float) Load 20(f) + 22: 16(fvec4) CompositeConstruct 21 21 21 21 + Store 18(@entryPointOutput) 22 + Return + FunctionEnd + 9(foo(): 7(ivec3) Function None 8 + 10: Label + ReturnValue 12 + FunctionEnd diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out index e4940ae6008d9606825d5aad093465edaa93efd7..629668ac78ab188bd9ceb54dba032593d28ff0c5 100755 --- a/Test/baseResults/hlsl.sin.frag.out +++ b/Test/baseResults/hlsl.sin.frag.out @@ -2,14 +2,14 @@ hlsl.sin.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 sine (global 4-component vector of float) +0:3 sine (temp 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects @@ -23,14 +23,14 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence 0:3 Sequence 0:3 move second child to first child (temp 4-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) -0:3 sine (global 4-component vector of float) +0:3 sine (temp 4-component vector of float) 0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Branch: Return 0:? Linker Objects diff --git a/Test/baseResults/hlsl.string.frag.out b/Test/baseResults/hlsl.string.frag.out index 6016f52ee19c2f8b51c9bc1eb10e417eebb6d40d..3d80ce53542e4bda92f59aa41c69d29e6fd08f71 100755 --- a/Test/baseResults/hlsl.string.frag.out +++ b/Test/baseResults/hlsl.string.frag.out @@ -2,7 +2,7 @@ hlsl.string.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main(f1; (global float) +0:10 Function Definition: main(f1; (temp float) 0:10 Function Parameters: 0:10 'f' (layout(location=0 ) in float) 0:? Sequence @@ -22,7 +22,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:10 Function Definition: main(f1; (global float) +0:10 Function Definition: main(f1; (temp float) 0:10 Function Parameters: 0:10 'f' (layout(location=0 ) in float) 0:? Sequence diff --git a/Test/baseResults/hlsl.stringtoken.frag.out b/Test/baseResults/hlsl.stringtoken.frag.out index 42885bcf2469213d520db196efa2b1692e71b27c..94c1b2ad3455606213bd9b192076911f05b96a3e 100644 --- a/Test/baseResults/hlsl.stringtoken.frag.out +++ b/Test/baseResults/hlsl.stringtoken.frag.out @@ -2,7 +2,7 @@ hlsl.stringtoken.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:16 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:16 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) @@ -15,8 +15,8 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:? Sequence -0:? Sequence +0:19 Sequence +0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:19 Color: direct index for structure (temp 4-component vector of float) @@ -25,9 +25,9 @@ gl_FragCoord origin is upper left 0:19 0 (const int) 0:19 Branch: Return 0:? Linker Objects -0:? 'TestTexture' (uniform texture2D) -0:? 'TestUF' (uniform 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'TestTexture' (uniform texture2D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) Linked fragment stage: @@ -36,7 +36,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:16 Function Definition: main( (global structure{temp 4-component vector of float Color}) +0:16 Function Definition: main( (temp structure{temp 4-component vector of float Color}) 0:16 Function Parameters: 0:? Sequence 0:18 move second child to first child (temp 4-component vector of float) @@ -49,8 +49,8 @@ gl_FragCoord origin is upper left 0:? 0.000000 0:? 0.000000 0:? 1.000000 -0:? Sequence -0:? Sequence +0:19 Sequence +0:19 Sequence 0:19 move second child to first child (temp 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) 0:19 Color: direct index for structure (temp 4-component vector of float) @@ -59,13 +59,13 @@ gl_FragCoord origin is upper left 0:19 0 (const int) 0:19 Branch: Return 0:? Linker Objects -0:? 'TestTexture' (uniform texture2D) -0:? 'TestUF' (uniform 4-component vector of float) 0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'TestTexture' (uniform texture2D) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform 4-component vector of float TestUF}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 28 +// Id's are bound by 29 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -78,9 +78,14 @@ gl_FragCoord origin is upper left Name 10 "psout" Name 19 "Color" Name 25 "TestTexture" - Name 27 "TestUF" + Name 26 "$Global" + MemberName 26($Global) 0 "TestUF" + Name 28 "" Decorate 19(Color) Location 0 Decorate 25(TestTexture) DescriptorSet 0 + MemberDecorate 26($Global) 0 Offset 0 + Decorate 26($Global) Block + Decorate 28 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -98,8 +103,9 @@ gl_FragCoord origin is upper left 23: TypeImage 6(float) 2D sampled format:Unknown 24: TypePointer UniformConstant 23 25(TestTexture): 24(ptr) Variable UniformConstant - 26: TypePointer UniformConstant 7(fvec4) - 27(TestUF): 26(ptr) Variable UniformConstant + 26($Global): TypeStruct 7(fvec4) + 27: TypePointer Uniform 26($Global) + 28: 27(ptr) Variable Uniform 4(main): 2 Function None 3 5: Label 10(psout): 9(ptr) Variable Function diff --git a/Test/baseResults/hlsl.struct.frag.out b/Test/baseResults/hlsl.struct.frag.out index 3a4449533745e78eae4e3d0c511b6e9ceef50675..c14018ea232cc6d27c134b1cc20d29c67c5ebf63 100755 --- a/Test/baseResults/hlsl.struct.frag.out +++ b/Test/baseResults/hlsl.struct.frag.out @@ -6,7 +6,7 @@ WARNING: 0:30: 'register' : ignoring shader_profile Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) 0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) @@ -26,10 +26,6 @@ gl_FragCoord origin is upper left 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects -0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) -0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) -0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) @@ -40,6 +36,8 @@ gl_FragCoord origin is upper left 0:? 'ff2' (layout(location=5 offset=4 ) in bool) 0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) 0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:? 's2' (global structure{temp 4-component vector of float i}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) Linked fragment stage: @@ -48,7 +46,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (global 4-component vector of float) +0:34 Function Definition: PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; (temp 4-component vector of float) 0:34 Function Parameters: 0:34 'input' (layout(location=0 ) in 4-component vector of float) 0:34 's' (in structure{temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) @@ -68,10 +66,6 @@ gl_FragCoord origin is upper left 0:42 'input' (layout(location=0 ) in 4-component vector of float) 0:42 Branch: Return 0:? Linker Objects -0:? 's1' (global structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d}) -0:? 's2' (global structure{temp 4-component vector of float i}) -0:? 'ff5' (layout(binding=5 offset=20 ) global 3-component vector of float) -0:? 'ff6' (layout(binding=8 offset=36 ) global 3-component vector of float) 0:? '@entryPointOutput' (layout(location=0 ) out 4-component vector of float) 0:? 'input' (layout(location=0 ) in 4-component vector of float) 0:? 'a' (layout(location=1 ) smooth in 4-component vector of float) @@ -82,15 +76,17 @@ gl_FragCoord origin is upper left 0:? 'ff2' (layout(location=5 offset=4 ) in bool) 0:? 'ff3' (layout(location=6 binding=0 offset=4 ) in bool) 0:? 'ff4' (layout(location=7 binding=0 offset=4 ) in 4-component vector of float) +0:? 's2' (global structure{temp 4-component vector of float i}) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform structure{temp bool b, temp bool c, temp 4-component vector of float a, temp 4-component vector of float d} s1, layout(binding=5 offset=1620 ) uniform float ff5, layout(binding=8 offset=1636 ) uniform float ff6}) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 52 +// Id's are bound by 50 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 41 43 45 48 49 50 51 + EntryPoint Fragment 4 "PixelShaderFunction" 25 30 31 34 36 38 41 42 43 44 ExecutionMode 4 OriginUpperLeft Name 4 "PixelShaderFunction" Name 8 "FS" @@ -102,44 +98,51 @@ gl_FragCoord origin is upper left Name 25 "ff4" Name 30 "@entryPointOutput" Name 31 "input" - Name 34 "myS" - MemberName 34(myS) 0 "b" - MemberName 34(myS) 1 "c" - MemberName 34(myS) 2 "a" - MemberName 34(myS) 3 "d" - Name 36 "s1" - Name 39 "ff5" - Name 40 "ff6" - Name 41 "a" - Name 43 "b" - Name 45 "c" - Name 48 "d" - Name 49 "ff1" - Name 50 "ff2" - Name 51 "ff3" + Name 34 "a" + Name 36 "b" + Name 38 "c" + Name 41 "d" + Name 42 "ff1" + Name 43 "ff2" + Name 44 "ff3" + Name 46 "myS" + MemberName 46(myS) 0 "b" + MemberName 46(myS) 1 "c" + MemberName 46(myS) 2 "a" + MemberName 46(myS) 3 "d" + Name 47 "$Global" + MemberName 47($Global) 0 "s1" + MemberName 47($Global) 1 "ff5" + MemberName 47($Global) 2 "ff6" + Name 49 "" Decorate 25(ff4) Offset 4 Decorate 25(ff4) Location 7 Decorate 25(ff4) Binding 0 Decorate 30(@entryPointOutput) Location 0 Decorate 31(input) Location 0 - Decorate 39(ff5) Offset 20 - Decorate 39(ff5) Binding 5 - Decorate 40(ff6) Offset 36 - Decorate 40(ff6) Binding 8 - Decorate 41(a) Location 1 - Decorate 43(b) Flat - Decorate 43(b) Location 2 - Decorate 45(c) NoPerspective - Decorate 45(c) Centroid - Decorate 45(c) Location 3 - Decorate 48(d) Centroid - Decorate 48(d) Location 4 - Decorate 49(ff1) BuiltIn FrontFacing - Decorate 50(ff2) Offset 4 - Decorate 50(ff2) Location 5 - Decorate 51(ff3) Offset 4 - Decorate 51(ff3) Location 6 - Decorate 51(ff3) Binding 0 + Decorate 34(a) Location 1 + Decorate 36(b) Flat + Decorate 36(b) Location 2 + Decorate 38(c) NoPerspective + Decorate 38(c) Centroid + Decorate 38(c) Location 3 + Decorate 41(d) Centroid + Decorate 41(d) Location 4 + Decorate 42(ff1) BuiltIn FrontFacing + Decorate 43(ff2) Offset 4 + Decorate 43(ff2) Location 5 + Decorate 44(ff3) Offset 4 + Decorate 44(ff3) Location 6 + Decorate 44(ff3) Binding 0 + MemberDecorate 46(myS) 0 Offset 0 + MemberDecorate 46(myS) 1 Offset 4 + MemberDecorate 46(myS) 2 Offset 16 + MemberDecorate 46(myS) 3 Offset 32 + MemberDecorate 47($Global) 0 Offset 0 + MemberDecorate 47($Global) 1 Offset 1620 + MemberDecorate 47($Global) 2 Offset 1636 + Decorate 47($Global) Block + Decorate 49 DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeBool @@ -159,24 +162,22 @@ gl_FragCoord origin is upper left 29: TypePointer Output 18(fvec4) 30(@entryPointOutput): 29(ptr) Variable Output 31(input): 24(ptr) Variable Input - 34(myS): TypeStruct 6(bool) 6(bool) 18(fvec4) 18(fvec4) - 35: TypePointer Private 34(myS) - 36(s1): 35(ptr) Variable Private - 37: TypeVector 17(float) 3 - 38: TypePointer Private 37(fvec3) - 39(ff5): 38(ptr) Variable Private - 40(ff6): 38(ptr) Variable Private - 41(a): 24(ptr) Variable Input - 42: TypePointer Input 6(bool) - 43(b): 42(ptr) Variable Input - 44: TypePointer Input 17(float) - 45(c): 44(ptr) Variable Input - 46: TypeVector 17(float) 2 - 47: TypePointer Input 46(fvec2) - 48(d): 47(ptr) Variable Input - 49(ff1): 42(ptr) Variable Input - 50(ff2): 42(ptr) Variable Input - 51(ff3): 42(ptr) Variable Input + 34(a): 24(ptr) Variable Input + 35: TypePointer Input 6(bool) + 36(b): 35(ptr) Variable Input + 37: TypePointer Input 17(float) + 38(c): 37(ptr) Variable Input + 39: TypeVector 17(float) 2 + 40: TypePointer Input 39(fvec2) + 41(d): 40(ptr) Variable Input + 42(ff1): 35(ptr) Variable Input + 43(ff2): 35(ptr) Variable Input + 44(ff3): 35(ptr) Variable Input + 45: TypeInt 32 0 + 46(myS): TypeStruct 45(int) 45(int) 18(fvec4) 18(fvec4) + 47($Global): TypeStruct 46(myS) 17(float) 17(float) + 48: TypePointer Uniform 47($Global) + 49: 48(ptr) Variable Uniform 4(PixelShaderFunction): 2 Function None 3 5: Label 10(s3): 9(ptr) Variable Function diff --git a/Test/baseResults/hlsl.structarray.flatten.frag.out b/Test/baseResults/hlsl.structarray.flatten.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..6b22d6638a0c4f538d81abec63bebab38a5fd8fa --- /dev/null +++ b/Test/baseResults/hlsl.structarray.flatten.frag.out @@ -0,0 +1,197 @@ +hlsl.structarray.flatten.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:23 Function Parameters: +0:23 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:26 add (temp 4-component vector of float) +0:25 add (temp 4-component vector of float) +0:25 texture (temp 4-component vector of float) +0:25 Construct combined texture-sampler (temp sampler1D) +0:? 'tex' (uniform texture1D) +0:? 'samp' (uniform sampler) +0:25 Constant: +0:25 0.500000 +0:26 texture (temp 4-component vector of float) +0:26 Construct combined texture-sampler (temp sampler1D) +0:? 'g_texdata_array[1].tex' (uniform texture1D) +0:? 'g_texdata_array[1].samp' (uniform sampler) +0:26 Constant: +0:26 0.400000 +0:27 texture (temp 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1D) +0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:27 Constant: +0:27 0.300000 +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_samp' (uniform sampler) +0:? 'g_tex' (uniform texture1D) +0:? 'g_texdata_array2[0].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[0].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[0].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[0].tex[1]' (uniform texture1D) +0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[1].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[1].tex[1]' (uniform texture1D) +0:? 'g_texdata_array2[2].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[2].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[2].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[2].tex[1]' (uniform texture1D) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:23 Function Definition: main(struct-PS_OUTPUT-vf41; (temp void) +0:23 Function Parameters: +0:23 'ps_output' (out structure{temp 4-component vector of float color}) +0:? Sequence +0:24 move second child to first child (temp 4-component vector of float) +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:26 add (temp 4-component vector of float) +0:25 add (temp 4-component vector of float) +0:25 texture (temp 4-component vector of float) +0:25 Construct combined texture-sampler (temp sampler1D) +0:? 'tex' (uniform texture1D) +0:? 'samp' (uniform sampler) +0:25 Constant: +0:25 0.500000 +0:26 texture (temp 4-component vector of float) +0:26 Construct combined texture-sampler (temp sampler1D) +0:? 'g_texdata_array[1].tex' (uniform texture1D) +0:? 'g_texdata_array[1].samp' (uniform sampler) +0:26 Constant: +0:26 0.400000 +0:27 texture (temp 4-component vector of float) +0:27 Construct combined texture-sampler (temp sampler1D) +0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:27 Constant: +0:27 0.300000 +0:? Linker Objects +0:? 'color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_samp' (uniform sampler) +0:? 'g_tex' (uniform texture1D) +0:? 'g_texdata_array2[0].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[0].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[0].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[0].tex[1]' (uniform texture1D) +0:? 'g_texdata_array2[1].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[1].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[1].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[1].tex[1]' (uniform texture1D) +0:? 'g_texdata_array2[2].samp[0]' (uniform sampler) +0:? 'g_texdata_array2[2].samp[1]' (uniform sampler) +0:? 'g_texdata_array2[2].tex[0]' (uniform texture1D) +0:? 'g_texdata_array2[2].tex[1]' (uniform texture1D) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 50 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 9 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "color" + Name 12 "tex" + Name 16 "samp" + Name 22 "g_texdata_array[1].tex" + Name 24 "g_texdata_array[1].samp" + Name 30 "g_texdata_array2[1].tex[0]" + Name 32 "g_texdata_array2[1].samp[0]" + Name 38 "g_samp" + Name 39 "g_tex" + Name 40 "g_texdata_array2[0].samp[0]" + Name 41 "g_texdata_array2[0].samp[1]" + Name 42 "g_texdata_array2[0].tex[0]" + Name 43 "g_texdata_array2[0].tex[1]" + Name 44 "g_texdata_array2[1].samp[1]" + Name 45 "g_texdata_array2[1].tex[1]" + Name 46 "g_texdata_array2[2].samp[0]" + Name 47 "g_texdata_array2[2].samp[1]" + Name 48 "g_texdata_array2[2].tex[0]" + Name 49 "g_texdata_array2[2].tex[1]" + Decorate 9(color) Location 0 + Decorate 12(tex) DescriptorSet 0 + Decorate 16(samp) DescriptorSet 0 + Decorate 22(g_texdata_array[1].tex) DescriptorSet 0 + Decorate 24(g_texdata_array[1].samp) DescriptorSet 0 + Decorate 30(g_texdata_array2[1].tex[0]) DescriptorSet 0 + Decorate 32(g_texdata_array2[1].samp[0]) DescriptorSet 0 + Decorate 38(g_samp) DescriptorSet 0 + Decorate 39(g_tex) DescriptorSet 0 + Decorate 40(g_texdata_array2[0].samp[0]) DescriptorSet 0 + Decorate 41(g_texdata_array2[0].samp[1]) DescriptorSet 0 + Decorate 42(g_texdata_array2[0].tex[0]) DescriptorSet 0 + Decorate 43(g_texdata_array2[0].tex[1]) DescriptorSet 0 + Decorate 44(g_texdata_array2[1].samp[1]) DescriptorSet 0 + Decorate 45(g_texdata_array2[1].tex[1]) DescriptorSet 0 + Decorate 46(g_texdata_array2[2].samp[0]) DescriptorSet 0 + Decorate 47(g_texdata_array2[2].samp[1]) DescriptorSet 0 + Decorate 48(g_texdata_array2[2].tex[0]) DescriptorSet 0 + Decorate 49(g_texdata_array2[2].tex[1]) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(color): 8(ptr) Variable Output + 10: TypeImage 6(float) 1D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(tex): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(samp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: 6(float) Constant 1056964608 +22(g_texdata_array[1].tex): 11(ptr) Variable UniformConstant +24(g_texdata_array[1].samp): 15(ptr) Variable UniformConstant + 27: 6(float) Constant 1053609165 +30(g_texdata_array2[1].tex[0]): 11(ptr) Variable UniformConstant +32(g_texdata_array2[1].samp[0]): 15(ptr) Variable UniformConstant + 35: 6(float) Constant 1050253722 + 38(g_samp): 15(ptr) Variable UniformConstant + 39(g_tex): 11(ptr) Variable UniformConstant +40(g_texdata_array2[0].samp[0]): 15(ptr) Variable UniformConstant +41(g_texdata_array2[0].samp[1]): 15(ptr) Variable UniformConstant +42(g_texdata_array2[0].tex[0]): 11(ptr) Variable UniformConstant +43(g_texdata_array2[0].tex[1]): 11(ptr) Variable UniformConstant +44(g_texdata_array2[1].samp[1]): 15(ptr) Variable UniformConstant +45(g_texdata_array2[1].tex[1]): 11(ptr) Variable UniformConstant +46(g_texdata_array2[2].samp[0]): 15(ptr) Variable UniformConstant +47(g_texdata_array2[2].samp[1]): 15(ptr) Variable UniformConstant +48(g_texdata_array2[2].tex[0]): 11(ptr) Variable UniformConstant +49(g_texdata_array2[2].tex[1]): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 13: 10 Load 12(tex) + 17: 14 Load 16(samp) + 19: 18 SampledImage 13 17 + 21: 7(fvec4) ImageSampleImplicitLod 19 20 + 23: 10 Load 22(g_texdata_array[1].tex) + 25: 14 Load 24(g_texdata_array[1].samp) + 26: 18 SampledImage 23 25 + 28: 7(fvec4) ImageSampleImplicitLod 26 27 + 29: 7(fvec4) FAdd 21 28 + 31: 10 Load 30(g_texdata_array2[1].tex[0]) + 33: 14 Load 32(g_texdata_array2[1].samp[0]) + 34: 18 SampledImage 31 33 + 36: 7(fvec4) ImageSampleImplicitLod 34 35 + 37: 7(fvec4) FAdd 29 36 + Store 9(color) 37 + Return + FunctionEnd diff --git a/Test/baseResults/hlsl.structarray.flatten.geom.out b/Test/baseResults/hlsl.structarray.flatten.geom.out new file mode 100644 index 0000000000000000000000000000000000000000..0994af84f6aee2d4c47a55955d9abb6d45d86c5c --- /dev/null +++ b/Test/baseResults/hlsl.structarray.flatten.geom.out @@ -0,0 +1,100 @@ +hlsl.structarray.flatten.geom +ERROR: 0:10: 'vin' : recursive type not yet supported in GS input +ERROR: 1 compilation errors. No code generated. + + +Shader version: 450 +invocations = -1 +max_vertices = 4 +input primitive = lines +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void) +0:10 Function Parameters: +0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:13 color: direct index for structure (temp 4-component vector of float) +0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:13 Constant: +0:13 1 (const int) +0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) +0:14 move second child to first child (temp 2-component vector of float) +0:14 uv: direct index for structure (temp 2-component vector of float) +0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:14 Constant: +0:14 2 (const int) +0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) +0:15 move second child to first child (temp 4-component vector of float) +0:15 position: direct index for structure (temp 4-component vector of float) +0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:15 Constant: +0:15 0 (const int) +0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) +0:16 Sequence +0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 EmitVertex (temp void) +0:? Linker Objects +0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) +0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) +0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) +0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float) +0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float) +0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float) +0:? 'position' (layout(location=0 ) out 4-component vector of float) +0:? 'color' (layout(location=1 ) out 4-component vector of float) +0:? 'uv' (layout(location=2 ) out 2-component vector of float) + + +Linked geometry stage: + + +Shader version: 450 +invocations = 1 +max_vertices = 4 +input primitive = lines +output primitive = triangle_strip +ERROR: node is still EOpNull! +0:10 Function Definition: main(struct-VertexData-vf4-vf4-vf21[2];struct-VertexData-vf4-vf4-vf21; (temp void) +0:10 Function Parameters: +0:10 'vin' (in 2-element array of structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:10 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:? Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:13 color: direct index for structure (temp 4-component vector of float) +0:13 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:13 Constant: +0:13 1 (const int) +0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) +0:14 move second child to first child (temp 2-component vector of float) +0:14 uv: direct index for structure (temp 2-component vector of float) +0:14 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:14 Constant: +0:14 2 (const int) +0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) +0:15 move second child to first child (temp 4-component vector of float) +0:15 position: direct index for structure (temp 4-component vector of float) +0:15 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:15 Constant: +0:15 0 (const int) +0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) +0:16 Sequence +0:16 move second child to first child (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'outStream' (out structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 'vout' (temp structure{temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) +0:16 EmitVertex (temp void) +0:? Linker Objects +0:? 'vin[0].position' (layout(location=0 ) in 4-component vector of float) +0:? 'vin[0].color' (layout(location=1 ) in 4-component vector of float) +0:? 'vin[0].uv' (layout(location=2 ) in 2-component vector of float) +0:? 'vin[1].position' (layout(location=3 ) in 4-component vector of float) +0:? 'vin[1].color' (layout(location=4 ) in 4-component vector of float) +0:? 'vin[1].uv' (layout(location=5 ) in 2-component vector of float) +0:? 'position' (layout(location=0 ) out 4-component vector of float) +0:? 'color' (layout(location=1 ) out 4-component vector of float) +0:? 'uv' (layout(location=2 ) out 2-component vector of float) + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/hlsl.structin.vert.out b/Test/baseResults/hlsl.structin.vert.out index b27f210b130f461a5acf4ee35bd754ed76508f25..a5feea8aa9a31168fb008723f0105543b5df3633 100755 --- a/Test/baseResults/hlsl.structin.vert.out +++ b/Test/baseResults/hlsl.structin.vert.out @@ -1,7 +1,7 @@ hlsl.structin.vert Shader version: 450 0:? Sequence -0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Parameters: 0:8 'd' (layout(location=0 ) in 4-component vector of float) 0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) @@ -16,14 +16,8 @@ Shader version: 450 0:11 add (temp 4-component vector of float) 0:11 add (temp 4-component vector of float) 0:11 add (temp 4-component vector of float) -0:11 direct index (layout(location=1 ) temp 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 direct index (layout(location=1 ) temp 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) 0:11 Construct vec4 (temp 4-component vector of float) 0:11 Convert uint to float (temp float) 0:11 direct index (temp uint) @@ -32,14 +26,26 @@ Shader version: 450 0:11 0 (const int) 0:11 'd' (layout(location=0 ) in 4-component vector of float) 0:11 'e' (layout(location=5 ) in 4-component vector of float) -0:? Sequence -0:? Sequence -0:13 move second child to first child (temp 2-element array of 4-component vector of float) -0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) -0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Sequence +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:13 direct index (temp 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) 0:13 Constant: 0:13 0 (const int) +0:13 move second child to first child (temp 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:13 direct index (temp 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) 0:13 move second child to first child (temp 2-component vector of uint) 0:? 'coord' (layout(location=2 ) out 2-component vector of uint) 0:13 coord: direct index for structure (temp 2-component vector of uint) @@ -54,14 +60,20 @@ Shader version: 450 0:13 2 (const int) 0:13 Branch: Return 0:? Linker Objects -0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) 0:? 'coord' (layout(location=2 ) out 2-component vector of uint) 0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) 0:? 'd' (layout(location=0 ) in 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) 0:? 'coord' (layout(location=3 ) in 2-component vector of uint) 0:? 'b' (layout(location=4 ) in 4-component vector of float) 0:? 'e' (layout(location=5 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) Linked vertex stage: @@ -69,7 +81,7 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (global structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:8 Function Definition: main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; (temp structure Position{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) 0:8 Function Parameters: 0:8 'd' (layout(location=0 ) in 4-component vector of float) 0:8 'vi' (in structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) @@ -84,14 +96,8 @@ Shader version: 450 0:11 add (temp 4-component vector of float) 0:11 add (temp 4-component vector of float) 0:11 add (temp 4-component vector of float) -0:11 direct index (layout(location=1 ) temp 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) -0:11 Constant: -0:11 1 (const int) -0:11 direct index (layout(location=1 ) temp 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) -0:11 Constant: -0:11 0 (const int) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) 0:11 Construct vec4 (temp 4-component vector of float) 0:11 Convert uint to float (temp float) 0:11 direct index (temp uint) @@ -100,14 +106,26 @@ Shader version: 450 0:11 0 (const int) 0:11 'd' (layout(location=0 ) in 4-component vector of float) 0:11 'e' (layout(location=5 ) in 4-component vector of float) -0:? Sequence -0:? Sequence -0:13 move second child to first child (temp 2-element array of 4-component vector of float) -0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) -0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) -0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Sequence +0:13 Sequence +0:13 move second child to first child (temp 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:13 direct index (temp 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) 0:13 Constant: 0:13 0 (const int) +0:13 move second child to first child (temp 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:13 direct index (temp 4-component vector of float) +0:13 m: direct index for structure (temp 2-element array of 4-component vector of float) +0:13 'local' (temp structure{temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b}) +0:13 Constant: +0:13 0 (const int) +0:13 Constant: +0:13 1 (const int) 0:13 move second child to first child (temp 2-component vector of uint) 0:? 'coord' (layout(location=2 ) out 2-component vector of uint) 0:13 coord: direct index for structure (temp 2-component vector of uint) @@ -122,45 +140,55 @@ Shader version: 450 0:13 2 (const int) 0:13 Branch: Return 0:? Linker Objects -0:? 'm' (layout(location=0 ) out 2-element array of 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) 0:? 'coord' (layout(location=2 ) out 2-component vector of uint) 0:? 'b' (layout(location=3 ) smooth out 4-component vector of float) 0:? 'd' (layout(location=0 ) in 4-component vector of float) -0:? 'm' (layout(location=1 ) in 2-element array of 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) 0:? 'coord' (layout(location=3 ) in 2-component vector of uint) 0:? 'b' (layout(location=4 ) in 4-component vector of float) 0:? 'e' (layout(location=5 ) in 4-component vector of float) +0:? 'm[0]' (layout(location=0 ) out 4-component vector of float) +0:? 'm[1]' (layout(location=1 ) out 4-component vector of float) +0:? 'm[0]' (layout(location=1 ) in 4-component vector of float) +0:? 'm[1]' (layout(location=2 ) in 4-component vector of float) // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 60 +// Id's are bound by 59 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Vertex 4 "main" 18 28 36 39 45 50 55 59 + EntryPoint Vertex 4 "main" 18 20 24 32 35 41 45 50 54 58 Name 4 "main" Name 12 "VI" MemberName 12(VI) 0 "m" MemberName 12(VI) 1 "coord" MemberName 12(VI) 2 "b" Name 14 "local" - Name 18 "m" - Name 28 "coord" - Name 36 "d" - Name 39 "e" - Name 45 "m" + Name 18 "m[1]" + Name 20 "m[0]" + Name 24 "coord" + Name 32 "d" + Name 35 "e" + Name 41 "m[0]" + Name 45 "m[1]" Name 50 "coord" - Name 55 "b" - Name 59 "b" - Decorate 18(m) Location 1 - Decorate 28(coord) Location 3 - Decorate 36(d) Location 0 - Decorate 39(e) Location 5 - Decorate 45(m) Location 0 + Name 54 "b" + Name 58 "b" + Decorate 18(m[1]) Location 2 + Decorate 20(m[0]) Location 1 + Decorate 24(coord) Location 3 + Decorate 32(d) Location 0 + Decorate 35(e) Location 5 + Decorate 41(m[0]) Location 0 + Decorate 45(m[1]) Location 1 Decorate 50(coord) Location 2 - Decorate 55(b) Location 3 - Decorate 59(b) Location 4 + Decorate 54(b) Location 3 + Decorate 58(b) Location 4 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -173,54 +201,54 @@ Shader version: 450 13: TypePointer Function 12(VI) 15: TypeInt 32 1 16: 15(int) Constant 2 - 17: TypePointer Input 10 - 18(m): 17(ptr) Variable Input - 19: 15(int) Constant 1 - 20: TypePointer Input 7(fvec4) - 23: 15(int) Constant 0 - 27: TypePointer Input 11(ivec2) - 28(coord): 27(ptr) Variable Input - 29: 8(int) Constant 0 - 30: TypePointer Input 8(int) - 36(d): 20(ptr) Variable Input - 39(e): 20(ptr) Variable Input - 42: TypePointer Function 7(fvec4) - 44: TypePointer Output 10 - 45(m): 44(ptr) Variable Output - 46: TypePointer Function 10 + 17: TypePointer Input 7(fvec4) + 18(m[1]): 17(ptr) Variable Input + 20(m[0]): 17(ptr) Variable Input + 23: TypePointer Input 11(ivec2) + 24(coord): 23(ptr) Variable Input + 25: 8(int) Constant 0 + 26: TypePointer Input 8(int) + 32(d): 17(ptr) Variable Input + 35(e): 17(ptr) Variable Input + 38: TypePointer Function 7(fvec4) + 40: TypePointer Output 7(fvec4) + 41(m[0]): 40(ptr) Variable Output + 42: 15(int) Constant 0 + 45(m[1]): 40(ptr) Variable Output + 46: 15(int) Constant 1 49: TypePointer Output 11(ivec2) 50(coord): 49(ptr) Variable Output 51: TypePointer Function 11(ivec2) - 54: TypePointer Output 7(fvec4) - 55(b): 54(ptr) Variable Output - 59(b): 20(ptr) Variable Input + 54(b): 40(ptr) Variable Output + 58(b): 17(ptr) Variable Input 4(main): 2 Function None 3 5: Label 14(local): 13(ptr) Variable Function - 21: 20(ptr) AccessChain 18(m) 19 - 22: 7(fvec4) Load 21 - 24: 20(ptr) AccessChain 18(m) 23 - 25: 7(fvec4) Load 24 - 26: 7(fvec4) FAdd 22 25 - 31: 30(ptr) AccessChain 28(coord) 29 - 32: 8(int) Load 31 - 33: 6(float) ConvertUToF 32 - 34: 7(fvec4) CompositeConstruct 33 33 33 33 - 35: 7(fvec4) FAdd 26 34 - 37: 7(fvec4) Load 36(d) - 38: 7(fvec4) FAdd 35 37 - 40: 7(fvec4) Load 39(e) - 41: 7(fvec4) FAdd 38 40 - 43: 42(ptr) AccessChain 14(local) 16 - Store 43 41 - 47: 46(ptr) AccessChain 14(local) 23 - 48: 10 Load 47 - Store 45(m) 48 - 52: 51(ptr) AccessChain 14(local) 19 + 19: 7(fvec4) Load 18(m[1]) + 21: 7(fvec4) Load 20(m[0]) + 22: 7(fvec4) FAdd 19 21 + 27: 26(ptr) AccessChain 24(coord) 25 + 28: 8(int) Load 27 + 29: 6(float) ConvertUToF 28 + 30: 7(fvec4) CompositeConstruct 29 29 29 29 + 31: 7(fvec4) FAdd 22 30 + 33: 7(fvec4) Load 32(d) + 34: 7(fvec4) FAdd 31 33 + 36: 7(fvec4) Load 35(e) + 37: 7(fvec4) FAdd 34 36 + 39: 38(ptr) AccessChain 14(local) 16 + Store 39 37 + 43: 38(ptr) AccessChain 14(local) 42 42 + 44: 7(fvec4) Load 43 + Store 41(m[0]) 44 + 47: 38(ptr) AccessChain 14(local) 42 46 + 48: 7(fvec4) Load 47 + Store 45(m[1]) 48 + 52: 51(ptr) AccessChain 14(local) 46 53: 11(ivec2) Load 52 Store 50(coord) 53 - 56: 42(ptr) AccessChain 14(local) 16 - 57: 7(fvec4) Load 56 - Store 55(b) 57 + 55: 38(ptr) AccessChain 14(local) 16 + 56: 7(fvec4) Load 55 + Store 54(b) 56 Return FunctionEnd diff --git a/Test/baseResults/hlsl.switch.frag.out b/Test/baseResults/hlsl.switch.frag.out index abf777ab6d71ed24b19b4c0b6084e8f2fb1591d2..af516e2c92c0856cd18fa37a9a12258ed9a37aea 100755 --- a/Test/baseResults/hlsl.switch.frag.out +++ b/Test/baseResults/hlsl.switch.frag.out @@ -2,7 +2,7 @@ hlsl.switch.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:2 'c' (layout(location=1 ) in int) @@ -137,7 +137,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4;i1;i1; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) in 4-component vector of float) 0:2 'c' (layout(location=1 ) in int) diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out index 0bc4bd069b2aff841c27a7eaa7f7b59ee7660fc1..54fc662e0479d9884d23c577abeee671ab902c56 100755 --- a/Test/baseResults/hlsl.swizzle.frag.out +++ b/Test/baseResults/hlsl.swizzle.frag.out @@ -10,7 +10,7 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:4 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:4 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 @@ -38,6 +38,7 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left @@ -50,7 +51,7 @@ gl_FragCoord origin is upper left 0:? 0.500000 0:? 0.000000 0:? 1.000000 -0:4 Function Definition: ShaderFunction(vf4; (global 4-component vector of float) +0:4 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 @@ -106,6 +107,7 @@ gl_FragCoord origin is upper left 4(PixelShaderFunction): 2 Function None 3 5: Label Store 14(AmbientColor) 18 + Return FunctionEnd 11(ShaderFunction(vf4;): 7(fvec4) Function None 9 10(input): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out index f5260869e901dacbda81299815c2cf1f8aefcffe..c5c73ecb454c4b47b9d9da5ed29b0ebc1c435d89 100644 --- a/Test/baseResults/hlsl.templatetypes.frag.out +++ b/Test/baseResults/hlsl.templatetypes.frag.out @@ -2,7 +2,7 @@ hlsl.templatetypes.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: PixelShaderFunction( (global float) +0:3 Function Definition: PixelShaderFunction( (temp float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence @@ -255,7 +255,7 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:3 Function Definition: PixelShaderFunction( (global float) +0:3 Function Definition: PixelShaderFunction( (temp float) 0:3 Function Parameters: 0:? Sequence 0:4 Sequence diff --git a/Test/baseResults/hlsl.tx.bracket.frag.out b/Test/baseResults/hlsl.tx.bracket.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..d000257e16358500e2fe7ae1c4b462bbb049ff7d --- /dev/null +++ b/Test/baseResults/hlsl.tx.bracket.frag.out @@ -0,0 +1,702 @@ +hlsl.tx.bracket.frag +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' (in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' (in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' (in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' (in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' (in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' (in 4-component vector of float) +0:42 Function Definition: SomeValue( (temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:42 Branch: Return with expression +0:42 Convert int to float (temp 4-component vector of float) +0:42 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 3 (const uint) +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:49 textureFetch (temp 4-component vector of float) +0:49 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:49 c1: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 0 (const uint) +0:49 Constant: +0:49 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'r00' (temp 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) +0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:51 c1: direct index for structure (layout(offset=0 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'r01' (temp 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) +0:52 'g_tTex1di4' (uniform itexture1D) +0:52 c1: direct index for structure (layout(offset=0 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 0 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'r02' (temp 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) +0:53 'g_tTex1du4' (uniform utexture1D) +0:53 c1: direct index for structure (layout(offset=0 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:53 Constant: +0:53 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'r10' (temp 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) +0:56 'g_tTex2df4' (uniform texture2D) +0:56 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 1 (const uint) +0:56 Constant: +0:56 0 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'r11' (temp 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) +0:57 'g_tTex2di4' (uniform itexture2D) +0:57 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'r12' (temp 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) +0:58 'g_tTex2du4' (uniform utexture2D) +0:58 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 1 (const uint) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'r20' (temp 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) +0:61 'g_tTex3df4' (uniform texture3D) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'r21' (temp 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) +0:62 'g_tTex3di4' (uniform itexture3D) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 0 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'r22' (temp 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) +0:63 'g_tTex3du4' (uniform utexture3D) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 0 (const int) +0:66 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:66 textureFetch (temp 4-component vector of float) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:66 c1: direct index for structure (layout(offset=0 ) uniform int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 0 (const uint) +0:66 Constant: +0:66 0 (const int) +0:67 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:67 textureFetch (temp 4-component vector of int) +0:67 'g_tTex1di4' (uniform itexture1D) +0:67 c1: direct index for structure (layout(offset=0 ) uniform int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 0 (const uint) +0:67 Constant: +0:67 0 (const int) +0:68 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:68 textureFetch (temp 4-component vector of uint) +0:68 'g_tTex1du4' (uniform utexture1D) +0:68 c1: direct index for structure (layout(offset=0 ) uniform int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 0 (const uint) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child (temp 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color}) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:72 Sequence +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color}) +0:72 Constant: +0:72 0 (const int) +0:72 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + + +Linked fragment stage: + + +Shader version: 450 +gl_FragCoord origin is upper left +0:? Sequence +0:38 Function Definition: Fn1(vi4; (temp 4-component vector of int) +0:38 Function Parameters: +0:38 'x' (in 4-component vector of int) +0:? Sequence +0:38 Branch: Return with expression +0:38 'x' (in 4-component vector of int) +0:39 Function Definition: Fn1(vu4; (temp 4-component vector of uint) +0:39 Function Parameters: +0:39 'x' (in 4-component vector of uint) +0:? Sequence +0:39 Branch: Return with expression +0:39 'x' (in 4-component vector of uint) +0:40 Function Definition: Fn1(vf4; (temp 4-component vector of float) +0:40 Function Parameters: +0:40 'x' (in 4-component vector of float) +0:? Sequence +0:40 Branch: Return with expression +0:40 'x' (in 4-component vector of float) +0:42 Function Definition: SomeValue( (temp 4-component vector of float) +0:42 Function Parameters: +0:? Sequence +0:42 Branch: Return with expression +0:42 Convert int to float (temp 4-component vector of float) +0:42 c4: direct index for structure (layout(offset=32 ) uniform 4-component vector of int) +0:42 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:42 Constant: +0:42 3 (const uint) +0:45 Function Definition: main( (temp structure{temp 4-component vector of float Color}) +0:45 Function Parameters: +0:? Sequence +0:49 textureFetch (temp 4-component vector of float) +0:49 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:49 c1: direct index for structure (layout(offset=0 ) uniform int) +0:49 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:49 Constant: +0:49 0 (const uint) +0:49 Constant: +0:49 0 (const int) +0:51 Sequence +0:51 move second child to first child (temp 4-component vector of float) +0:51 'r00' (temp 4-component vector of float) +0:51 textureFetch (temp 4-component vector of float) +0:51 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:51 c1: direct index for structure (layout(offset=0 ) uniform int) +0:51 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:51 Constant: +0:51 0 (const uint) +0:51 Constant: +0:51 0 (const int) +0:52 Sequence +0:52 move second child to first child (temp 4-component vector of int) +0:52 'r01' (temp 4-component vector of int) +0:52 textureFetch (temp 4-component vector of int) +0:52 'g_tTex1di4' (uniform itexture1D) +0:52 c1: direct index for structure (layout(offset=0 ) uniform int) +0:52 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:52 Constant: +0:52 0 (const uint) +0:52 Constant: +0:52 0 (const int) +0:53 Sequence +0:53 move second child to first child (temp 4-component vector of uint) +0:53 'r02' (temp 4-component vector of uint) +0:53 textureFetch (temp 4-component vector of uint) +0:53 'g_tTex1du4' (uniform utexture1D) +0:53 c1: direct index for structure (layout(offset=0 ) uniform int) +0:53 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:53 Constant: +0:53 0 (const uint) +0:53 Constant: +0:53 0 (const int) +0:56 Sequence +0:56 move second child to first child (temp 4-component vector of float) +0:56 'r10' (temp 4-component vector of float) +0:56 textureFetch (temp 4-component vector of float) +0:56 'g_tTex2df4' (uniform texture2D) +0:56 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:56 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:56 Constant: +0:56 1 (const uint) +0:56 Constant: +0:56 0 (const int) +0:57 Sequence +0:57 move second child to first child (temp 4-component vector of int) +0:57 'r11' (temp 4-component vector of int) +0:57 textureFetch (temp 4-component vector of int) +0:57 'g_tTex2di4' (uniform itexture2D) +0:57 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:57 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:57 Constant: +0:57 1 (const uint) +0:57 Constant: +0:57 0 (const int) +0:58 Sequence +0:58 move second child to first child (temp 4-component vector of uint) +0:58 'r12' (temp 4-component vector of uint) +0:58 textureFetch (temp 4-component vector of uint) +0:58 'g_tTex2du4' (uniform utexture2D) +0:58 c2: direct index for structure (layout(offset=8 ) uniform 2-component vector of int) +0:58 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:58 Constant: +0:58 1 (const uint) +0:58 Constant: +0:58 0 (const int) +0:61 Sequence +0:61 move second child to first child (temp 4-component vector of float) +0:61 'r20' (temp 4-component vector of float) +0:61 textureFetch (temp 4-component vector of float) +0:61 'g_tTex3df4' (uniform texture3D) +0:61 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:61 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:61 Constant: +0:61 2 (const uint) +0:61 Constant: +0:61 0 (const int) +0:62 Sequence +0:62 move second child to first child (temp 4-component vector of int) +0:62 'r21' (temp 4-component vector of int) +0:62 textureFetch (temp 4-component vector of int) +0:62 'g_tTex3di4' (uniform itexture3D) +0:62 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:62 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:62 Constant: +0:62 2 (const uint) +0:62 Constant: +0:62 0 (const int) +0:63 Sequence +0:63 move second child to first child (temp 4-component vector of uint) +0:63 'r22' (temp 4-component vector of uint) +0:63 textureFetch (temp 4-component vector of uint) +0:63 'g_tTex3du4' (uniform utexture3D) +0:63 c3: direct index for structure (layout(offset=16 ) uniform 3-component vector of int) +0:63 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:63 Constant: +0:63 2 (const uint) +0:63 Constant: +0:63 0 (const int) +0:66 Function Call: Fn1(vf4; (temp 4-component vector of float) +0:66 textureFetch (temp 4-component vector of float) +0:66 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:66 c1: direct index for structure (layout(offset=0 ) uniform int) +0:66 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:66 Constant: +0:66 0 (const uint) +0:66 Constant: +0:66 0 (const int) +0:67 Function Call: Fn1(vi4; (temp 4-component vector of int) +0:67 textureFetch (temp 4-component vector of int) +0:67 'g_tTex1di4' (uniform itexture1D) +0:67 c1: direct index for structure (layout(offset=0 ) uniform int) +0:67 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:67 Constant: +0:67 0 (const uint) +0:67 Constant: +0:67 0 (const int) +0:68 Function Call: Fn1(vu4; (temp 4-component vector of uint) +0:68 textureFetch (temp 4-component vector of uint) +0:68 'g_tTex1du4' (uniform utexture1D) +0:68 c1: direct index for structure (layout(offset=0 ) uniform int) +0:68 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) +0:68 Constant: +0:68 0 (const uint) +0:68 Constant: +0:68 0 (const int) +0:70 move second child to first child (temp 4-component vector of float) +0:70 Color: direct index for structure (temp 4-component vector of float) +0:70 'psout' (temp structure{temp 4-component vector of float Color}) +0:70 Constant: +0:70 0 (const int) +0:70 Constant: +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:70 1.000000 +0:72 Sequence +0:72 Sequence +0:72 move second child to first child (temp 4-component vector of float) +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:72 Color: direct index for structure (temp 4-component vector of float) +0:72 'psout' (temp structure{temp 4-component vector of float Color}) +0:72 Constant: +0:72 0 (const int) +0:72 Branch: Return +0:? Linker Objects +0:? 'Color' (layout(location=0 ) out 4-component vector of float) +0:? 'g_sSamp' (layout(binding=0 ) uniform sampler) +0:? 'g_tTex1df4' (layout(binding=0 ) uniform texture1D) +0:? 'g_tTex1di4' (uniform itexture1D) +0:? 'g_tTex1du4' (uniform utexture1D) +0:? 'g_tTex2df4' (uniform texture2D) +0:? 'g_tTex2di4' (uniform itexture2D) +0:? 'g_tTex2du4' (uniform utexture2D) +0:? 'g_tTex3df4' (uniform texture3D) +0:? 'g_tTex3di4' (uniform itexture3D) +0:? 'g_tTex3du4' (uniform utexture3D) +0:? 'g_tTex1df4a' (uniform texture1DArray) +0:? 'g_tTex1di4a' (uniform itexture1DArray) +0:? 'g_tTex1du4a' (uniform utexture1DArray) +0:? 'g_tTex2df4a' (uniform texture2DArray) +0:? 'g_tTex2di4a' (uniform itexture2DArray) +0:? 'g_tTex2du4a' (uniform utexture2DArray) +0:? 'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform int c1, layout(offset=8 ) uniform 2-component vector of int c2, layout(offset=16 ) uniform 3-component vector of int c3, layout(offset=32 ) uniform 4-component vector of int c4, layout(offset=48 ) uniform int o1, layout(offset=56 ) uniform 2-component vector of int o2, layout(offset=64 ) uniform 3-component vector of int o3, layout(offset=80 ) uniform 4-component vector of int o4}) + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 183 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 158 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 11 "Fn1(vi4;" + Name 10 "x" + Name 18 "Fn1(vu4;" + Name 17 "x" + Name 25 "Fn1(vf4;" + Name 24 "x" + Name 28 "SomeValue(" + Name 41 "$Global" + MemberName 41($Global) 0 "c1" + MemberName 41($Global) 1 "c2" + MemberName 41($Global) 2 "c3" + MemberName 41($Global) 3 "c4" + MemberName 41($Global) 4 "o1" + MemberName 41($Global) 5 "o2" + MemberName 41($Global) 6 "o3" + MemberName 41($Global) 7 "o4" + Name 43 "" + Name 53 "g_tTex1df4" + Name 60 "r00" + Name 65 "r01" + Name 68 "g_tTex1di4" + Name 73 "r02" + Name 76 "g_tTex1du4" + Name 81 "r10" + Name 84 "g_tTex2df4" + Name 91 "r11" + Name 94 "g_tTex2di4" + Name 99 "r12" + Name 102 "g_tTex2du4" + Name 107 "r20" + Name 110 "g_tTex3df4" + Name 117 "r21" + Name 120 "g_tTex3di4" + Name 125 "r22" + Name 128 "g_tTex3du4" + Name 137 "param" + Name 143 "param" + Name 149 "param" + Name 151 "PS_OUTPUT" + MemberName 151(PS_OUTPUT) 0 "Color" + Name 153 "psout" + Name 158 "Color" + Name 164 "g_sSamp" + Name 167 "g_tTex1df4a" + Name 170 "g_tTex1di4a" + Name 173 "g_tTex1du4a" + Name 176 "g_tTex2df4a" + Name 179 "g_tTex2di4a" + Name 182 "g_tTex2du4a" + MemberDecorate 41($Global) 0 Offset 0 + MemberDecorate 41($Global) 1 Offset 8 + MemberDecorate 41($Global) 2 Offset 16 + MemberDecorate 41($Global) 3 Offset 32 + MemberDecorate 41($Global) 4 Offset 48 + MemberDecorate 41($Global) 5 Offset 56 + MemberDecorate 41($Global) 6 Offset 64 + MemberDecorate 41($Global) 7 Offset 80 + Decorate 41($Global) Block + Decorate 43 DescriptorSet 0 + Decorate 53(g_tTex1df4) DescriptorSet 0 + Decorate 53(g_tTex1df4) Binding 0 + Decorate 68(g_tTex1di4) DescriptorSet 0 + Decorate 76(g_tTex1du4) DescriptorSet 0 + Decorate 84(g_tTex2df4) DescriptorSet 0 + Decorate 94(g_tTex2di4) DescriptorSet 0 + Decorate 102(g_tTex2du4) DescriptorSet 0 + Decorate 110(g_tTex3df4) DescriptorSet 0 + Decorate 120(g_tTex3di4) DescriptorSet 0 + Decorate 128(g_tTex3du4) DescriptorSet 0 + Decorate 158(Color) Location 0 + Decorate 164(g_sSamp) DescriptorSet 0 + Decorate 164(g_sSamp) Binding 0 + Decorate 167(g_tTex1df4a) DescriptorSet 0 + Decorate 170(g_tTex1di4a) DescriptorSet 0 + Decorate 173(g_tTex1du4a) DescriptorSet 0 + Decorate 176(g_tTex2df4a) DescriptorSet 0 + Decorate 179(g_tTex2di4a) DescriptorSet 0 + Decorate 182(g_tTex2du4a) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7: TypeVector 6(int) 4 + 8: TypePointer Function 7(ivec4) + 9: TypeFunction 7(ivec4) 8(ptr) + 13: TypeInt 32 0 + 14: TypeVector 13(int) 4 + 15: TypePointer Function 14(ivec4) + 16: TypeFunction 14(ivec4) 15(ptr) + 20: TypeFloat 32 + 21: TypeVector 20(float) 4 + 22: TypePointer Function 21(fvec4) + 23: TypeFunction 21(fvec4) 22(ptr) + 27: TypeFunction 21(fvec4) + 39: TypeVector 6(int) 2 + 40: TypeVector 6(int) 3 + 41($Global): TypeStruct 6(int) 39(ivec2) 40(ivec3) 7(ivec4) 6(int) 39(ivec2) 40(ivec3) 7(ivec4) + 42: TypePointer Uniform 41($Global) + 43: 42(ptr) Variable Uniform + 44: 6(int) Constant 3 + 45: TypePointer Uniform 7(ivec4) + 51: TypeImage 20(float) 1D sampled format:Unknown + 52: TypePointer UniformConstant 51 + 53(g_tTex1df4): 52(ptr) Variable UniformConstant + 55: 6(int) Constant 0 + 56: TypePointer Uniform 6(int) + 66: TypeImage 6(int) 1D sampled format:Unknown + 67: TypePointer UniformConstant 66 + 68(g_tTex1di4): 67(ptr) Variable UniformConstant + 74: TypeImage 13(int) 1D sampled format:Unknown + 75: TypePointer UniformConstant 74 + 76(g_tTex1du4): 75(ptr) Variable UniformConstant + 82: TypeImage 20(float) 2D sampled format:Unknown + 83: TypePointer UniformConstant 82 + 84(g_tTex2df4): 83(ptr) Variable UniformConstant + 86: 6(int) Constant 1 + 87: TypePointer Uniform 39(ivec2) + 92: TypeImage 6(int) 2D sampled format:Unknown + 93: TypePointer UniformConstant 92 + 94(g_tTex2di4): 93(ptr) Variable UniformConstant + 100: TypeImage 13(int) 2D sampled format:Unknown + 101: TypePointer UniformConstant 100 + 102(g_tTex2du4): 101(ptr) Variable UniformConstant + 108: TypeImage 20(float) 3D sampled format:Unknown + 109: TypePointer UniformConstant 108 + 110(g_tTex3df4): 109(ptr) Variable UniformConstant + 112: 6(int) Constant 2 + 113: TypePointer Uniform 40(ivec3) + 118: TypeImage 6(int) 3D sampled format:Unknown + 119: TypePointer UniformConstant 118 + 120(g_tTex3di4): 119(ptr) Variable UniformConstant + 126: TypeImage 13(int) 3D sampled format:Unknown + 127: TypePointer UniformConstant 126 + 128(g_tTex3du4): 127(ptr) Variable UniformConstant + 151(PS_OUTPUT): TypeStruct 21(fvec4) + 152: TypePointer Function 151(PS_OUTPUT) + 154: 20(float) Constant 1065353216 + 155: 21(fvec4) ConstantComposite 154 154 154 154 + 157: TypePointer Output 21(fvec4) + 158(Color): 157(ptr) Variable Output + 162: TypeSampler + 163: TypePointer UniformConstant 162 + 164(g_sSamp): 163(ptr) Variable UniformConstant + 165: TypeImage 20(float) 1D array sampled format:Unknown + 166: TypePointer UniformConstant 165 +167(g_tTex1df4a): 166(ptr) Variable UniformConstant + 168: TypeImage 6(int) 1D array sampled format:Unknown + 169: TypePointer UniformConstant 168 +170(g_tTex1di4a): 169(ptr) Variable UniformConstant + 171: TypeImage 13(int) 1D array sampled format:Unknown + 172: TypePointer UniformConstant 171 +173(g_tTex1du4a): 172(ptr) Variable UniformConstant + 174: TypeImage 20(float) 2D array sampled format:Unknown + 175: TypePointer UniformConstant 174 +176(g_tTex2df4a): 175(ptr) Variable UniformConstant + 177: TypeImage 6(int) 2D array sampled format:Unknown + 178: TypePointer UniformConstant 177 +179(g_tTex2di4a): 178(ptr) Variable UniformConstant + 180: TypeImage 13(int) 2D array sampled format:Unknown + 181: TypePointer UniformConstant 180 +182(g_tTex2du4a): 181(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 60(r00): 22(ptr) Variable Function + 65(r01): 8(ptr) Variable Function + 73(r02): 15(ptr) Variable Function + 81(r10): 22(ptr) Variable Function + 91(r11): 8(ptr) Variable Function + 99(r12): 15(ptr) Variable Function + 107(r20): 22(ptr) Variable Function + 117(r21): 8(ptr) Variable Function + 125(r22): 15(ptr) Variable Function + 137(param): 22(ptr) Variable Function + 143(param): 8(ptr) Variable Function + 149(param): 15(ptr) Variable Function + 153(psout): 152(ptr) Variable Function + 54: 51 Load 53(g_tTex1df4) + 57: 56(ptr) AccessChain 43 55 + 58: 6(int) Load 57 + 59: 21(fvec4) ImageFetch 54 58 Lod 55 + 61: 51 Load 53(g_tTex1df4) + 62: 56(ptr) AccessChain 43 55 + 63: 6(int) Load 62 + 64: 21(fvec4) ImageFetch 61 63 Lod 55 + Store 60(r00) 64 + 69: 66 Load 68(g_tTex1di4) + 70: 56(ptr) AccessChain 43 55 + 71: 6(int) Load 70 + 72: 7(ivec4) ImageFetch 69 71 Lod 55 + Store 65(r01) 72 + 77: 74 Load 76(g_tTex1du4) + 78: 56(ptr) AccessChain 43 55 + 79: 6(int) Load 78 + 80: 14(ivec4) ImageFetch 77 79 Lod 55 + Store 73(r02) 80 + 85: 82 Load 84(g_tTex2df4) + 88: 87(ptr) AccessChain 43 86 + 89: 39(ivec2) Load 88 + 90: 21(fvec4) ImageFetch 85 89 Lod 55 + Store 81(r10) 90 + 95: 92 Load 94(g_tTex2di4) + 96: 87(ptr) AccessChain 43 86 + 97: 39(ivec2) Load 96 + 98: 7(ivec4) ImageFetch 95 97 Lod 55 + Store 91(r11) 98 + 103: 100 Load 102(g_tTex2du4) + 104: 87(ptr) AccessChain 43 86 + 105: 39(ivec2) Load 104 + 106: 14(ivec4) ImageFetch 103 105 Lod 55 + Store 99(r12) 106 + 111: 108 Load 110(g_tTex3df4) + 114: 113(ptr) AccessChain 43 112 + 115: 40(ivec3) Load 114 + 116: 21(fvec4) ImageFetch 111 115 Lod 55 + Store 107(r20) 116 + 121: 118 Load 120(g_tTex3di4) + 122: 113(ptr) AccessChain 43 112 + 123: 40(ivec3) Load 122 + 124: 7(ivec4) ImageFetch 121 123 Lod 55 + Store 117(r21) 124 + 129: 126 Load 128(g_tTex3du4) + 130: 113(ptr) AccessChain 43 112 + 131: 40(ivec3) Load 130 + 132: 14(ivec4) ImageFetch 129 131 Lod 55 + Store 125(r22) 132 + 133: 51 Load 53(g_tTex1df4) + 134: 56(ptr) AccessChain 43 55 + 135: 6(int) Load 134 + 136: 21(fvec4) ImageFetch 133 135 Lod 55 + Store 137(param) 136 + 138: 21(fvec4) FunctionCall 25(Fn1(vf4;) 137(param) + 139: 66 Load 68(g_tTex1di4) + 140: 56(ptr) AccessChain 43 55 + 141: 6(int) Load 140 + 142: 7(ivec4) ImageFetch 139 141 Lod 55 + Store 143(param) 142 + 144: 7(ivec4) FunctionCall 11(Fn1(vi4;) 143(param) + 145: 74 Load 76(g_tTex1du4) + 146: 56(ptr) AccessChain 43 55 + 147: 6(int) Load 146 + 148: 14(ivec4) ImageFetch 145 147 Lod 55 + Store 149(param) 148 + 150: 14(ivec4) FunctionCall 18(Fn1(vu4;) 149(param) + 156: 22(ptr) AccessChain 153(psout) 55 + Store 156 155 + 159: 22(ptr) AccessChain 153(psout) 55 + 160: 21(fvec4) Load 159 + Store 158(Color) 160 + Return + FunctionEnd + 11(Fn1(vi4;): 7(ivec4) Function None 9 + 10(x): 8(ptr) FunctionParameter + 12: Label + 30: 7(ivec4) Load 10(x) + ReturnValue 30 + FunctionEnd + 18(Fn1(vu4;): 14(ivec4) Function None 16 + 17(x): 15(ptr) FunctionParameter + 19: Label + 33: 14(ivec4) Load 17(x) + ReturnValue 33 + FunctionEnd + 25(Fn1(vf4;): 21(fvec4) Function None 23 + 24(x): 22(ptr) FunctionParameter + 26: Label + 36: 21(fvec4) Load 24(x) + ReturnValue 36 + FunctionEnd + 28(SomeValue(): 21(fvec4) Function None 27 + 29: Label + 46: 45(ptr) AccessChain 43 44 + 47: 7(ivec4) Load 46 + 48: 21(fvec4) ConvertSToF 47 + ReturnValue 48 + FunctionEnd diff --git a/Test/baseResults/hlsl.typedef.frag.out b/Test/baseResults/hlsl.typedef.frag.out index 0600873f509d9f7ff571ae7479d4b80f66acaebd..565f45fd5b86bbf0afc41d4a7c9bd3ddf958f3a5 100755 --- a/Test/baseResults/hlsl.typedef.frag.out +++ b/Test/baseResults/hlsl.typedef.frag.out @@ -2,7 +2,7 @@ hlsl.typedef.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4;i1; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:4 'ii' (in int) @@ -29,7 +29,7 @@ gl_FragCoord origin is upper left 0:10 component-wise multiply (temp 4-component vector of float) 0:10 'input' (in 4-component vector of float) 0:10 'a1' (temp 4-component vector of float) -0:10 Construct vec4 (global 4-component vector of float) +0:10 Construct vec4 (uniform 4-component vector of float) 0:10 Convert int to float (temp float) 0:10 add (temp int) 0:10 'i' (temp int) @@ -39,11 +39,12 @@ gl_FragCoord origin is upper left Linked fragment stage: +WARNING: Linking fragment stage: Entry point not found Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:4 Function Definition: ShaderFunction(vf4;i1; (global 4-component vector of float) +0:4 Function Definition: ShaderFunction(vf4;i1; (temp 4-component vector of float) 0:4 Function Parameters: 0:4 'input' (in 4-component vector of float) 0:4 'ii' (in int) @@ -70,7 +71,7 @@ gl_FragCoord origin is upper left 0:10 component-wise multiply (temp 4-component vector of float) 0:10 'input' (in 4-component vector of float) 0:10 'a1' (temp 4-component vector of float) -0:10 Construct vec4 (global 4-component vector of float) +0:10 Construct vec4 (uniform 4-component vector of float) 0:10 Convert int to float (temp float) 0:10 add (temp int) 0:10 'i' (temp int) @@ -106,6 +107,7 @@ gl_FragCoord origin is upper left 20: 9(int) Constant 2 4(PixelShaderFunction): 2 Function None 3 5: Label + Return FunctionEnd 14(ShaderFunction(vf4;i1;): 7(fvec4) Function None 11 12(input): 8(ptr) FunctionParameter diff --git a/Test/baseResults/hlsl.void.frag.out b/Test/baseResults/hlsl.void.frag.out index 3715166f22a198e54b5e676d4830b5d6db1784bc..6faa388a3a84cdcf483a59edf4dab2871d1f249a 100755 --- a/Test/baseResults/hlsl.void.frag.out +++ b/Test/baseResults/hlsl.void.frag.out @@ -2,16 +2,16 @@ hlsl.void.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Function Definition: foo1( (global void) +0:1 Function Definition: foo1( (temp void) 0:1 Function Parameters: -0:2 Function Definition: foo2( (global void) +0:2 Function Definition: foo2( (temp void) 0:2 Function Parameters: -0:5 Function Definition: PixelShaderFunction(vf4; (global void) +0:5 Function Definition: PixelShaderFunction(vf4; (temp void) 0:5 Function Parameters: 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:6 Function Call: foo1( (global void) -0:7 Function Call: foo2( (global void) +0:6 Function Call: foo1( (temp void) +0:7 Function Call: foo2( (temp void) 0:8 Branch: Return 0:? Linker Objects 0:? 'input' (layout(location=0 ) in 4-component vector of float) @@ -23,16 +23,16 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:1 Function Definition: foo1( (global void) +0:1 Function Definition: foo1( (temp void) 0:1 Function Parameters: -0:2 Function Definition: foo2( (global void) +0:2 Function Definition: foo2( (temp void) 0:2 Function Parameters: -0:5 Function Definition: PixelShaderFunction(vf4; (global void) +0:5 Function Definition: PixelShaderFunction(vf4; (temp void) 0:5 Function Parameters: 0:5 'input' (layout(location=0 ) in 4-component vector of float) 0:? Sequence -0:6 Function Call: foo1( (global void) -0:7 Function Call: foo2( (global void) +0:6 Function Call: foo1( (temp void) +0:7 Function Call: foo2( (temp void) 0:8 Branch: Return 0:? Linker Objects 0:? 'input' (layout(location=0 ) in 4-component vector of float) diff --git a/Test/baseResults/hlsl.whileLoop.frag.out b/Test/baseResults/hlsl.whileLoop.frag.out index 63e14dcc69369174608abd42fd2cfb9e4c953043..699364ff0dacb15797655d5df31067a848b0bdcc 100755 --- a/Test/baseResults/hlsl.whileLoop.frag.out +++ b/Test/baseResults/hlsl.whileLoop.frag.out @@ -2,15 +2,16 @@ hlsl.whileLoop.frag Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 any (temp bool) +0:3 NotEqual (temp 4-component vector of bool) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Loop Body 0:? Sequence 0:3 Sequence @@ -44,15 +45,16 @@ Linked fragment stage: Shader version: 450 gl_FragCoord origin is upper left 0:? Sequence -0:2 Function Definition: PixelShaderFunction(vf4; (global 4-component vector of float) +0:2 Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float) 0:2 Function Parameters: 0:2 'input' (layout(location=0 ) 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' (layout(location=0 ) in 4-component vector of float) -0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 any (temp bool) +0:3 NotEqual (temp 4-component vector of bool) +0:3 'input' (layout(location=0 ) in 4-component vector of float) +0:3 'input' (layout(location=0 ) in 4-component vector of float) 0:3 Loop Body 0:? Sequence 0:3 Sequence diff --git a/Test/baseResults/lineContinuation.vert.out b/Test/baseResults/lineContinuation.vert.out index 78e5c0722d7dd3a3ebe9ff888360f391abb737a9..d91ffa31ac1df15b8f97ec69bfb5cdf8a05a10aa 100644 --- a/Test/baseResults/lineContinuation.vert.out +++ b/Test/baseResults/lineContinuation.vert.out @@ -176,16 +176,6 @@ ERROR: node is still EOpNull! 0:20 'gl_Position' (gl_Position highp 4-component vector of float Position) 0:20 Construct vec4 (temp highp 4-component vector of float) 0:20 'foo' (global highp float) -0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float) -0:22 Function Parameters: -0:22 'a' (in highp 4-component vector of float) -0:24 Sequence -0:24 Sequence -0:24 move second child to first child (temp highp 4-component vector of float) -0:24 'b' (temp highp 4-component vector of float) -0:24 'a' (in highp 4-component vector of float) -0:25 Branch: Return with expression -0:25 'b' (temp highp 4-component vector of float) 0:47 Sequence 0:47 move second child to first child (temp highp int) 0:47 'q1' (global highp int) @@ -256,25 +246,6 @@ ERROR: node is still EOpNull! 0:123 'bar107' (global highp int) 0:128 Constant: 0:128 5 (const int) -0:131 Function Definition: foo203209409( (global void) -0:131 Function Parameters: -0:134 Sequence -0:134 add second child into first child (temp highp int) -0:133 'bar107' (global highp int) -0:134 Constant: -0:134 37 (const int) -0:135 multiply second child into first child (temp highp int) -0:135 'bar107' (global highp int) -0:136 Constant: -0:136 38 (const int) -0:137 divide second child into first child (temp highp int) -0:137 'bar107' (global highp int) -0:138 Constant: -0:138 39 (const int) -0:139 add (temp highp int) -0:139 'bar107' (global highp int) -0:140 Constant: -0:140 41 (const int) 0:? Linker Objects 0:? 'foo' (global highp float) 0:? 'goodDecl' (global highp int) diff --git a/Test/baseResults/lineContinuation100.vert.out b/Test/baseResults/lineContinuation100.vert.out index 003637d039fc0e6510a8ee369558513c92123a8b..1fb309b3c9beab9c29b7c207fb5f8bc7981819a1 100644 --- a/Test/baseResults/lineContinuation100.vert.out +++ b/Test/baseResults/lineContinuation100.vert.out @@ -90,16 +90,6 @@ ERROR: node is still EOpNull! 0:20 'gl_Position' (gl_Position highp 4-component vector of float Position) 0:20 Construct vec4 (temp highp 4-component vector of float) 0:20 'foo' (global highp float) -0:22 Function Definition: foo2(vf4; (global highp 4-component vector of float) -0:22 Function Parameters: -0:22 'a' (in highp 4-component vector of float) -0:24 Sequence -0:24 Sequence -0:24 move second child to first child (temp highp 4-component vector of float) -0:24 'b' (temp highp 4-component vector of float) -0:24 'a' (in highp 4-component vector of float) -0:25 Branch: Return with expression -0:25 'b' (temp highp 4-component vector of float) 0:45 Sequence 0:45 move second child to first child (temp highp int) 0:45 'q1' (global highp int) diff --git a/Test/baseResults/mains1.frag.out b/Test/baseResults/mains1.frag.out index 0b5c2b784d36fce366e1947222b7db9e74ac9df4..95e98e40ba94e1721bb1e7e5df1304c81b93f133 100644 --- a/Test/baseResults/mains1.frag.out +++ b/Test/baseResults/mains1.frag.out @@ -48,6 +48,7 @@ ERROR: Linking geometry stage: At least one shader must specify a layout(max_ver Linked fragment stage: +ERROR: Linking fragment stage: can't handle multiple entry points per stage ERROR: Linking fragment stage: Multiple function bodies in multiple compilation units for the same signature in the same stage: main( @@ -57,10 +58,6 @@ max_vertices = -1 input primitive = none output primitive = points ERROR: node is still EOpNull! -0:3 Function Definition: foo( (global void) -0:3 Function Parameters: -0:3 Function Definition: bar( (global void) -0:3 Function Parameters: 0:? Linker Objects Shader version: 110 0:? Sequence diff --git a/Test/baseResults/maxClipDistances.vert.out b/Test/baseResults/maxClipDistances.vert.out index 5d44a663176c5aa0bc16fe50b43ec13991ea3080..4ad4ef15b8bab61136164752ef094e8e1d7980db 100644 --- a/Test/baseResults/maxClipDistances.vert.out +++ b/Test/baseResults/maxClipDistances.vert.out @@ -5,7 +5,6 @@ Shader version: 130 0:5 Function Parameters: 0:? Linker Objects 0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance) -0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance) 0:? 'gl_VertexID' (gl_VertexId int VertexId) @@ -18,6 +17,5 @@ Shader version: 130 0:5 Function Parameters: 0:? Linker Objects 0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance) -0:? 'gl_ClipDistance' (smooth out 8-element array of float ClipDistance) 0:? 'gl_VertexID' (gl_VertexId int VertexId) diff --git a/Test/baseResults/missingBodies.vert.out b/Test/baseResults/missingBodies.vert.out new file mode 100755 index 0000000000000000000000000000000000000000..6d77e0933ef315d1db6e3cf619859da39c216d9f --- /dev/null +++ b/Test/baseResults/missingBodies.vert.out @@ -0,0 +1,98 @@ +missingBodies.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +Shader version: 450 +0:? Sequence +0:4 Function Definition: foo( (global void) +0:4 Function Parameters: +0:4 Sequence +0:4 Function Call: bar( (global void) +0:8 Function Definition: C(i1;i1; (global void) +0:8 Function Parameters: +0:8 '' (in int) +0:8 '' (in int) +0:10 Function Definition: A( (global void) +0:10 Function Parameters: +0:10 Sequence +0:10 Function Call: B( (global void) +0:10 Function Call: C(i1; (global void) +0:10 Constant: +0:10 1 (const int) +0:10 Function Call: C(b1; (global void) +0:10 Constant: +0:10 true (const bool) +0:10 Function Call: C(i1;i1; (global void) +0:10 Constant: +0:10 1 (const int) +0:10 Constant: +0:10 2 (const int) +0:12 Function Definition: main( (global void) +0:12 Function Parameters: +0:14 Sequence +0:14 Function Call: foo( (global void) +0:15 Function Call: C(b1; (global void) +0:15 Constant: +0:15 true (const bool) +0:20 Sequence +0:20 move second child to first child (temp int) +0:20 'f1' (global int) +0:20 Function Call: ret1( (global int) +0:22 Function Definition: ret2( (global int) +0:22 Function Parameters: +0:22 Sequence +0:22 Branch: Return with expression +0:22 Constant: +0:22 3 (const int) +0:24 Sequence +0:24 move second child to first child (temp int) +0:24 'f2' (global int) +0:24 Function Call: ret2( (global int) +0:? Linker Objects +0:? 'f1' (global int) +0:? 'f2' (global int) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: No function definition (body) found: + ret1( +ERROR: Linking vertex stage: No function definition (body) found: + C(b1; +ERROR: Linking vertex stage: No function definition (body) found: + bar( + +Shader version: 450 +0:? Sequence +0:4 Function Definition: foo( (global void) +0:4 Function Parameters: +0:4 Sequence +0:4 Function Call: bar( (global void) +0:12 Function Definition: main( (global void) +0:12 Function Parameters: +0:14 Sequence +0:14 Function Call: foo( (global void) +0:15 Function Call: C(b1; (global void) +0:15 Constant: +0:15 true (const bool) +0:20 Sequence +0:20 move second child to first child (temp int) +0:20 'f1' (global int) +0:20 Function Call: ret1( (global int) +0:22 Function Definition: ret2( (global int) +0:22 Function Parameters: +0:22 Sequence +0:22 Branch: Return with expression +0:22 Constant: +0:22 3 (const int) +0:24 Sequence +0:24 move second child to first child (temp int) +0:24 'f2' (global int) +0:24 Function Call: ret2( (global int) +0:? Linker Objects +0:? 'f1' (global int) +0:? 'f2' (global int) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + diff --git a/Test/baseResults/noMain.vert.out b/Test/baseResults/noMain.vert.out index 80a322552855cb8020d599725c1be2605fceaf99..60ac3a3a5bfe9fbf865edac154b9c0612c2a26fa 100644 --- a/Test/baseResults/noMain.vert.out +++ b/Test/baseResults/noMain.vert.out @@ -30,8 +30,6 @@ Linked fragment stage: Shader version: 300 0:? Sequence -0:3 Function Definition: foo( (global void) -0:3 Function Parameters: 0:? Linker Objects 0:? 'gl_VertexID' (gl_VertexId highp int VertexId) 0:? 'gl_InstanceID' (gl_InstanceId highp int InstanceId) diff --git a/Test/baseResults/precise.tesc.out b/Test/baseResults/precise.tesc.out index 962a3c98b7422f7fd128562073f950059c7ee870..17c7d53f705f60ef172b112faf4a002275077a30 100644 --- a/Test/baseResults/precise.tesc.out +++ b/Test/baseResults/precise.tesc.out @@ -392,376 +392,6 @@ Requested GL_EXT_shader_io_blocks Requested GL_EXT_tessellation_shader vertices = -1 0:? Sequence -0:5 Function Definition: minimal( (global float) -0:5 Function Parameters: -0:6 Sequence -0:6 Sequence -0:6 move second child to first child (temp float) -0:6 'result' (noContraction temp float) -0:6 Constant: -0:6 5.000000 -0:7 Sequence -0:7 move second child to first child (temp float) -0:7 'a' (noContraction temp float) -0:7 Constant: -0:7 10.000000 -0:8 Sequence -0:8 move second child to first child (temp float) -0:8 'b' (noContraction temp float) -0:8 Constant: -0:8 20.000000 -0:9 Sequence -0:9 move second child to first child (temp float) -0:9 'c' (noContraction temp float) -0:9 Constant: -0:9 30.000000 -0:10 Sequence -0:10 move second child to first child (temp float) -0:10 'd' (noContraction temp float) -0:10 Constant: -0:10 40.000000 -0:11 move second child to first child (temp float) -0:11 'result' (noContraction temp float) -0:11 add (noContraction temp float) -0:11 component-wise multiply (noContraction temp float) -0:11 'a' (noContraction temp float) -0:11 'b' (noContraction temp float) -0:11 component-wise multiply (noContraction temp float) -0:11 'c' (noContraction temp float) -0:11 'd' (noContraction temp float) -0:12 Branch: Return with expression -0:12 'result' (noContraction temp float) -0:15 Function Definition: continuous_assignment( (global void) -0:15 Function Parameters: -0:16 Sequence -0:16 Sequence -0:16 move second child to first child (temp float) -0:16 'result' (noContraction temp float) -0:16 Constant: -0:16 5.000000 -0:17 Sequence -0:17 move second child to first child (temp float) -0:17 'a' (noContraction temp float) -0:17 Constant: -0:17 10.000000 -0:18 Sequence -0:18 move second child to first child (temp float) -0:18 'b' (noContraction temp float) -0:18 Constant: -0:18 20.000000 -0:19 move second child to first child (temp float) -0:19 'result' (noContraction temp float) -0:19 move second child to first child (temp float) -0:19 'a' (noContraction temp float) -0:19 add (noContraction temp float) -0:19 'b' (noContraction temp float) -0:19 Constant: -0:19 4.000000 -0:22 Function Definition: convert( (global void) -0:22 Function Parameters: -0:? Sequence -0:24 Sequence -0:24 move second child to first child (temp float) -0:24 'a' (noContraction temp float) -0:24 Constant: -0:24 10.000000 -0:25 Sequence -0:25 move second child to first child (temp float) -0:25 'b' (noContraction temp float) -0:25 Constant: -0:25 20.000000 -0:26 move second child to first child (temp float) -0:26 'b' (noContraction temp float) -0:26 add (noContraction temp float) -0:26 'a' (noContraction temp float) -0:26 'b' (noContraction temp float) -0:27 move second child to first child (temp double) -0:27 'result' (noContraction temp double) -0:27 Convert float to double (temp double) -0:27 'b' (noContraction temp float) -0:30 Function Definition: loop_for( (global float) -0:30 Function Parameters: -0:31 Sequence -0:31 Sequence -0:31 move second child to first child (temp float) -0:31 'r1' (noContraction temp float) -0:31 Constant: -0:31 5.000000 -0:32 Sequence -0:32 move second child to first child (temp float) -0:32 'r2' (noContraction temp float) -0:32 Constant: -0:32 10.000000 -0:33 Sequence -0:33 move second child to first child (temp int) -0:33 'a' (temp int) -0:33 Constant: -0:33 10 (const int) -0:34 Sequence -0:34 move second child to first child (temp int) -0:34 'b' (noContraction temp int) -0:34 Constant: -0:34 20 (const int) -0:35 Sequence -0:35 move second child to first child (temp int) -0:35 'c' (noContraction temp int) -0:35 Constant: -0:35 30 (const int) -0:36 Sequence -0:36 Sequence -0:36 move second child to first child (temp int) -0:36 'i' (noContraction temp int) -0:36 Constant: -0:36 0 (const int) -0:36 Loop with condition tested first -0:36 Loop Condition -0:36 Compare Less Than (temp bool) -0:36 'i' (temp int) -0:36 'a' (temp int) -0:36 Loop Body -0:37 Sequence -0:37 add second child into first child (noContraction temp float) -0:37 'r1' (noContraction temp float) -0:37 add (noContraction temp float) -0:37 add (noContraction temp float) -0:37 Constant: -0:37 3.120000 -0:37 Convert int to float (temp float) -0:37 'b' (noContraction temp int) -0:37 Convert int to float (temp float) -0:37 'i' (noContraction temp int) -0:38 add second child into first child (noContraction temp int) -0:38 'c' (noContraction temp int) -0:38 Constant: -0:38 1 (const int) -0:36 Loop Terminal Expression -0:36 Post-Increment (noContraction temp int) -0:36 'i' (noContraction temp int) -0:40 add second child into first child (temp int) -0:40 'a' (temp int) -0:40 Constant: -0:40 1 (const int) -0:41 move second child to first child (temp float) -0:41 'r2' (noContraction temp float) -0:41 Convert int to float (temp float) -0:41 'c' (noContraction temp int) -0:42 Branch: Return with expression -0:42 Construct float (temp float) -0:42 add (temp float) -0:42 'r1' (noContraction temp float) -0:42 'r2' (noContraction temp float) -0:45 Function Definition: loop_array( (global void) -0:45 Function Parameters: -0:? Sequence -0:48 Sequence -0:48 move second child to first child (temp int) -0:48 'x' (noContraction temp int) -0:48 Constant: -0:48 22 (const int) -0:49 Sequence -0:49 move second child to first child (temp int) -0:49 'y' (noContraction temp int) -0:49 Constant: -0:49 33 (const int) -0:52 add second child into first child (noContraction temp float) -0:52 'result' (noContraction temp float) -0:52 add (noContraction temp float) -0:52 Convert int to float (temp float) -0:52 'x' (noContraction temp int) -0:52 Convert int to float (temp float) -0:52 'y' (noContraction temp int) -0:54 Sequence -0:54 Sequence -0:54 move second child to first child (temp int) -0:54 'i' (temp int) -0:54 Constant: -0:54 0 (const int) -0:54 Loop with condition tested first -0:54 Loop Condition -0:54 Compare Less Than (temp bool) -0:54 'i' (temp int) -0:54 Constant: -0:54 3 (const int) -0:54 Loop Body -0:56 Sequence -0:56 add second child into first child (noContraction temp float) -0:56 'result' (noContraction temp float) -0:56 add (noContraction temp float) -0:56 indirect index (noContraction temp float) -0:56 'a0' (temp 3-element array of float) -0:56 'i' (temp int) -0:56 Constant: -0:56 2.000000 -0:58 move second child to first child (temp float) -0:58 indirect index (noContraction temp float) -0:58 'a0' (noContraction temp 3-element array of float) -0:58 'i' (temp int) -0:58 subtract (noContraction temp float) -0:58 Constant: -0:58 3.000000 -0:58 Post-Increment (noContraction temp float) -0:58 'result' (noContraction temp float) -0:54 Loop Terminal Expression -0:54 Pre-Increment (temp int) -0:54 'i' (temp int) -0:62 Function Definition: loop_while( (global void) -0:62 Function Parameters: -0:63 Sequence -0:63 Sequence -0:63 move second child to first child (temp float) -0:63 'result' (noContraction temp float) -0:63 Constant: -0:63 5.000000 -0:64 Sequence -0:64 move second child to first child (temp int) -0:64 'a' (noContraction temp int) -0:64 Constant: -0:64 10 (const int) -0:65 Sequence -0:65 move second child to first child (temp int) -0:65 'b' (noContraction temp int) -0:65 Constant: -0:65 20 (const int) -0:66 Loop with condition tested first -0:66 Loop Condition -0:66 Compare Less Than (temp bool) -0:66 'result' (noContraction temp float) -0:66 Constant: -0:66 10.000000 -0:66 Loop Body -0:67 Sequence -0:67 add second child into first child (noContraction temp float) -0:67 'result' (noContraction temp float) -0:67 add (noContraction temp float) -0:67 Constant: -0:67 3.120000 -0:67 Convert int to float (temp float) -0:67 'b' (noContraction temp int) -0:69 move second child to first child (temp float) -0:69 'result' (noContraction temp float) -0:69 Convert int to float (temp float) -0:69 add (temp int) -0:69 add (temp int) -0:69 'a' (noContraction temp int) -0:69 'b' (noContraction temp int) -0:69 Constant: -0:69 5 (const int) -0:70 move second child to first child (temp float) -0:70 'result' (noContraction temp float) -0:70 Constant: -0:70 11.100000 -0:73 Function Definition: fma_not_decorated( (global float) -0:73 Function Parameters: -0:? Sequence -0:75 Sequence -0:75 move second child to first child (temp float) -0:75 'a' (noContraction temp float) -0:75 Constant: -0:75 1.000000 -0:76 Sequence -0:76 move second child to first child (temp float) -0:76 'b' (noContraction temp float) -0:76 Constant: -0:76 2.000000 -0:77 Sequence -0:77 move second child to first child (temp float) -0:77 'c' (noContraction temp float) -0:77 Constant: -0:77 3.000000 -0:78 move second child to first child (temp float) -0:78 'b' (noContraction temp float) -0:78 add (noContraction temp float) -0:78 'b' (noContraction temp float) -0:78 'c' (noContraction temp float) -0:79 move second child to first child (temp float) -0:79 'result' (noContraction temp float) -0:79 fma (global float) -0:79 'a' (noContraction temp float) -0:79 'b' (noContraction temp float) -0:79 'c' (noContraction temp float) -0:80 Branch: Return with expression -0:80 'result' (noContraction temp float) -0:83 Function Definition: precise_return_exp_func( (noContraction temp float) -0:83 Function Parameters: -0:84 Sequence -0:84 Sequence -0:84 move second child to first child (temp float) -0:84 'a' (noContraction temp float) -0:84 Constant: -0:84 1.000000 -0:85 Sequence -0:85 move second child to first child (temp float) -0:85 'b' (noContraction temp float) -0:85 Constant: -0:85 2.000000 -0:86 Branch: Return with expression -0:86 add (noContraction temp float) -0:86 'a' (noContraction temp float) -0:86 'b' (noContraction temp float) -0:89 Function Definition: precise_return_val_func( (noContraction temp float) -0:89 Function Parameters: -0:90 Sequence -0:90 Sequence -0:90 move second child to first child (temp float) -0:90 'a' (noContraction temp float) -0:90 Constant: -0:90 1.000000 -0:91 Sequence -0:91 move second child to first child (temp float) -0:91 'b' (noContraction temp float) -0:91 Constant: -0:91 2.000000 -0:92 Sequence -0:92 move second child to first child (temp float) -0:92 'result' (noContraction temp float) -0:92 add (noContraction temp float) -0:92 'a' (noContraction temp float) -0:92 'b' (noContraction temp float) -0:93 Branch: Return with expression -0:93 'result' (noContraction temp float) -0:96 Function Definition: precise_func_parameter(f1;f1; (global float) -0:96 Function Parameters: -0:96 'b' (in float) -0:96 'c' (noContraction out float) -0:97 Sequence -0:97 Sequence -0:97 move second child to first child (temp float) -0:97 'a' (noContraction temp float) -0:97 Constant: -0:97 0.500000 -0:98 move second child to first child (temp float) -0:98 'c' (noContraction out float) -0:98 add (noContraction temp float) -0:98 'a' (noContraction temp float) -0:98 'b' (noContraction in float) -0:99 Branch: Return with expression -0:99 subtract (temp float) -0:99 'a' (temp float) -0:99 'b' (in float) -0:102 Function Definition: matrix(mf23;mf32; (global 3X3 matrix of float) -0:102 Function Parameters: -0:102 'a' (in 2X3 matrix of float) -0:102 'b' (in 3X2 matrix of float) -0:103 Sequence -0:103 Sequence -0:103 move second child to first child (temp 2X3 matrix of float) -0:103 'c' (noContraction temp 2X3 matrix of float) -0:103 Constant: -0:103 1.000000 -0:103 2.000000 -0:103 3.000000 -0:103 4.000000 -0:103 5.000000 -0:103 6.000000 -0:105 move second child to first child (temp 3X3 matrix of float) -0:105 'result' (noContraction temp 3X3 matrix of float) -0:105 matrix-multiply (noContraction temp 3X3 matrix of float) -0:105 add (noContraction temp 2X3 matrix of float) -0:105 'a' (noContraction in 2X3 matrix of float) -0:105 'c' (noContraction temp 2X3 matrix of float) -0:105 'b' (noContraction in 3X2 matrix of float) -0:106 Branch: Return with expression -0:106 'result' (noContraction temp 3X3 matrix of float) 0:109 Function Definition: main( (global void) 0:109 Function Parameters: 0:? Linker Objects diff --git a/Test/baseResults/precise_struct_block.vert.out b/Test/baseResults/precise_struct_block.vert.out index 9d726d65af3b77693ae28b5ef29c87eb430ebe42..e40fd0cd602fb2c2798c639aecde60f56e2a66b8 100644 --- a/Test/baseResults/precise_struct_block.vert.out +++ b/Test/baseResults/precise_struct_block.vert.out @@ -526,515 +526,6 @@ Linked vertex stage: Shader version: 450 0:? Sequence -0:11 Function Definition: struct_member( (global float) -0:11 Function Parameters: -0:12 Sequence -0:12 Sequence -0:12 move second child to first child (temp float) -0:12 'a' (noContraction temp float) -0:12 Constant: -0:12 1.000000 -0:13 Sequence -0:13 move second child to first child (temp float) -0:13 'b' (temp float) -0:13 Constant: -0:13 2.000000 -0:14 Sequence -0:14 move second child to first child (temp float) -0:14 'c' (temp float) -0:14 Constant: -0:14 3.000000 -0:15 Sequence -0:15 move second child to first child (temp float) -0:15 'd' (temp float) -0:15 Constant: -0:15 4.000000 -0:21 move second child to first child (temp float) -0:21 f1: direct index for structure (noContraction global float) -0:21 'S2' (temp structure{global float f1, global float f2}) -0:21 Constant: -0:21 0 (const int) -0:21 add (noContraction temp float) -0:21 'a' (noContraction temp float) -0:21 Constant: -0:21 0.200000 -0:22 move second child to first child (temp float) -0:22 f2: direct index for structure (global float) -0:22 'S2' (temp structure{global float f1, global float f2}) -0:22 Constant: -0:22 1 (const int) -0:22 add (temp float) -0:22 'b' (temp float) -0:22 Constant: -0:22 0.200000 -0:23 move second child to first child (temp float) -0:23 f1: direct index for structure (global float) -0:23 'S3' (temp structure{global float f1, global float f2}) -0:23 Constant: -0:23 0 (const int) -0:23 add (temp float) -0:23 'a' (temp float) -0:23 'b' (temp float) -0:24 move second child to first child (temp structure{global float f1, global float f2}) -0:24 'S' (temp structure{global float f1, global float f2}) -0:24 'S2' (temp structure{global float f1, global float f2}) -0:25 move second child to first child (temp float) -0:25 'result' (noContraction temp float) -0:25 add (noContraction temp float) -0:25 f1: direct index for structure (noContraction global float) -0:25 'S' (temp structure{global float f1, global float f2}) -0:25 Constant: -0:25 0 (const int) -0:25 Constant: -0:25 0.100000 -0:27 Branch: Return with expression -0:27 'result' (noContraction temp float) -0:30 Function Definition: complex_array_struct( (global float) -0:30 Function Parameters: -0:? Sequence -0:43 Sequence -0:43 Sequence -0:43 move second child to first child (temp int) -0:43 'i' (noContraction temp int) -0:43 Constant: -0:43 0 (const int) -0:43 Loop with condition tested first -0:43 Loop Condition -0:43 Compare Less Than (temp bool) -0:43 'i' (temp int) -0:43 Constant: -0:43 10 (const int) -0:43 Loop Body -0:44 Sequence -0:44 move second child to first child (temp float) -0:44 f: direct index for structure (temp float) -0:44 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:44 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:44 'i' (temp int) -0:44 Constant: -0:44 0 (const int) -0:44 divide (temp float) -0:44 Convert int to float (temp float) -0:44 'i' (temp int) -0:44 Constant: -0:44 3.000000 -0:45 move second child to first child (temp 4-component vector of float) -0:45 v: direct index for structure (noContraction temp 4-component vector of float) -0:45 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:45 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:45 'i' (temp int) -0:45 Constant: -0:45 2 (const int) -0:45 Construct vec4 (temp 4-component vector of float) -0:45 component-wise multiply (noContraction temp float) -0:45 Convert int to float (temp float) -0:45 'i' (noContraction temp int) -0:45 Constant: -0:45 1.500000 -0:46 move second child to first child (temp int) -0:46 p: direct index for structure (temp int) -0:46 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:46 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:46 'i' (temp int) -0:46 Constant: -0:46 3 (const int) -0:46 add (temp int) -0:46 'i' (temp int) -0:46 Constant: -0:46 1 (const int) -0:47 Sequence -0:47 Sequence -0:47 move second child to first child (temp int) -0:47 'j' (temp int) -0:47 Constant: -0:47 0 (const int) -0:47 Loop with condition tested first -0:47 Loop Condition -0:47 Compare Less Than (temp bool) -0:47 'j' (temp int) -0:47 Constant: -0:47 5 (const int) -0:47 Loop Body -0:48 Sequence -0:48 Sequence -0:48 Sequence -0:48 move second child to first child (temp int) -0:48 'k' (temp int) -0:48 Constant: -0:48 0 (const int) -0:48 Loop with condition tested first -0:48 Loop Condition -0:48 Compare Less Than (temp bool) -0:48 'k' (temp int) -0:48 Constant: -0:48 3 (const int) -0:48 Loop Body -0:49 Sequence -0:49 move second child to first child (temp float) -0:49 indirect index (temp float) -0:49 t1_array: direct index for structure (temp 3-element array of float) -0:49 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:49 t1a: direct index for structure (temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:49 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c}) -0:49 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:49 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:49 'i' (temp int) -0:49 Constant: -0:49 1 (const int) -0:49 Constant: -0:49 0 (const int) -0:49 'j' (temp int) -0:49 Constant: -0:49 0 (const int) -0:49 'k' (temp int) -0:49 Convert int to float (temp float) -0:49 add (temp int) -0:49 component-wise multiply (temp int) -0:49 'i' (temp int) -0:49 'j' (temp int) -0:49 'k' (temp int) -0:48 Loop Terminal Expression -0:48 Post-Increment (temp int) -0:48 'k' (temp int) -0:51 move second child to first child (temp float) -0:51 t1_scalar: direct index for structure (temp float) -0:51 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:51 t1a: direct index for structure (temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:51 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c}) -0:51 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:51 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:51 'i' (temp int) -0:51 Constant: -0:51 1 (const int) -0:51 Constant: -0:51 0 (const int) -0:51 'j' (temp int) -0:51 Constant: -0:51 1 (const int) -0:51 divide (temp float) -0:51 component-wise multiply (temp float) -0:51 Convert int to float (temp float) -0:51 'j' (temp int) -0:51 Constant: -0:51 2.000000 -0:51 Convert int to float (temp float) -0:51 'i' (temp int) -0:47 Loop Terminal Expression -0:47 Post-Increment (temp int) -0:47 'j' (temp int) -0:54 Sequence -0:54 Sequence -0:54 move second child to first child (temp int) -0:54 'j' (noContraction temp int) -0:54 Constant: -0:54 0 (const int) -0:54 Loop with condition tested first -0:54 Loop Condition -0:54 Compare Less Than (temp bool) -0:54 'j' (temp int) -0:54 Constant: -0:54 6 (const int) -0:54 Loop Body -0:55 Sequence -0:55 Sequence -0:55 Sequence -0:55 move second child to first child (temp int) -0:55 'k' (temp int) -0:55 Constant: -0:55 0 (const int) -0:55 Loop with condition tested first -0:55 Loop Condition -0:55 Compare Less Than (temp bool) -0:55 'k' (temp int) -0:55 Constant: -0:55 3 (const int) -0:55 Loop Body -0:56 Sequence -0:56 move second child to first child (temp float) -0:56 indirect index (temp float) -0:56 t1_array: direct index for structure (temp 3-element array of float) -0:56 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:56 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:56 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c}) -0:56 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:56 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:56 'i' (temp int) -0:56 Constant: -0:56 1 (const int) -0:56 Constant: -0:56 1 (const int) -0:56 'j' (temp int) -0:56 Constant: -0:56 0 (const int) -0:56 'k' (temp int) -0:56 Convert int to float (temp float) -0:56 add (temp int) -0:56 component-wise multiply (temp int) -0:56 'i' (temp int) -0:56 'j' (temp int) -0:56 'k' (temp int) -0:55 Loop Terminal Expression -0:55 Post-Increment (temp int) -0:55 'k' (temp int) -0:58 move second child to first child (temp float) -0:58 t1_scalar: direct index for structure (noContraction temp float) -0:58 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:58 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:58 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c}) -0:58 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:58 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:58 'i' (temp int) -0:58 Constant: -0:58 1 (const int) -0:58 Constant: -0:58 1 (const int) -0:58 'j' (temp int) -0:58 Constant: -0:58 1 (const int) -0:58 divide (noContraction temp float) -0:58 component-wise multiply (noContraction temp float) -0:58 Convert int to float (temp float) -0:58 'j' (noContraction temp int) -0:58 Constant: -0:58 2.000000 -0:58 Convert int to float (temp float) -0:58 'i' (noContraction temp int) -0:54 Loop Terminal Expression -0:54 Post-Increment (noContraction temp int) -0:54 'j' (noContraction temp int) -0:61 Sequence -0:61 Sequence -0:61 move second child to first child (temp int) -0:61 'j' (noContraction temp int) -0:61 Constant: -0:61 0 (const int) -0:61 Loop with condition tested first -0:61 Loop Condition -0:61 Compare Less Than (temp bool) -0:61 'j' (temp int) -0:61 Constant: -0:61 6 (const int) -0:61 Loop Body -0:62 Sequence -0:62 Sequence -0:62 Sequence -0:62 move second child to first child (temp int) -0:62 'k' (noContraction temp int) -0:62 Constant: -0:62 0 (const int) -0:62 Loop with condition tested first -0:62 Loop Condition -0:62 Compare Less Than (temp bool) -0:62 'k' (temp int) -0:62 Constant: -0:62 3 (const int) -0:62 Loop Body -0:63 Sequence -0:63 move second child to first child (temp float) -0:63 indirect index (noContraction temp float) -0:63 t1_array: direct index for structure (noContraction temp 3-element array of float) -0:63 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:63 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:63 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c}) -0:63 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:63 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:63 'i' (temp int) -0:63 Constant: -0:63 1 (const int) -0:63 Constant: -0:63 2 (const int) -0:63 'j' (temp int) -0:63 Constant: -0:63 0 (const int) -0:63 'k' (temp int) -0:63 Convert int to float (temp float) -0:63 add (temp int) -0:63 component-wise multiply (temp int) -0:63 'i' (noContraction temp int) -0:63 'j' (noContraction temp int) -0:63 'k' (noContraction temp int) -0:62 Loop Terminal Expression -0:62 Post-Increment (noContraction temp int) -0:62 'k' (noContraction temp int) -0:65 move second child to first child (temp float) -0:65 t1_scalar: direct index for structure (temp float) -0:65 indirect index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:65 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:65 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c}) -0:65 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:65 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:65 'i' (temp int) -0:65 Constant: -0:65 1 (const int) -0:65 Constant: -0:65 2 (const int) -0:65 'j' (temp int) -0:65 Constant: -0:65 1 (const int) -0:65 divide (temp float) -0:65 component-wise multiply (temp float) -0:65 Convert int to float (temp float) -0:65 'j' (temp int) -0:65 Constant: -0:65 2.000000 -0:65 Convert int to float (temp float) -0:65 'i' (temp int) -0:61 Loop Terminal Expression -0:61 Post-Increment (noContraction temp int) -0:61 'j' (noContraction temp int) -0:43 Loop Terminal Expression -0:43 Post-Increment (noContraction temp int) -0:43 'i' (noContraction temp int) -0:68 Sequence -0:68 move second child to first child (temp int) -0:68 'i' (temp int) -0:68 Constant: -0:68 2 (const int) -0:69 move second child to first child (temp float) -0:69 'result' (noContraction temp float) -0:71 add (noContraction temp float) -0:70 add (noContraction temp float) -0:69 direct index (noContraction temp float) -0:69 t1_array: direct index for structure (temp 3-element array of float) -0:69 direct index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:69 t1c: direct index for structure (temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:69 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c}) -0:69 direct index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:69 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:69 Constant: -0:69 5 (const int) -0:69 Constant: -0:69 1 (const int) -0:69 Constant: -0:69 2 (const int) -0:69 Constant: -0:69 6 (const int) -0:69 Constant: -0:69 0 (const int) -0:69 Constant: -0:69 1 (const int) -0:70 t1_scalar: direct index for structure (noContraction temp float) -0:70 direct index (temp structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:70 t1b: direct index for structure (temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar}) -0:70 t2: direct index for structure (temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c}) -0:70 direct index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:70 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:70 Constant: -0:70 2 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 1 (const int) -0:70 Constant: -0:70 1 (const int) -0:71 direct index (noContraction temp float) -0:71 vector swizzle (temp 2-component vector of float) -0:71 v: direct index for structure (temp 4-component vector of float) -0:71 indirect index (temp structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:71 't3' (temp 10-element array of structure{temp float f, temp structure{temp 5-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1a, temp 6-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1b, temp 7-element array of structure{temp 3-element array of float t1_array, temp float t1_scalar} t1c} t2, temp 4-component vector of float v, temp int p}) -0:71 subtract (temp int) -0:71 'i' (temp int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 2 (const int) -0:71 Sequence -0:71 Constant: -0:71 0 (const int) -0:71 Constant: -0:71 1 (const int) -0:71 Constant: -0:71 0 (const int) -0:72 Branch: Return with expression -0:72 'result' (noContraction temp float) -0:75 Function Definition: out_block( (global float) -0:75 Function Parameters: -0:76 Sequence -0:76 Sequence -0:76 move second child to first child (temp float) -0:76 'a' (noContraction temp float) -0:76 Constant: -0:76 0.100000 -0:77 Sequence -0:77 move second child to first child (temp float) -0:77 'b' (noContraction temp float) -0:77 Constant: -0:77 0.200000 -0:78 move second child to first child (temp float) -0:78 f1: direct index for structure (noContraction global float) -0:78 s: direct index for structure (noContraction out structure{global float f1, global float f2}) -0:78 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x}) -0:78 Constant: -0:78 0 (const int) -0:78 Constant: -0:78 0 (const int) -0:78 add (noContraction temp float) -0:78 'a' (noContraction temp float) -0:78 'b' (noContraction temp float) -0:79 move second child to first child (temp float) -0:79 f2: direct index for structure (noContraction global float) -0:79 s: direct index for structure (noContraction out structure{global float f1, global float f2}) -0:79 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x}) -0:79 Constant: -0:79 0 (const int) -0:79 Constant: -0:79 1 (const int) -0:79 subtract (noContraction temp float) -0:79 'a' (noContraction temp float) -0:79 'b' (noContraction temp float) -0:80 move second child to first child (temp float) -0:80 x: direct index for structure (out float) -0:80 'partial_precise_block' (out block{noContraction out structure{global float f1, global float f2} s, out float x}) -0:80 Constant: -0:80 1 (const int) -0:80 component-wise multiply (temp float) -0:80 'a' (temp float) -0:80 'b' (temp float) -0:82 move second child to first child (temp float) -0:82 f1: direct index for structure (noContraction global float) -0:82 s: direct index for structure (noContraction out structure{global float f1, global float f2}) -0:82 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x}) -0:82 Constant: -0:82 0 (const int) -0:82 Constant: -0:82 0 (const int) -0:82 add (noContraction temp float) -0:82 add (noContraction temp float) -0:82 'a' (noContraction temp float) -0:82 'b' (noContraction temp float) -0:82 Constant: -0:82 1.000000 -0:83 move second child to first child (temp float) -0:83 f2: direct index for structure (noContraction global float) -0:83 s: direct index for structure (noContraction out structure{global float f1, global float f2}) -0:83 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x}) -0:83 Constant: -0:83 0 (const int) -0:83 Constant: -0:83 1 (const int) -0:83 subtract (noContraction temp float) -0:83 subtract (noContraction temp float) -0:83 'a' (noContraction temp float) -0:83 'b' (noContraction temp float) -0:83 Constant: -0:83 1.000000 -0:84 move second child to first child (temp float) -0:84 x: direct index for structure (noContraction out float) -0:84 'all_precise_block' (noContraction out block{out structure{global float f1, global float f2} s, out float x}) -0:84 Constant: -0:84 1 (const int) -0:84 component-wise multiply (noContraction temp float) -0:84 component-wise multiply (noContraction temp float) -0:84 'a' (noContraction temp float) -0:84 'b' (noContraction temp float) -0:84 Constant: -0:84 2.000000 -0:86 Branch: Return with expression -0:86 add (temp float) -0:86 'a' (temp float) -0:86 'b' (temp float) 0:89 Function Definition: main( (global void) 0:89 Function Parameters: 0:? Linker Objects diff --git a/Test/baseResults/precision.frag.out b/Test/baseResults/precision.frag.out index 79485b48c6ebea6a9e0a2cf321d86077b2ea7314..5ab99e99a31933bbc6687b6d8df50233fc6aa275 100644 --- a/Test/baseResults/precision.frag.out +++ b/Test/baseResults/precision.frag.out @@ -130,18 +130,6 @@ Linked fragment stage: Shader version: 100 ERROR: node is still EOpNull! -0:5 Function Definition: foo(vf3; (global lowp 2-component vector of float) -0:5 Function Parameters: -0:5 'mv3' (in mediump 3-component vector of float) -0:? Sequence -0:8 Branch: Return with expression -0:8 vector swizzle (temp highp 2-component vector of float) -0:8 'hv4' (temp highp 4-component vector of float) -0:8 Sequence -0:8 Constant: -0:8 0 (const int) -0:8 Constant: -0:8 1 (const int) 0:25 Function Definition: main( (global void) 0:25 Function Parameters: 0:27 Sequence diff --git a/Test/baseResults/recurse1.vert.out b/Test/baseResults/recurse1.vert.out index c2ae0140c3619d680f6b7c5b53fd5d40613bf9c0..4274eb3849e661bbe3f55c1b73f109ca7b2ea90d 100644 --- a/Test/baseResults/recurse1.vert.out +++ b/Test/baseResults/recurse1.vert.out @@ -218,66 +218,6 @@ Shader version: 330 0:? Sequence 0:3 Function Definition: main( (global void) 0:3 Function Parameters: -0:9 Function Definition: self( (global void) -0:9 Function Parameters: -0:11 Sequence -0:11 Function Call: self( (global void) -0:16 Function Definition: foo(f1; (global void) -0:16 Function Parameters: -0:16 '' (in float) -0:18 Sequence -0:18 Function Call: bar(i1; (global float) -0:18 Constant: -0:18 2 (const int) -0:21 Function Definition: bar(i1; (global float) -0:21 Function Parameters: -0:21 '' (in int) -0:23 Sequence -0:23 Function Call: foo(f1; (global void) -0:23 Constant: -0:23 4.200000 -0:25 Branch: Return with expression -0:25 Constant: -0:25 3.200000 -0:32 Function Definition: A( (global void) -0:32 Function Parameters: -0:32 Sequence -0:32 Function Call: B( (global void) -0:33 Function Definition: C( (global void) -0:33 Function Parameters: -0:33 Sequence -0:33 Function Call: D( (global void) -0:34 Function Definition: B( (global void) -0:34 Function Parameters: -0:34 Sequence -0:34 Function Call: C( (global void) -0:35 Function Definition: D( (global void) -0:35 Function Parameters: -0:35 Sequence -0:35 Function Call: A( (global void) -0:41 Function Definition: AT( (global void) -0:41 Function Parameters: -0:41 Sequence -0:41 Function Call: BT( (global void) -0:41 Function Call: BT( (global void) -0:41 Function Call: BT( (global void) -0:42 Function Definition: CT( (global void) -0:42 Function Parameters: -0:42 Sequence -0:42 Function Call: DT( (global void) -0:42 Function Call: AT( (global void) -0:42 Function Call: DT( (global void) -0:42 Function Call: BT( (global void) -0:43 Function Definition: BT( (global void) -0:43 Function Parameters: -0:43 Sequence -0:43 Function Call: CT( (global void) -0:43 Function Call: CT( (global void) -0:43 Function Call: CT( (global void) -0:44 Function Definition: DT( (global void) -0:44 Function Parameters: -0:44 Sequence -0:44 Function Call: AT( (global void) 0:? Linker Objects 0:? 'gl_VertexID' (gl_VertexId int VertexId) 0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) @@ -285,113 +225,5 @@ Shader version: 330 0:? Sequence 0:5 Function Definition: main( (global void) 0:5 Function Parameters: -0:11 Function Definition: cfoo(f1; (global void) -0:11 Function Parameters: -0:11 '' (in float) -0:13 Sequence -0:13 Function Call: cbar(i1; (global float) -0:13 Constant: -0:13 2 (const int) -0:20 Function Definition: CA( (global void) -0:20 Function Parameters: -0:20 Sequence -0:20 Function Call: CB( (global void) -0:21 Function Definition: CC( (global void) -0:21 Function Parameters: -0:21 Sequence -0:21 Function Call: CD( (global void) -0:27 Function Definition: CAT( (global void) -0:27 Function Parameters: -0:27 Sequence -0:27 Function Call: CBT( (global void) -0:27 Function Call: CBT( (global void) -0:27 Function Call: CBT( (global void) -0:28 Function Definition: CCT( (global void) -0:28 Function Parameters: -0:28 Sequence -0:28 Function Call: CDT( (global void) -0:28 Function Call: CDT( (global void) -0:28 Function Call: CBT( (global void) -0:32 Function Definition: norA( (global void) -0:32 Function Parameters: -0:33 Function Definition: norB( (global void) -0:33 Function Parameters: -0:33 Sequence -0:33 Function Call: norA( (global void) -0:34 Function Definition: norC( (global void) -0:34 Function Parameters: -0:34 Sequence -0:34 Function Call: norA( (global void) -0:35 Function Definition: norD( (global void) -0:35 Function Parameters: -0:35 Sequence -0:35 Function Call: norA( (global void) -0:36 Function Definition: norE( (global void) -0:36 Function Parameters: -0:36 Sequence -0:36 Function Call: norB( (global void) -0:37 Function Definition: norF( (global void) -0:37 Function Parameters: -0:37 Sequence -0:37 Function Call: norB( (global void) -0:38 Function Definition: norG( (global void) -0:38 Function Parameters: -0:38 Sequence -0:38 Function Call: norE( (global void) -0:39 Function Definition: norH( (global void) -0:39 Function Parameters: -0:39 Sequence -0:39 Function Call: norE( (global void) -0:40 Function Definition: norI( (global void) -0:40 Function Parameters: -0:40 Sequence -0:40 Function Call: norE( (global void) -0:44 Function Definition: norcA( (global void) -0:44 Function Parameters: -0:45 Function Definition: norcB( (global void) -0:45 Function Parameters: -0:45 Sequence -0:45 Function Call: norcA( (global void) -0:46 Function Definition: norcC( (global void) -0:46 Function Parameters: -0:46 Sequence -0:46 Function Call: norcB( (global void) -0:47 Function Definition: norcD( (global void) -0:47 Function Parameters: -0:47 Sequence -0:47 Function Call: norcC( (global void) -0:47 Function Call: norcB( (global void) -0:48 Function Definition: norcE( (global void) -0:48 Function Parameters: -0:48 Sequence -0:48 Function Call: norcD( (global void) -0:9 Function Definition: cbar(i1; (global float) -0:9 Function Parameters: -0:9 '' (in int) -0:11 Sequence -0:11 Function Call: cfoo(f1; (global void) -0:11 Constant: -0:11 4.200000 -0:13 Branch: Return with expression -0:13 Constant: -0:13 3.200000 -0:20 Function Definition: CB( (global void) -0:20 Function Parameters: -0:20 Sequence -0:20 Function Call: CC( (global void) -0:21 Function Definition: CD( (global void) -0:21 Function Parameters: -0:21 Sequence -0:21 Function Call: CA( (global void) -0:27 Function Definition: CBT( (global void) -0:27 Function Parameters: -0:27 Sequence -0:27 Function Call: CCT( (global void) -0:27 Function Call: CCT( (global void) -0:27 Function Call: CCT( (global void) -0:28 Function Definition: CDT( (global void) -0:28 Function Parameters: -0:28 Sequence -0:28 Function Call: CAT( (global void) 0:? Linker Objects diff --git a/Test/baseResults/reflection.vert.out b/Test/baseResults/reflection.vert.out index 24ee780900ab9bdb0e62275d121a3b188e9173fb..ba3e0e698a0cfaea4e058c049daf8a95abf946f9 100644 --- a/Test/baseResults/reflection.vert.out +++ b/Test/baseResults/reflection.vert.out @@ -1,104 +1,100 @@ reflection.vert Warning, version 440 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - Uniform reflection: -image_ui2D: offset -1, type 9063, size 1, index -1 -sampler_2D: offset -1, type 8b5e, size 1, index -1 -sampler_2DMSArray: offset -1, type 910b, size 1, index -1 -anonMember3: offset 80, type 8b52, size 1, index 0 -s.a: offset -1, type 1404, size 1, index -1 -named.scalar: offset 12, type 1404, size 1, index 1 -m23: offset 16, type 8b67, size 1, index 0 -scalarAfterm23: offset 48, type 1404, size 1, index 0 -c_m23: offset 16, type 8b67, size 1, index 2 -c_scalarAfterm23: offset 64, type 1404, size 1, index 2 -scalarBeforeArray: offset 96, type 1404, size 1, index 0 -floatArray: offset 112, type 1406, size 5, index 0 -scalarAfterArray: offset 192, type 1404, size 1, index 0 -named.memvec2: offset 48, type 8b50, size 1, index 1 -named.memf1: offset 56, type 1406, size 1, index 1 -named.memf2: offset 60, type 8b56, size 1, index 1 -named.memf3: offset 64, type 1404, size 1, index 1 -named.memvec2a: offset 72, type 8b50, size 1, index 1 -named.m22: offset 80, type 8b5a, size 7, index 1 -dm22: offset -1, type 8b5a, size 4, index -1 -m22: offset 208, type 8b5a, size 3, index 0 -nested.foo.n1.a: offset 0, type 1406, size 1, index 3 -nested.foo.n2.b: offset 16, type 1406, size 1, index 3 -nested.foo.n2.c: offset 20, type 1406, size 1, index 3 -nested.foo.n2.d: offset 24, type 1406, size 1, index 3 -deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1 -deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1 -deepC[1].iv4: offset -1, type 8b52, size 1, index -1 -deepC[1].d2.i: offset -1, type 1404, size 1, index -1 -deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepC[1].v3: offset -1, type 8b54, size 1, index -1 -deepD[0].iv4: offset -1, type 8b52, size 1, index -1 -deepD[0].d2.i: offset -1, type 1404, size 1, index -1 -deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepD[0].v3: offset -1, type 8b54, size 1, index -1 -deepD[1].iv4: offset -1, type 8b52, size 1, index -1 -deepD[1].d2.i: offset -1, type 1404, size 1, index -1 -deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1 -deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1 -deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1 -deepD[1].v3: offset -1, type 8b54, size 1, index -1 -abl.foo: offset 0, type 1406, size 1, index 7 -abl2.foo: offset 0, type 1406, size 1, index 11 -anonMember1: offset 0, type 8b51, size 1, index 0 -uf1: offset -1, type 1406, size 1, index -1 -uf2: offset -1, type 1406, size 1, index -1 -named.member3: offset 32, type 8b52, size 1, index 1 +image_ui2D: offset -1, type 9063, size 1, index -1, binding -1 +sampler_2D: offset -1, type 8b5e, size 1, index -1, binding -1 +sampler_2DMSArray: offset -1, type 910b, size 1, index -1, binding -1 +anonMember3: offset 80, type 8b52, size 1, index 0, binding -1 +s.a: offset -1, type 1404, size 1, index -1, binding -1 +named.scalar: offset 12, type 1404, size 1, index 1, binding -1 +m23: offset 16, type 8b67, size 1, index 0, binding -1 +scalarAfterm23: offset 48, type 1404, size 1, index 0, binding -1 +c_m23: offset 16, type 8b67, size 1, index 2, binding -1 +c_scalarAfterm23: offset 64, type 1404, size 1, index 2, binding -1 +scalarBeforeArray: offset 96, type 1404, size 1, index 0, binding -1 +floatArray: offset 112, type 1406, size 5, index 0, binding -1 +scalarAfterArray: offset 192, type 1404, size 1, index 0, binding -1 +named.memvec2: offset 48, type 8b50, size 1, index 1, binding -1 +named.memf1: offset 56, type 1406, size 1, index 1, binding -1 +named.memf2: offset 60, type 8b56, size 1, index 1, binding -1 +named.memf3: offset 64, type 1404, size 1, index 1, binding -1 +named.memvec2a: offset 72, type 8b50, size 1, index 1, binding -1 +named.m22: offset 80, type 8b5a, size 7, index 1, binding -1 +dm22: offset -1, type 8b5a, size 4, index -1, binding -1 +m22: offset 208, type 8b5a, size 3, index 0, binding -1 +nested.foo.n1.a: offset 0, type 1406, size 1, index 3, binding -1 +nested.foo.n2.b: offset 16, type 1406, size 1, index 3, binding -1 +nested.foo.n2.c: offset 20, type 1406, size 1, index 3, binding -1 +nested.foo.n2.d: offset 24, type 1406, size 1, index 3, binding -1 +deepA[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepA[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[1].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[0].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[1].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[2].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepB[0].d2.d1[3].va: offset -1, type 8b50, size 2, index -1, binding -1 +deepC[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepC[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepC[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepC[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepC[1].v3: offset -1, type 8b54, size 1, index -1, binding -1 +deepD[0].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepD[0].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepD[0].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[0].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[0].v3: offset -1, type 8b54, size 1, index -1, binding -1 +deepD[1].iv4: offset -1, type 8b52, size 1, index -1, binding -1 +deepD[1].d2.i: offset -1, type 1404, size 1, index -1, binding -1 +deepD[1].d2.d1[0].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[0].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[1].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[1].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[2].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[2].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].d2.d1[3].va: offset -1, type 8b50, size 3, index -1, binding -1 +deepD[1].d2.d1[3].b: offset -1, type 8b56, size 1, index -1, binding -1 +deepD[1].v3: offset -1, type 8b54, size 1, index -1, binding -1 +abl.foo: offset 0, type 1406, size 1, index 7, binding -1 +abl2.foo: offset 0, type 1406, size 1, index 11, binding -1 +anonMember1: offset 0, type 8b51, size 1, index 0, binding -1 +uf1: offset -1, type 1406, size 1, index -1, binding -1 +uf2: offset -1, type 1406, size 1, index -1, binding -1 +named.member3: offset 32, type 8b52, size 1, index 1, binding -1 Uniform block reflection: -nameless: offset -1, type ffffffff, size 496, index -1 -named: offset -1, type ffffffff, size 304, index -1 -c_nameless: offset -1, type ffffffff, size 112, index -1 -nested: offset -1, type ffffffff, size 32, index -1 -abl[0]: offset -1, type ffffffff, size 4, index -1 -abl[1]: offset -1, type ffffffff, size 4, index -1 -abl[2]: offset -1, type ffffffff, size 4, index -1 -abl[3]: offset -1, type ffffffff, size 4, index -1 -abl2[0]: offset -1, type ffffffff, size 4, index -1 -abl2[1]: offset -1, type ffffffff, size 4, index -1 -abl2[2]: offset -1, type ffffffff, size 4, index -1 -abl2[3]: offset -1, type ffffffff, size 4, index -1 +nameless: offset -1, type ffffffff, size 496, index -1, binding -1 +named: offset -1, type ffffffff, size 304, index -1, binding -1 +c_nameless: offset -1, type ffffffff, size 112, index -1, binding -1 +nested: offset -1, type ffffffff, size 32, index -1, binding -1 +abl[0]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[1]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[2]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl[3]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[0]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[1]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[2]: offset -1, type ffffffff, size 4, index -1, binding -1 +abl2[3]: offset -1, type ffffffff, size 4, index -1, binding -1 Vertex attribute reflection: -attributeFloat: offset 0, type 1406, size 0, index 0 -attributeFloat2: offset 0, type 8b50, size 0, index 0 -attributeFloat3: offset 0, type 8b51, size 0, index 0 -attributeFloat4: offset 0, type 8b52, size 0, index 0 -attributeMat4: offset 0, type 8b5c, size 0, index 0 +attributeFloat: offset 0, type 1406, size 0, index 0, binding -1 +attributeFloat2: offset 0, type 8b50, size 0, index 0, binding -1 +attributeFloat3: offset 0, type 8b51, size 0, index 0, binding -1 +attributeFloat4: offset 0, type 8b52, size 0, index 0, binding -1 +attributeMat4: offset 0, type 8b5c, size 0, index 0, binding -1 diff --git a/Test/baseResults/remap.basic.dcefunc.frag.out b/Test/baseResults/remap.basic.dcefunc.frag.out index 0f367c96787f673a96c17e7b910dc0521d9f4c14..c28d90a39578d34e4170acbb2c8e627b674486ff 100644 --- a/Test/baseResults/remap.basic.dcefunc.frag.out +++ b/Test/baseResults/remap.basic.dcefunc.frag.out @@ -1,40 +1,35 @@ remap.basic.dcefunc.frag Warning, version 450 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 19 +// Id's are bound by 22 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 14 16 + EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" - Name 9 "dead_fn(" - Name 14 "outf4" - Name 16 "inf" + Name 17 "outf4" + Name 19 "inf" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 7: TypeVector 6(float) 3 8: TypeFunction 7(fvec3) - 10: 6(float) Constant 0 - 11: 7(fvec3) ConstantComposite 10 10 10 - 12: TypeVector 6(float) 4 - 13: TypePointer Output 12(fvec4) - 14(outf4): 13(ptr) Variable Output - 15: TypePointer Input 6(float) - 16(inf): 15(ptr) Variable Input + 11: 6(float) Constant 0 + 12: 7(fvec3) ConstantComposite 11 11 11 + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17(outf4): 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19(inf): 18(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 17: 6(float) Load 16(inf) - 18: 12(fvec4) CompositeConstruct 17 17 17 17 - Store 14(outf4) 18 + 20: 6(float) Load 19(inf) + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17(outf4) 21 Return FunctionEnd diff --git a/Test/baseResults/remap.basic.everything.frag.out b/Test/baseResults/remap.basic.everything.frag.out index f6d6ed448b457f8882657163fa21312a8b11852e..357a8d2be5a26b7e30f629324676fd96a8528617 100644 --- a/Test/baseResults/remap.basic.everything.frag.out +++ b/Test/baseResults/remap.basic.everything.frag.out @@ -1,10 +1,6 @@ remap.basic.everything.frag Warning, version 450 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 24969 diff --git a/Test/baseResults/remap.basic.none.frag.out b/Test/baseResults/remap.basic.none.frag.out index 3632309a24f477ed734a87990e367ca69ca2a20d..44f5747bf1364330c52f7d86576820811f4507ce 100644 --- a/Test/baseResults/remap.basic.none.frag.out +++ b/Test/baseResults/remap.basic.none.frag.out @@ -1,24 +1,20 @@ remap.basic.none.frag Warning, version 450 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 20 +// Id's are bound by 22 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 17 + EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" Name 9 "dead_fn(" - Name 15 "outf4" - Name 17 "inf" + Name 17 "outf4" + Name 19 "inf" 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -26,16 +22,16 @@ Linked fragment stage: 8: TypeFunction 7(fvec3) 11: 6(float) Constant 0 12: 7(fvec3) ConstantComposite 11 11 11 - 13: TypeVector 6(float) 4 - 14: TypePointer Output 13(fvec4) - 15(outf4): 14(ptr) Variable Output - 16: TypePointer Input 6(float) - 17(inf): 16(ptr) Variable Input + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17(outf4): 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19(inf): 18(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 18: 6(float) Load 17(inf) - 19: 13(fvec4) CompositeConstruct 18 18 18 18 - Store 15(outf4) 19 + 20: 6(float) Load 19(inf) + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17(outf4) 21 Return FunctionEnd 9(dead_fn(): 7(fvec3) Function None 8 diff --git a/Test/baseResults/remap.basic.strip.frag.out b/Test/baseResults/remap.basic.strip.frag.out index d34ce8ff3a06df636be4753d347013269bc830be..ab1a003af32ff929fdbd44622fbfc7c68ade684e 100644 --- a/Test/baseResults/remap.basic.strip.frag.out +++ b/Test/baseResults/remap.basic.strip.frag.out @@ -1,18 +1,14 @@ remap.basic.strip.frag Warning, version 450 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 20 +// Id's are bound by 22 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 15 17 + EntryPoint Fragment 4 "main" 17 19 ExecutionMode 4 OriginUpperLeft 2: TypeVoid 3: TypeFunction 2 @@ -21,16 +17,16 @@ Linked fragment stage: 8: TypeFunction 7(fvec3) 11: 6(float) Constant 0 12: 7(fvec3) ConstantComposite 11 11 11 - 13: TypeVector 6(float) 4 - 14: TypePointer Output 13(fvec4) - 15: 14(ptr) Variable Output - 16: TypePointer Input 6(float) - 17: 16(ptr) Variable Input + 15: TypeVector 6(float) 4 + 16: TypePointer Output 15(fvec4) + 17: 16(ptr) Variable Output + 18: TypePointer Input 6(float) + 19: 18(ptr) Variable Input 4: 2 Function None 3 5: Label - 18: 6(float) Load 17 - 19: 13(fvec4) CompositeConstruct 18 18 18 18 - Store 15 19 + 20: 6(float) Load 19 + 21: 15(fvec4) CompositeConstruct 20 20 20 20 + Store 17 21 Return FunctionEnd 9: 7(fvec3) Function None 8 diff --git a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out index bd1fa7e4c0bce34c20d7895497c777660762a4f3..b49a10ba610baee82e240f49011b0c9e4634492e 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.everything.frag.out @@ -1,10 +1,6 @@ remap.hlsl.sample.basic.everything.frag WARNING: 0:4: 'immediate sampler state' : unimplemented - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 24916 diff --git a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out index b149718f42cf78157ddd4342fda54a7cf6e88203..51ad1a8bf964d5f9bcc98664558b46401fb6a091 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.none.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.none.frag.out @@ -1,13 +1,9 @@ remap.hlsl.sample.basic.none.frag WARNING: 0:4: 'immediate sampler state' : unimplemented - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 190 +// Id's are bound by 191 Capability Shader Capability Sampled1D @@ -61,9 +57,9 @@ Linked fragment stage: Name 173 "psout" Name 180 "Color" Name 184 "Depth" - Name 187 "g_sSamp2d" - Name 188 "g_sSamp2D_b" - Name 189 "g_tTex1df4a" + Name 188 "g_sSamp2d" + Name 189 "g_sSamp2D_b" + Name 190 "g_tTex1df4a" Decorate 41(g_tTex1df4) DescriptorSet 0 Decorate 41(g_tTex1df4) Binding 0 Decorate 45(g_sSamp) DescriptorSet 0 @@ -81,10 +77,10 @@ Linked fragment stage: Decorate 165(g_tTexcdu4) DescriptorSet 0 Decorate 180(Color) Location 0 Decorate 184(Depth) BuiltIn FragDepth - Decorate 187(g_sSamp2d) DescriptorSet 0 - Decorate 188(g_sSamp2D_b) DescriptorSet 0 - Decorate 189(g_tTex1df4a) DescriptorSet 0 - Decorate 189(g_tTex1df4a) Binding 1 + Decorate 188(g_sSamp2d) DescriptorSet 0 + Decorate 189(g_sSamp2D_b) DescriptorSet 0 + Decorate 190(g_tTex1df4a) DescriptorSet 0 + Decorate 190(g_tTex1df4a) Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -188,9 +184,9 @@ Linked fragment stage: 180(Color): 179(ptr) Variable Output 183: TypePointer Output 35(float) 184(Depth): 183(ptr) Variable Output - 187(g_sSamp2d): 44(ptr) Variable UniformConstant -188(g_sSamp2D_b): 44(ptr) Variable UniformConstant -189(g_tTex1df4a): 40(ptr) Variable UniformConstant + 188(g_sSamp2d): 44(ptr) Variable UniformConstant +189(g_sSamp2D_b): 44(ptr) Variable UniformConstant +190(g_tTex1df4a): 40(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(mtest): 8(ptr) Variable Function diff --git a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out index 534076788b6492515e608155c4dec4ab0a342815..f95d7effbbc912e4ec26bb2c309216d2db7d685e 100644 --- a/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out +++ b/Test/baseResults/remap.hlsl.sample.basic.strip.frag.out @@ -1,13 +1,9 @@ remap.hlsl.sample.basic.strip.frag WARNING: 0:4: 'immediate sampler state' : unimplemented - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 190 +// Id's are bound by 191 Capability Shader Capability Sampled1D @@ -32,10 +28,10 @@ Linked fragment stage: Decorate 165 DescriptorSet 0 Decorate 180 Location 0 Decorate 184 BuiltIn FragDepth - Decorate 187 DescriptorSet 0 Decorate 188 DescriptorSet 0 Decorate 189 DescriptorSet 0 - Decorate 189 Binding 1 + Decorate 190 DescriptorSet 0 + Decorate 190 Binding 1 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -139,9 +135,9 @@ Linked fragment stage: 180: 179(ptr) Variable Output 183: TypePointer Output 35(float) 184: 183(ptr) Variable Output - 187: 44(ptr) Variable UniformConstant 188: 44(ptr) Variable UniformConstant - 189: 40(ptr) Variable UniformConstant + 189: 44(ptr) Variable UniformConstant + 190: 40(ptr) Variable UniformConstant 4: 2 Function None 3 5: Label 9: 8(ptr) Variable Function diff --git a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out index 7a40f944bcffba81943e5077bcf7001193eea12b..c42a037bb3fab87f661339a619dae335c60204c4 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.everything.frag.out @@ -1,11 +1,7 @@ remap.hlsl.templatetypes.everything.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 16123 +// Id's are bound by 9012 Capability Shader Capability Float64 @@ -20,11 +16,12 @@ Linked fragment stage: 13: TypeFloat 32 29: TypeVector 13(float) 4 2572: 13(float) Constant 0 - 666: TypePointer Output 29(fvec4) - 4045: 666(ptr) Variable Output - 667: TypePointer Input 29(fvec4) - 4872: 667(ptr) Variable Input + 650: TypePointer Output 13(float) + 4045: 650(ptr) Variable Output + 666: TypePointer Input 29(fvec4) + 4872: 666(ptr) Variable Input 5663: 8 Function None 1282 - 16122: Label - ReturnValue 2572 + 9011: Label + Store 4045 2572 + Return FunctionEnd diff --git a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out index 340198b3aae035fa204b8f8036c00221d8ed923c..027f020776560e8b78ae35c33d2f5304b0a7c467 100644 --- a/Test/baseResults/remap.hlsl.templatetypes.none.frag.out +++ b/Test/baseResults/remap.hlsl.templatetypes.none.frag.out @@ -1,17 +1,13 @@ remap.hlsl.templatetypes.none.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 149 +// Id's are bound by 150 Capability Shader Capability Float64 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 146 148 + EntryPoint Fragment 4 "main" 146 149 ExecutionMode 4 OriginUpperLeft Name 4 "main" Name 9 "r00" @@ -43,9 +39,9 @@ Linked fragment stage: Name 136 "r65" Name 141 "r66" Name 146 "@entryPointOutput" - Name 148 "input" + Name 149 "input" Decorate 146(@entryPointOutput) Location 0 - Decorate 148(input) Location 0 + Decorate 149(input) Location 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -159,10 +155,10 @@ Linked fragment stage: 142: 69(fvec3) ConstantComposite 109 111 112 143: 69(fvec3) ConstantComposite 113 114 116 144: 139 ConstantComposite 72 126 142 143 - 145: TypePointer Output 7(fvec4) + 145: TypePointer Output 6(float) 146(@entryPointOutput): 145(ptr) Variable Output - 147: TypePointer Input 7(fvec4) - 148(input): 147(ptr) Variable Input + 148: TypePointer Input 7(fvec4) + 149(input): 148(ptr) Variable Input 4(main): 2 Function None 3 5: Label 9(r00): 8(ptr) Variable Function @@ -221,5 +217,6 @@ Linked fragment stage: Store 130(r62) 133 Store 136(r65) 138 Store 141(r66) 144 - ReturnValue 106 + Store 146(@entryPointOutput) 106 + Return FunctionEnd diff --git a/Test/baseResults/remap.if.everything.frag.out b/Test/baseResults/remap.if.everything.frag.out index 9f98c1843818cdb199544fd9a5bb6bbff51a60c6..d20564c5dd53d43186a36f27f4522f1d7dd86f75 100644 --- a/Test/baseResults/remap.if.everything.frag.out +++ b/Test/baseResults/remap.if.everything.frag.out @@ -1,10 +1,6 @@ remap.if.everything.frag Warning, version 450 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 22855 diff --git a/Test/baseResults/remap.if.none.frag.out b/Test/baseResults/remap.if.none.frag.out index f3113a36a7d39f4cbe48577a16a921f2822af086..081d5cdd699dc9e5d4ad5e1ff4de953de8c9b457 100644 --- a/Test/baseResults/remap.if.none.frag.out +++ b/Test/baseResults/remap.if.none.frag.out @@ -1,10 +1,6 @@ remap.if.none.frag Warning, version 450 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 25 diff --git a/Test/baseResults/remap.similar_1a.everything.frag.out b/Test/baseResults/remap.similar_1a.everything.frag.out index 09589f57f305cd2dd63a440e97991bb2636262e5..384b8e8619bb2ac93bfb977c9d7c9886c47381cd 100644 --- a/Test/baseResults/remap.similar_1a.everything.frag.out +++ b/Test/baseResults/remap.similar_1a.everything.frag.out @@ -1,10 +1,6 @@ remap.similar_1a.everything.frag Warning, version 450 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 24916 diff --git a/Test/baseResults/remap.similar_1a.none.frag.out b/Test/baseResults/remap.similar_1a.none.frag.out index 17484512270b3e02edf801fd536955164e23112e..910ef424a44513f89ebd28ada6db10d471b8cb28 100644 --- a/Test/baseResults/remap.similar_1a.none.frag.out +++ b/Test/baseResults/remap.similar_1a.none.frag.out @@ -1,18 +1,14 @@ remap.similar_1a.none.frag Warning, version 450 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 82 +// Id's are bound by 86 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 50 69 71 + EntryPoint Fragment 4 "main" 53 73 75 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -22,13 +18,13 @@ Linked fragment stage: Name 13 "bound" Name 17 "r" Name 19 "x" - Name 42 "param" - Name 50 "ini4" - Name 69 "outf4" - Name 71 "inf" - Name 74 "param" + Name 44 "param" + Name 53 "ini4" + Name 73 "outf4" + Name 75 "inf" Name 78 "param" - Decorate 50(ini4) Flat + Name 82 "param" + Decorate 53(ini4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -41,35 +37,35 @@ Linked fragment stage: 28: TypeBool 30: 8(float) Constant 1056964608 34: 6(int) Constant 1 - 38: 6(int) Constant 2 - 48: TypeVector 6(int) 4 - 49: TypePointer Input 48(ivec4) - 50(ini4): 49(ptr) Variable Input - 51: TypeInt 32 0 - 52: 51(int) Constant 1 - 53: TypePointer Input 6(int) - 56: 51(int) Constant 2 - 61: 51(int) Constant 0 - 67: TypeVector 8(float) 4 - 68: TypePointer Output 67(fvec4) - 69(outf4): 68(ptr) Variable Output - 70: TypePointer Input 8(float) - 71(inf): 70(ptr) Variable Input + 40: 6(int) Constant 2 + 51: TypeVector 6(int) 4 + 52: TypePointer Input 51(ivec4) + 53(ini4): 52(ptr) Variable Input + 54: TypeInt 32 0 + 55: 54(int) Constant 1 + 56: TypePointer Input 6(int) + 59: 54(int) Constant 2 + 64: 54(int) Constant 0 + 71: TypeVector 8(float) 4 + 72: TypePointer Output 71(fvec4) + 73(outf4): 72(ptr) Variable Output + 74: TypePointer Input 8(float) + 75(inf): 74(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 74(param): 7(ptr) Variable Function 78(param): 7(ptr) Variable Function - 72: 8(float) Load 71(inf) - 73: 6(int) ConvertFToS 72 - Store 74(param) 73 - 75: 8(float) FunctionCall 11(Test1(i1;) 74(param) - 76: 8(float) Load 71(inf) + 82(param): 7(ptr) Variable Function + 76: 8(float) Load 75(inf) 77: 6(int) ConvertFToS 76 Store 78(param) 77 - 79: 8(float) FunctionCall 14(Test2(i1;) 78(param) - 80: 8(float) FAdd 75 79 - 81: 67(fvec4) CompositeConstruct 80 80 80 80 - Store 69(outf4) 81 + 79: 8(float) FunctionCall 11(Test1(i1;) 78(param) + 80: 8(float) Load 75(inf) + 81: 6(int) ConvertFToS 80 + Store 82(param) 81 + 83: 8(float) FunctionCall 14(Test2(i1;) 82(param) + 84: 8(float) FAdd 79 83 + 85: 71(fvec4) CompositeConstruct 84 84 84 84 + Store 73(outf4) 85 Return FunctionEnd 11(Test1(i1;): 8(float) Function None 9 @@ -105,31 +101,31 @@ Linked fragment stage: 14(Test2(i1;): 8(float) Function None 9 13(bound): 7(ptr) FunctionParameter 15: Label - 42(param): 7(ptr) Variable Function - 37: 6(int) Load 13(bound) - 39: 28(bool) SGreaterThan 37 38 - SelectionMerge 41 None - BranchConditional 39 40 45 - 40: Label - 43: 6(int) Load 13(bound) - Store 42(param) 43 - 44: 8(float) FunctionCall 11(Test1(i1;) 42(param) - ReturnValue 44 - 45: Label - 46: 6(int) Load 13(bound) - 47: 6(int) IMul 46 38 - 54: 53(ptr) AccessChain 50(ini4) 52 - 55: 6(int) Load 54 - 57: 53(ptr) AccessChain 50(ini4) 56 + 44(param): 7(ptr) Variable Function + 39: 6(int) Load 13(bound) + 41: 28(bool) SGreaterThan 39 40 + SelectionMerge 43 None + BranchConditional 41 42 48 + 42: Label + 45: 6(int) Load 13(bound) + Store 44(param) 45 + 46: 8(float) FunctionCall 11(Test1(i1;) 44(param) + ReturnValue 46 + 48: Label + 49: 6(int) Load 13(bound) + 50: 6(int) IMul 49 40 + 57: 56(ptr) AccessChain 53(ini4) 55 58: 6(int) Load 57 - 59: 6(int) IMul 55 58 - 60: 6(int) IAdd 47 59 - 62: 53(ptr) AccessChain 50(ini4) 61 - 63: 6(int) Load 62 - 64: 6(int) IAdd 60 63 - 65: 8(float) ConvertSToF 64 - ReturnValue 65 - 41: Label - 66: 8(float) Undef - ReturnValue 66 + 60: 56(ptr) AccessChain 53(ini4) 59 + 61: 6(int) Load 60 + 62: 6(int) IMul 58 61 + 63: 6(int) IAdd 50 62 + 65: 56(ptr) AccessChain 53(ini4) 64 + 66: 6(int) Load 65 + 67: 6(int) IAdd 63 66 + 68: 8(float) ConvertSToF 67 + ReturnValue 68 + 43: Label + 70: 8(float) Undef + ReturnValue 70 FunctionEnd diff --git a/Test/baseResults/remap.similar_1b.everything.frag.out b/Test/baseResults/remap.similar_1b.everything.frag.out index d05be1172909ac3bb97722f1d93e222271f668db..0ce4544c9633961933556bb02f1812a44b64df05 100644 --- a/Test/baseResults/remap.similar_1b.everything.frag.out +++ b/Test/baseResults/remap.similar_1b.everything.frag.out @@ -1,10 +1,6 @@ remap.similar_1b.everything.frag Warning, version 450 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 24916 diff --git a/Test/baseResults/remap.similar_1b.none.frag.out b/Test/baseResults/remap.similar_1b.none.frag.out index f9bf0847b03a75b59b676da73c4e2b32a6b57a10..ce79e00beffe95435a49265324aadb0e159795aa 100644 --- a/Test/baseResults/remap.similar_1b.none.frag.out +++ b/Test/baseResults/remap.similar_1b.none.frag.out @@ -1,18 +1,14 @@ remap.similar_1b.none.frag Warning, version 450 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 87 +// Id's are bound by 91 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 55 74 76 + EntryPoint Fragment 4 "main" 58 78 80 ExecutionMode 4 OriginUpperLeft Source GLSL 450 Name 4 "main" @@ -22,13 +18,13 @@ Linked fragment stage: Name 13 "bound" Name 17 "r" Name 19 "x" - Name 47 "param" - Name 55 "ini4" - Name 74 "outf4" - Name 76 "inf" - Name 79 "param" + Name 49 "param" + Name 58 "ini4" + Name 78 "outf4" + Name 80 "inf" Name 83 "param" - Decorate 55(ini4) Flat + Name 87 "param" + Decorate 58(ini4) Flat 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 1 @@ -42,36 +38,36 @@ Linked fragment stage: 30: 8(float) Constant 1056964608 34: 6(int) Constant 1 36: 8(float) Constant 1045220557 - 41: 6(int) Constant 2 - 51: 6(int) Constant 4 - 53: TypeVector 6(int) 4 - 54: TypePointer Input 53(ivec4) - 55(ini4): 54(ptr) Variable Input - 56: TypeInt 32 0 - 57: 56(int) Constant 1 - 58: TypePointer Input 6(int) - 61: 56(int) Constant 2 - 66: 56(int) Constant 0 - 72: TypeVector 8(float) 4 - 73: TypePointer Output 72(fvec4) - 74(outf4): 73(ptr) Variable Output - 75: TypePointer Input 8(float) - 76(inf): 75(ptr) Variable Input + 43: 6(int) Constant 2 + 54: 6(int) Constant 4 + 56: TypeVector 6(int) 4 + 57: TypePointer Input 56(ivec4) + 58(ini4): 57(ptr) Variable Input + 59: TypeInt 32 0 + 60: 59(int) Constant 1 + 61: TypePointer Input 6(int) + 64: 59(int) Constant 2 + 69: 59(int) Constant 0 + 76: TypeVector 8(float) 4 + 77: TypePointer Output 76(fvec4) + 78(outf4): 77(ptr) Variable Output + 79: TypePointer Input 8(float) + 80(inf): 79(ptr) Variable Input 4(main): 2 Function None 3 5: Label - 79(param): 7(ptr) Variable Function 83(param): 7(ptr) Variable Function - 77: 8(float) Load 76(inf) - 78: 6(int) ConvertFToS 77 - Store 79(param) 78 - 80: 8(float) FunctionCall 11(Test1(i1;) 79(param) - 81: 8(float) Load 76(inf) + 87(param): 7(ptr) Variable Function + 81: 8(float) Load 80(inf) 82: 6(int) ConvertFToS 81 Store 83(param) 82 - 84: 8(float) FunctionCall 14(Test2(i1;) 83(param) - 85: 8(float) FAdd 80 84 - 86: 72(fvec4) CompositeConstruct 85 85 85 85 - Store 74(outf4) 86 + 84: 8(float) FunctionCall 11(Test1(i1;) 83(param) + 85: 8(float) Load 80(inf) + 86: 6(int) ConvertFToS 85 + Store 87(param) 86 + 88: 8(float) FunctionCall 14(Test2(i1;) 87(param) + 89: 8(float) FAdd 84 88 + 90: 76(fvec4) CompositeConstruct 89 89 89 89 + Store 78(outf4) 90 Return FunctionEnd 11(Test1(i1;): 8(float) Function None 9 @@ -110,32 +106,32 @@ Linked fragment stage: 14(Test2(i1;): 8(float) Function None 9 13(bound): 7(ptr) FunctionParameter 15: Label - 47(param): 7(ptr) Variable Function - 40: 6(int) Load 13(bound) - 42: 28(bool) SGreaterThan 40 41 - SelectionMerge 44 None - BranchConditional 42 43 49 - 43: Label - 45: 6(int) Load 13(bound) - 46: 6(int) IMul 45 41 - Store 47(param) 46 - 48: 8(float) FunctionCall 11(Test1(i1;) 47(param) - ReturnValue 48 - 49: Label - 50: 6(int) Load 13(bound) - 52: 6(int) IMul 50 51 - 59: 58(ptr) AccessChain 55(ini4) 57 - 60: 6(int) Load 59 - 62: 58(ptr) AccessChain 55(ini4) 61 + 49(param): 7(ptr) Variable Function + 42: 6(int) Load 13(bound) + 44: 28(bool) SGreaterThan 42 43 + SelectionMerge 46 None + BranchConditional 44 45 52 + 45: Label + 47: 6(int) Load 13(bound) + 48: 6(int) IMul 47 43 + Store 49(param) 48 + 50: 8(float) FunctionCall 11(Test1(i1;) 49(param) + ReturnValue 50 + 52: Label + 53: 6(int) Load 13(bound) + 55: 6(int) IMul 53 54 + 62: 61(ptr) AccessChain 58(ini4) 60 63: 6(int) Load 62 - 64: 6(int) IMul 60 63 - 65: 6(int) IAdd 52 64 - 67: 58(ptr) AccessChain 55(ini4) 66 - 68: 6(int) Load 67 - 69: 6(int) IAdd 65 68 - 70: 8(float) ConvertSToF 69 - ReturnValue 70 - 44: Label - 71: 8(float) Undef - ReturnValue 71 + 65: 61(ptr) AccessChain 58(ini4) 64 + 66: 6(int) Load 65 + 67: 6(int) IMul 63 66 + 68: 6(int) IAdd 55 67 + 70: 61(ptr) AccessChain 58(ini4) 69 + 71: 6(int) Load 70 + 72: 6(int) IAdd 68 71 + 73: 8(float) ConvertSToF 72 + ReturnValue 73 + 46: Label + 75: 8(float) Undef + ReturnValue 75 FunctionEnd diff --git a/Test/baseResults/remap.switch.everything.frag.out b/Test/baseResults/remap.switch.everything.frag.out index a1d9b0d921311e83b6f18b084d1e9e0ae6e72413..e5a7ef75977994ca4ae424ea9dc1d97e1e334a09 100644 --- a/Test/baseResults/remap.switch.everything.frag.out +++ b/Test/baseResults/remap.switch.everything.frag.out @@ -3,10 +3,6 @@ Warning, version 450 is not yet complete; most version-specific features are pre WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: "precision mediump int; precision highp float;" - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 23990 diff --git a/Test/baseResults/remap.switch.none.frag.out b/Test/baseResults/remap.switch.none.frag.out index 7fc8f04b1e6dc7d057646589bacc9e37aee8d21a..68d075b2579b52f1488c6bae0b8c849845cfd6cf 100644 --- a/Test/baseResults/remap.switch.none.frag.out +++ b/Test/baseResults/remap.switch.none.frag.out @@ -3,13 +3,9 @@ Warning, version 450 is not yet complete; most version-specific features are pre WARNING: 0:5: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: "precision mediump int; precision highp float;" - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 44 +// Id's are bound by 48 Capability Shader 1: ExtInstImport "GLSL.std.450" @@ -24,8 +20,8 @@ Linked fragment stage: Decorate 23(FragColor) RelaxedPrecision Decorate 23(FragColor) Location 0 Decorate 29 RelaxedPrecision - Decorate 35 RelaxedPrecision - Decorate 41 RelaxedPrecision + Decorate 36 RelaxedPrecision + Decorate 43 RelaxedPrecision 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -40,12 +36,12 @@ Linked fragment stage: 23(FragColor): 22(ptr) Variable Output 24: 10(int) Constant 0 27: 6(float) Constant 0 - 30: 10(int) Constant 1 - 33: 6(float) Constant 1065353216 - 36: 10(int) Constant 2 - 39: 6(float) Constant 1073741824 - 42: 6(float) Constant 3212836864 - 43: 7(fvec4) ConstantComposite 42 42 42 42 + 31: 10(int) Constant 1 + 34: 6(float) Constant 1065353216 + 38: 10(int) Constant 2 + 41: 6(float) Constant 1073741824 + 45: 6(float) Constant 3212836864 + 46: 7(fvec4) ConstantComposite 45 45 45 45 4(main): 2 Function None 3 5: Label 13: 12(ptr) AccessChain 9(in0) 11 @@ -57,7 +53,7 @@ Linked fragment stage: case 1: 18 case 2: 19 20: Label - Store 23(FragColor) 43 + Store 23(FragColor) 46 Branch 21 17: Label 25: 12(ptr) AccessChain 9(in0) 24 @@ -67,18 +63,18 @@ Linked fragment stage: Store 23(FragColor) 29 Branch 21 18: Label - 31: 12(ptr) AccessChain 9(in0) 30 - 32: 6(float) Load 31 - 34: 6(float) FAdd 32 33 - 35: 7(fvec4) CompositeConstruct 34 34 34 34 - Store 23(FragColor) 35 + 32: 12(ptr) AccessChain 9(in0) 31 + 33: 6(float) Load 32 + 35: 6(float) FAdd 33 34 + 36: 7(fvec4) CompositeConstruct 35 35 35 35 + Store 23(FragColor) 36 Branch 21 19: Label - 37: 12(ptr) AccessChain 9(in0) 36 - 38: 6(float) Load 37 - 40: 6(float) FAdd 38 39 - 41: 7(fvec4) CompositeConstruct 40 40 40 40 - Store 23(FragColor) 41 + 39: 12(ptr) AccessChain 9(in0) 38 + 40: 6(float) Load 39 + 42: 6(float) FAdd 40 41 + 43: 7(fvec4) CompositeConstruct 42 42 42 42 + Store 23(FragColor) 43 Branch 21 21: Label Return diff --git a/Test/baseResults/remap.uniformarray.everything.frag.out b/Test/baseResults/remap.uniformarray.everything.frag.out index 18defecbc408d991081fbb9614d5b67ab1029e35..ed906d535a03f7f2ac0b68dd3062e7e79bd0cc8f 100644 --- a/Test/baseResults/remap.uniformarray.everything.frag.out +++ b/Test/baseResults/remap.uniformarray.everything.frag.out @@ -1,8 +1,4 @@ remap.uniformarray.everything.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 25030 diff --git a/Test/baseResults/remap.uniformarray.none.frag.out b/Test/baseResults/remap.uniformarray.none.frag.out index ff2489e36694c13c84a20edddfdb51a4a76a8087..526b9e4969850a5071bca543b9fa2dde9f54354f 100644 --- a/Test/baseResults/remap.uniformarray.none.frag.out +++ b/Test/baseResults/remap.uniformarray.none.frag.out @@ -1,8 +1,4 @@ remap.uniformarray.none.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 53 diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out index 848839c65d52429dfc5dc3f0014e378321b3bad3..a66144a7c556d7e60c23edc2cdde1b0c6ba82055 100644 --- a/Test/baseResults/specExamples.frag.out +++ b/Test/baseResults/specExamples.frag.out @@ -318,12 +318,9 @@ ERROR: node is still EOpNull! 0:? 'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor}) 0:? 'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord}) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'factor' (layout(location=3 index=1 ) out 4-component vector of float) 0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float) 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) 0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) @@ -402,17 +399,6 @@ ERROR: node is still EOpNull! 0:26 'fd' (global double) 0:26 Constant: 0:26 2.000000 -0:127 Function Definition: foo(f1[5]; (global 5-element array of float) -0:127 Function Parameters: -0:127 '' (in 5-element array of float) -0:129 Sequence -0:129 Branch: Return with expression -0:129 Constant: -0:129 3.400000 -0:129 4.200000 -0:129 5.000000 -0:129 5.200000 -0:129 1.100000 0:137 Function Definition: main( (global void) 0:137 Function Parameters: 0:140 Sequence @@ -607,11 +593,8 @@ ERROR: node is still EOpNull! 0:? 'anon@1' (in block{in 4-component vector of float LightPos, in 3-component vector of float LightColor}) 0:? 'Materiala' (in block{in 4-component vector of float Color, in 2-component vector of float TexCoord}) 0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) -0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float FragCoord) 0:? 'factor' (layout(location=3 index=1 ) out 4-component vector of float) 0:? 'colors' (layout(location=2 ) out 3-element array of 4-component vector of float) 0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'gl_FragDepth' (gl_FragDepth float FragDepth) -0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) 0:? 'anon@2' (in block{in float FogFragCoord gl_FogFragCoord, in 1-element array of 4-component vector of float TexCoord gl_TexCoord, flat in 4-component vector of float Color gl_Color, in 4-component vector of float SecondaryColor gl_SecondaryColor}) diff --git a/Test/baseResults/specExamples.vert.out b/Test/baseResults/specExamples.vert.out index ef9a122512f823a5b0b8ec455b29981fa7f8c963..d7de758c18fa47895b5c1ac7351a8b46326de78e 100644 --- a/Test/baseResults/specExamples.vert.out +++ b/Test/baseResults/specExamples.vert.out @@ -298,11 +298,10 @@ ERROR: node is still EOpNull! 0:? 'c2' (layout(binding=3 ) uniform atomic_uint) 0:? 'd2' (layout(binding=2 ) uniform atomic_uint) 0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...}) -0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out implicitly-sized array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out implicitly-sized array of 4-component vector of float TexCoord gl_TexCoord, ...}) 0:? 'ColorInv' (smooth out 3-component vector of float) 0:? 'Color4' (invariant centroid smooth out 3-component vector of float) 0:? 'position' (noContraction smooth out 4-component vector of float) -0:? 'Color5' (smooth out 3-component vector of float) +0:? 'Color5' (noContraction smooth out 3-component vector of float) 0:? 'a' (in 4-component vector of float) 0:? 'b' (in 4-component vector of float) 0:? 'c' (in 4-component vector of float) @@ -582,11 +581,10 @@ ERROR: node is still EOpNull! 0:? 'c2' (layout(binding=3 ) uniform atomic_uint) 0:? 'd2' (layout(binding=2 ) uniform atomic_uint) 0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) -0:? 'anon@5' (out block{invariant gl_Position 4-component vector of float Position gl_Position, gl_PointSize float PointSize gl_PointSize, out 1-element array of float ClipDistance gl_ClipDistance, gl_ClipVertex 4-component vector of float ClipVertex gl_ClipVertex, flat out 4-component vector of float FrontColor gl_FrontColor, out 4-component vector of float BackColor gl_BackColor, out 4-component vector of float FrontSecondaryColor gl_FrontSecondaryColor, out 4-component vector of float BackSecondaryColor gl_BackSecondaryColor, out 1-element array of 4-component vector of float TexCoord gl_TexCoord, out float FogFragCoord gl_FogFragCoord}) 0:? 'ColorInv' (smooth out 3-component vector of float) 0:? 'Color4' (invariant centroid smooth out 3-component vector of float) 0:? 'position' (noContraction smooth out 4-component vector of float) -0:? 'Color5' (smooth out 3-component vector of float) +0:? 'Color5' (noContraction smooth out 3-component vector of float) 0:? 'a' (in 4-component vector of float) 0:? 'b' (in 4-component vector of float) 0:? 'c' (in 4-component vector of float) diff --git a/Test/baseResults/spv.100ops.frag.out b/Test/baseResults/spv.100ops.frag.out index 9b40c920eb25c3b9c0454d0f5547223315159ed9..efd82012b023c919c7d5c8f0b4db83abb085a320 100755 --- a/Test/baseResults/spv.100ops.frag.out +++ b/Test/baseResults/spv.100ops.frag.out @@ -1,10 +1,6 @@ spv.100ops.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 49 diff --git a/Test/baseResults/spv.130.frag.out b/Test/baseResults/spv.130.frag.out index 8d881f505020b7d205d63fb176426244377582d2..19c6db0df2e4096d286239a861397d8bf4807701 100644 --- a/Test/baseResults/spv.130.frag.out +++ b/Test/baseResults/spv.130.frag.out @@ -1,10 +1,6 @@ spv.130.frag WARNING: 0:31: '#extension' : extension is only partially supported: GL_ARB_gpu_shader5 - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 205 diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out index f302478c532d6210bd525f68b2cbb3f8864ddf17..f8e75ebdacfbb3689f3be762763cca6b90eba503 100755 --- a/Test/baseResults/spv.140.frag.out +++ b/Test/baseResults/spv.140.frag.out @@ -1,8 +1,4 @@ spv.140.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 101 diff --git a/Test/baseResults/spv.150.geom.out b/Test/baseResults/spv.150.geom.out index 8b021ff91d6a83aff76bdf0d6af2a994d376f805..1c98c70e72ac885a8e2b0ad9f8c5ff1f9807ed15 100755 --- a/Test/baseResults/spv.150.geom.out +++ b/Test/baseResults/spv.150.geom.out @@ -1,8 +1,4 @@ spv.150.geom - -Linked geometry stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 71 diff --git a/Test/baseResults/spv.150.vert.out b/Test/baseResults/spv.150.vert.out index 5ccf1a812b658359fd3113f814763627ce21fd26..28431397210b27e81a73b3eb10cb4c747e8a6849 100755 --- a/Test/baseResults/spv.150.vert.out +++ b/Test/baseResults/spv.150.vert.out @@ -1,8 +1,4 @@ spv.150.vert - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 63 diff --git a/Test/baseResults/spv.300BuiltIns.vert.out b/Test/baseResults/spv.300BuiltIns.vert.out index ab07f4a86adeb76e5dcc758ca99db8e24a97b695..7dc949dcaf91d622641856c8a9eda17accf2b12a 100755 --- a/Test/baseResults/spv.300BuiltIns.vert.out +++ b/Test/baseResults/spv.300BuiltIns.vert.out @@ -1,10 +1,6 @@ spv.300BuiltIns.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 42 diff --git a/Test/baseResults/spv.300layout.frag.out b/Test/baseResults/spv.300layout.frag.out index e340c1b22ae4b35999f8826962dffcb1ccf916d3..7ce08d86891463d7bd5fc1e7f5b2b8facdf87346 100755 --- a/Test/baseResults/spv.300layout.frag.out +++ b/Test/baseResults/spv.300layout.frag.out @@ -1,10 +1,6 @@ spv.300layout.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 37 diff --git a/Test/baseResults/spv.300layout.vert.out b/Test/baseResults/spv.300layout.vert.out index 859794a32877cfbcce4ad81cc56bf1d12b01b3f9..20eb8e7d5714f278b554953cf1fa090a3e03c085 100644 --- a/Test/baseResults/spv.300layout.vert.out +++ b/Test/baseResults/spv.300layout.vert.out @@ -1,10 +1,6 @@ spv.300layout.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 163 diff --git a/Test/baseResults/spv.300layoutp.vert.out b/Test/baseResults/spv.300layoutp.vert.out index ebad96358f65d9fcb651a0ad9072e8aa5a217381..5924137cdca8c2bed4cc5416a00c84a9c13ac5e2 100755 --- a/Test/baseResults/spv.300layoutp.vert.out +++ b/Test/baseResults/spv.300layoutp.vert.out @@ -1,10 +1,6 @@ spv.300layoutp.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 115 diff --git a/Test/baseResults/spv.310.bitcast.frag.out b/Test/baseResults/spv.310.bitcast.frag.out index 80df3b1a7ace79f5b65d835de7a57729bee342ea..14e184a47dcb368dc336ff85033eb4727cf308f2 100755 --- a/Test/baseResults/spv.310.bitcast.frag.out +++ b/Test/baseResults/spv.310.bitcast.frag.out @@ -1,10 +1,6 @@ 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 diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out old mode 100755 new mode 100644 index 3eafc2b58e8143a4cb3d8f33069515de71902ba3..095bf39fc97e5bea1efe9352de64129d050e976f --- a/Test/baseResults/spv.310.comp.out +++ b/Test/baseResults/spv.310.comp.out @@ -1,127 +1,124 @@ spv.310.comp Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked compute stage: - - // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 66 +// Id's are bound by 67 Capability Shader 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 52 + EntryPoint GLCompute 4 "main" 53 ExecutionMode 4 LocalSize 16 32 4 Source ESSL 310 Name 4 "main" - Name 12 "outb" - MemberName 12(outb) 0 "f" - MemberName 12(outb) 1 "g" - MemberName 12(outb) 2 "h" - MemberName 12(outb) 3 "uns" - Name 14 "outbname" - Name 18 "s" - Name 23 "outbna" - MemberName 23(outbna) 0 "k" - MemberName 23(outbna) 1 "na" - Name 25 "outbnamena" - Name 41 "i" - Name 47 "outs" - MemberName 47(outs) 0 "s" - MemberName 47(outs) 1 "va" - Name 49 "outnames" - Name 52 "gl_LocalInvocationID" - Decorate 11 ArrayStride 16 - MemberDecorate 12(outb) 0 Offset 0 - MemberDecorate 12(outb) 1 Offset 4 - MemberDecorate 12(outb) 2 Offset 8 - MemberDecorate 12(outb) 3 Offset 16 - Decorate 12(outb) BufferBlock - Decorate 14(outbname) DescriptorSet 0 - MemberDecorate 23(outbna) 0 Offset 0 - MemberDecorate 23(outbna) 1 Offset 16 - Decorate 23(outbna) BufferBlock - Decorate 25(outbnamena) DescriptorSet 0 - Decorate 46 ArrayStride 16 - MemberDecorate 47(outs) 0 Offset 0 - MemberDecorate 47(outs) 1 Offset 16 - Decorate 47(outs) BufferBlock - Decorate 49(outnames) DescriptorSet 0 - Decorate 52(gl_LocalInvocationID) BuiltIn LocalInvocationId - Decorate 65 BuiltIn WorkgroupSize + Name 13 "outb" + MemberName 13(outb) 0 "f" + MemberName 13(outb) 1 "g" + MemberName 13(outb) 2 "h" + MemberName 13(outb) 3 "uns" + Name 15 "outbname" + Name 19 "s" + Name 24 "outbna" + MemberName 24(outbna) 0 "k" + MemberName 24(outbna) 1 "na" + Name 26 "outbnamena" + Name 42 "i" + Name 48 "outs" + MemberName 48(outs) 0 "s" + MemberName 48(outs) 1 "va" + Name 50 "outnames" + Name 53 "gl_LocalInvocationID" + Decorate 12 ArrayStride 16 + MemberDecorate 13(outb) 0 Offset 0 + MemberDecorate 13(outb) 1 Offset 4 + MemberDecorate 13(outb) 2 Offset 8 + MemberDecorate 13(outb) 3 Offset 16 + Decorate 13(outb) BufferBlock + Decorate 15(outbname) DescriptorSet 0 + MemberDecorate 24(outbna) 0 Offset 0 + MemberDecorate 24(outbna) 1 Offset 16 + Decorate 24(outbna) BufferBlock + Decorate 26(outbnamena) DescriptorSet 0 + Decorate 47 ArrayStride 16 + MemberDecorate 48(outs) 0 Offset 0 + MemberDecorate 48(outs) 1 Offset 16 + Decorate 48(outs) BufferBlock + Decorate 50(outnames) DescriptorSet 0 + Decorate 53(gl_LocalInvocationID) BuiltIn LocalInvocationId + Decorate 66 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 - 7: 6(int) Constant 1 - 8: 6(int) Constant 0 - 9: TypeFloat 32 - 10: TypeVector 9(float) 3 - 11: TypeRuntimeArray 10(fvec3) - 12(outb): TypeStruct 9(float) 9(float) 9(float) 11 - 13: TypePointer Uniform 12(outb) - 14(outbname): 13(ptr) Variable Uniform - 15: TypeInt 32 1 - 16: 15(int) Constant 0 - 17: TypePointer Workgroup 9(float) - 18(s): 17(ptr) Variable Workgroup - 20: TypePointer Uniform 9(float) - 22: TypeVector 9(float) 4 - 23(outbna): TypeStruct 15(int) 22(fvec4) - 24: TypePointer Uniform 23(outbna) - 25(outbnamena): 24(ptr) Variable Uniform - 26: 15(int) Constant 1 - 29: TypePointer Uniform 22(fvec4) - 31: 15(int) Constant 3 - 32: 15(int) Constant 18 - 35: 15(int) Constant 17 - 36: 9(float) Constant 1077936128 - 37: 10(fvec3) ConstantComposite 36 36 36 - 38: TypePointer Uniform 10(fvec3) - 40: TypePointer Workgroup 15(int) - 41(i): 40(ptr) Variable Workgroup - 46: TypeRuntimeArray 22(fvec4) - 47(outs): TypeStruct 15(int) 46 - 48: TypePointer Uniform 47(outs) - 49(outnames): 48(ptr) Variable Uniform - 50: TypeVector 6(int) 3 - 51: TypePointer Input 50(ivec3) -52(gl_LocalInvocationID): 51(ptr) Variable Input - 53: TypePointer Input 6(int) - 60: TypePointer Uniform 15(int) - 62: 6(int) Constant 16 - 63: 6(int) Constant 32 - 64: 6(int) Constant 4 - 65: 50(ivec3) ConstantComposite 62 63 64 + 7: 6(int) Constant 2 + 8: 6(int) Constant 1 + 9: 6(int) Constant 0 + 10: TypeFloat 32 + 11: TypeVector 10(float) 3 + 12: TypeRuntimeArray 11(fvec3) + 13(outb): TypeStruct 10(float) 10(float) 10(float) 12 + 14: TypePointer Uniform 13(outb) + 15(outbname): 14(ptr) Variable Uniform + 16: TypeInt 32 1 + 17: 16(int) Constant 0 + 18: TypePointer Workgroup 10(float) + 19(s): 18(ptr) Variable Workgroup + 21: TypePointer Uniform 10(float) + 23: TypeVector 10(float) 4 + 24(outbna): TypeStruct 16(int) 23(fvec4) + 25: TypePointer Uniform 24(outbna) + 26(outbnamena): 25(ptr) Variable Uniform + 27: 16(int) Constant 1 + 30: TypePointer Uniform 23(fvec4) + 32: 16(int) Constant 3 + 33: 16(int) Constant 18 + 36: 16(int) Constant 17 + 37: 10(float) Constant 1077936128 + 38: 11(fvec3) ConstantComposite 37 37 37 + 39: TypePointer Uniform 11(fvec3) + 41: TypePointer Workgroup 16(int) + 42(i): 41(ptr) Variable Workgroup + 47: TypeRuntimeArray 23(fvec4) + 48(outs): TypeStruct 16(int) 47 + 49: TypePointer Uniform 48(outs) + 50(outnames): 49(ptr) Variable Uniform + 51: TypeVector 6(int) 3 + 52: TypePointer Input 51(ivec3) +53(gl_LocalInvocationID): 52(ptr) Variable Input + 54: TypePointer Input 6(int) + 61: TypePointer Uniform 16(int) + 63: 6(int) Constant 16 + 64: 6(int) Constant 32 + 65: 6(int) Constant 4 + 66: 51(ivec3) ConstantComposite 63 64 65 4(main): 2 Function None 3 5: Label - ControlBarrier 7 7 8 - 19: 9(float) Load 18(s) - 21: 20(ptr) AccessChain 14(outbname) 16 - Store 21 19 - 27: 9(float) Load 18(s) - 28: 22(fvec4) CompositeConstruct 27 27 27 27 - 30: 29(ptr) AccessChain 25(outbnamena) 26 - Store 30 28 - 33: 20(ptr) AccessChain 14(outbname) 31 32 8 - 34: 9(float) Load 33 - Store 18(s) 34 - 39: 38(ptr) AccessChain 14(outbname) 31 35 - Store 39 37 - 42: 15(int) Load 41(i) - 43: 9(float) Load 18(s) - 44: 10(fvec3) CompositeConstruct 43 43 43 - 45: 38(ptr) AccessChain 14(outbname) 31 42 - Store 45 44 - 54: 53(ptr) AccessChain 52(gl_LocalInvocationID) 8 - 55: 6(int) Load 54 - 56: 9(float) Load 18(s) - 57: 22(fvec4) CompositeConstruct 56 56 56 56 - 58: 29(ptr) AccessChain 49(outnames) 26 55 - Store 58 57 - 59: 15(int) ArrayLength 14(outbname) 3 - 61: 60(ptr) AccessChain 49(outnames) 16 - Store 61 59 + ControlBarrier 7 8 9 + 20: 10(float) Load 19(s) + 22: 21(ptr) AccessChain 15(outbname) 17 + Store 22 20 + 28: 10(float) Load 19(s) + 29: 23(fvec4) CompositeConstruct 28 28 28 28 + 31: 30(ptr) AccessChain 26(outbnamena) 27 + Store 31 29 + 34: 21(ptr) AccessChain 15(outbname) 32 33 9 + 35: 10(float) Load 34 + Store 19(s) 35 + 40: 39(ptr) AccessChain 15(outbname) 32 36 + Store 40 38 + 43: 16(int) Load 42(i) + 44: 10(float) Load 19(s) + 45: 11(fvec3) CompositeConstruct 44 44 44 + 46: 39(ptr) AccessChain 15(outbname) 32 43 + Store 46 45 + 55: 54(ptr) AccessChain 53(gl_LocalInvocationID) 9 + 56: 6(int) Load 55 + 57: 10(float) Load 19(s) + 58: 23(fvec4) CompositeConstruct 57 57 57 57 + 59: 30(ptr) AccessChain 50(outnames) 27 56 + Store 59 58 + 60: 16(int) ArrayLength 15(outbname) 3 + 62: 61(ptr) AccessChain 50(outnames) 17 + Store 62 60 Return FunctionEnd diff --git a/Test/baseResults/spv.330.geom.out b/Test/baseResults/spv.330.geom.out index 3077769a5087275e4e76e8e4cf39ffc431507b0d..3e81dcbc79bb73972a4e3f6e76c50ab533c1aeda 100644 --- a/Test/baseResults/spv.330.geom.out +++ b/Test/baseResults/spv.330.geom.out @@ -1,8 +1,4 @@ spv.330.geom - -Linked geometry stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 32 diff --git a/Test/baseResults/spv.400.frag.out b/Test/baseResults/spv.400.frag.out index f06b0fcdc3bee7cd96794dfe48223fc232042a47..cb2de968711c692cd31058efdd7a19d86204c2d1 100644 --- a/Test/baseResults/spv.400.frag.out +++ b/Test/baseResults/spv.400.frag.out @@ -1,22 +1,19 @@ spv.400.frag Warning, version 400 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 1114 +// Id's are bound by 1118 Capability Shader + Capability Geometry Capability Float64 Capability ImageGatherExtended Capability ClipDistance Capability SampledRect 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 + EntryPoint Fragment 4 "main" 13 1027 1033 1038 1050 1076 1097 1099 1105 1107 1116 ExecutionMode 4 OriginUpperLeft Source GLSL 400 SourceExtension "GL_ARB_separate_shader_objects" @@ -55,6 +52,8 @@ Linked fragment stage: Name 1099 "vl2" Name 1105 "uo" Name 1107 "u" + Name 1115 "id" + Name 1116 "gl_PrimitiveID" Decorate 17(u2drs) DescriptorSet 0 Decorate 1025(arrayedSampler) DescriptorSet 0 Decorate 1027(i) Flat @@ -64,6 +63,8 @@ Linked fragment stage: Decorate 1097(gl_FragCoord) BuiltIn FragCoord Decorate 1099(vl2) Location 6 Decorate 1107(u) Flat + Decorate 1116(gl_PrimitiveID) Flat + Decorate 1116(gl_PrimitiveID) BuiltIn PrimitiveId 2: TypeVoid 3: TypeFunction 2 10: TypeFloat 32 @@ -185,9 +186,12 @@ Linked fragment stage: 1105(uo): 1104(ptr) Variable Output 1106: TypePointer Input 32(int) 1107(u): 1106(ptr) Variable Input + 1114: TypePointer Function 23(int) +1116(gl_PrimitiveID): 1026(ptr) Variable Input 4(main): 2 Function None 3 5: Label 1019(v): 1018(ptr) Variable Function + 1115(id): 1114(ptr) Variable Function 1028: 23(int) Load 1027(i) 1030: 1029(ptr) AccessChain 1025(arrayedSampler) 1028 1031: 1021 Load 1030 @@ -242,6 +246,8 @@ Linked fragment stage: Store 1105(uo) 1111 1112: 2 FunctionCall 6(foo23() 1113: 2 FunctionCall 8(doubles() + 1117: 23(int) Load 1116(gl_PrimitiveID) + Store 1115(id) 1117 Return FunctionEnd 6(foo23(): 2 Function None 3 diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out old mode 100755 new mode 100644 index bcfd963e753ab9c1862e1cb4563a5e7eca858bd4..68b142e5af05d4d9d0859fd66ed1a4da72eb3d72 --- a/Test/baseResults/spv.400.tesc.out +++ b/Test/baseResults/spv.400.tesc.out @@ -1,10 +1,6 @@ spv.400.tesc Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - -Linked tessellation control stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 93 @@ -14,26 +10,26 @@ Linked tessellation control stage: Capability ClipDistance 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint TessellationControl 4 "main" 23 40 43 46 54 68 73 79 83 84 87 88 91 92 + EntryPoint TessellationControl 4 "main" 24 41 44 47 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 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 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 50 "gl_PerVertex" MemberName 50(gl_PerVertex) 0 "gl_Position" MemberName 50(gl_PerVertex) 1 "gl_PointSize" @@ -49,13 +45,13 @@ Linked tessellation control stage: 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 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 50(gl_PerVertex) 0 BuiltIn Position MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance @@ -72,106 +68,106 @@ Linked tessellation control stage: 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 - 7: 6(int) Constant 1 - 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 + 7: 6(int) Constant 2 + 8: 6(int) Constant 1 + 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: TypeArray 14(float) 7 +50(gl_PerVertex): TypeStruct 15(fvec4) 14(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 + 57: TypePointer Output 15(fvec4) + 61: TypePointer Output 14(float) + 66: TypeArray 14(float) 51 67: TypePointer Output 66 68(gl_TessLevelOuter): 67(ptr) Variable Output - 69: 9(int) Constant 3 - 70: 13(float) Constant 1078774989 + 69: 10(int) Constant 3 + 70: 14(float) Constant 1078774989 72: TypePointer Output 49 73(gl_TessLevelInner): 72(ptr) Variable Output - 74: 13(float) Constant 1067869798 - 76: TypeArray 9(int) 51 + 74: 14(float) Constant 1067869798 + 76: TypeArray 10(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 + 80: TypeVector 14(float) 2 + 81: TypeArray 80(fvec2) 21 82: TypePointer Input 81 83(inb): 82(ptr) Variable Input 84(ind): 82(ptr) Variable Input - 85: TypeArray 14(fvec4) 20 + 85: TypeArray 15(fvec4) 21 86: TypePointer Input 85 87(ivla): 86(ptr) Variable Input 88(ivlb): 86(ptr) Variable Input - 89: TypeArray 14(fvec4) 51 + 89: TypeArray 15(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 - 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 + 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 + ControlBarrier 7 8 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 + 55: 10(int) Load 47(gl_InvocationID) + 56: 15(fvec4) Load 17(p) + 58: 57(ptr) AccessChain 54(gl_out) 55 26 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 + 59: 10(int) Load 47(gl_InvocationID) + 60: 14(float) Load 31(ps) + 62: 61(ptr) AccessChain 54(gl_out) 59 25 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 + 63: 10(int) Load 47(gl_InvocationID) + 64: 14(float) Load 35(cd) + 65: 61(ptr) AccessChain 54(gl_out) 63 36 25 Store 65 64 71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69 Store 71 70 - 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 24 + 75: 61(ptr) AccessChain 73(gl_TessLevelInner) 25 Store 75 74 Return FunctionEnd diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out index 51534b122feab8dcba1afdb403a6dc0f316cd103..0c62bed6d2934734f663880ad4c85ba7c3f1528e 100755 --- a/Test/baseResults/spv.400.tese.out +++ b/Test/baseResults/spv.400.tese.out @@ -1,10 +1,6 @@ spv.400.tese Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - -Linked tessellation evaluation stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 96 diff --git a/Test/baseResults/spv.420.geom.out b/Test/baseResults/spv.420.geom.out index 78e3aaa284735d4a021f32f3a832c9b85b8e5837..6413d5a4521ecfebb7dd0511778553d87ffa7f19 100644 --- a/Test/baseResults/spv.420.geom.out +++ b/Test/baseResults/spv.420.geom.out @@ -1,10 +1,6 @@ spv.420.geom Warning, version 420 is not yet complete; most version-specific features are present, but some are missing. - -Linked geometry stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 72 diff --git a/Test/baseResults/spv.430.frag.out b/Test/baseResults/spv.430.frag.out index 0058e9c810e7b7c9917ed2dd66d882460b371e26..abe2a58a0eaa05065cbfeb582891252e6c43340a 100755 --- a/Test/baseResults/spv.430.frag.out +++ b/Test/baseResults/spv.430.frag.out @@ -1,10 +1,6 @@ spv.430.frag Warning, version 430 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 24 diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out index c3ad2b9286614c790b37c6023ff89958bb21805a..8ea95d1a73ee92b4bc5e6af591a1767bb18c21fb 100755 --- a/Test/baseResults/spv.430.vert.out +++ b/Test/baseResults/spv.430.vert.out @@ -1,10 +1,6 @@ spv.430.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 66 diff --git a/Test/baseResults/spv.450.tesc.out b/Test/baseResults/spv.450.tesc.out index 2900fdfc65a272c393da26394a6a51f1c6388432..a0bf3dd3babcf4fb3c399d320a77b281ca51e041 100755 --- a/Test/baseResults/spv.450.tesc.out +++ b/Test/baseResults/spv.450.tesc.out @@ -1,10 +1,6 @@ spv.450.tesc Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked tessellation control stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 23 diff --git a/Test/baseResults/spv.AofA.frag.out b/Test/baseResults/spv.AofA.frag.out index 0dbf69ceda26eb7e37388ba34afe995674e4cd91..4eb756301b557a0821951b150adeeeb191255777 100644 --- a/Test/baseResults/spv.AofA.frag.out +++ b/Test/baseResults/spv.AofA.frag.out @@ -1,10 +1,6 @@ spv.AofA.frag Warning, version 430 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 104 diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out index f8b666d5377cd2ef85e09958d79f3f60f9bb46e3..1a74192ee513a1b380807d0f50a5e7840b036cf6 100755 --- a/Test/baseResults/spv.Operations.frag.out +++ b/Test/baseResults/spv.Operations.frag.out @@ -1,10 +1,6 @@ spv.Operations.frag Warning, version 450 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 509 diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out index 3d391c312ce19120379759497f5ca5050db8eade..b319cfd13ddf9d7718b94e817ed81a9870c7195e 100755 --- a/Test/baseResults/spv.accessChain.frag.out +++ b/Test/baseResults/spv.accessChain.frag.out @@ -1,10 +1,6 @@ spv.accessChain.frag Warning, version 420 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 206 diff --git a/Test/baseResults/spv.aggOps.frag.out b/Test/baseResults/spv.aggOps.frag.out index 5a19d2f4475313026b5fee3c030cef834e0f08aa..c3ceb9a67b297b5305b68067dd757ad61cd0205c 100644 --- a/Test/baseResults/spv.aggOps.frag.out +++ b/Test/baseResults/spv.aggOps.frag.out @@ -3,10 +3,6 @@ Warning, version 450 is not yet complete; most version-specific features are pre WARNING: 0:4: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: "precision mediump int; precision highp float;" - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 215 diff --git a/Test/baseResults/spv.always-discard.frag.out b/Test/baseResults/spv.always-discard.frag.out index 9102b3bb527d3ea6e4a8420316e334c18cd4715d..652d45c846edaf44d0fd1fd973b9b72ae915c008 100644 --- a/Test/baseResults/spv.always-discard.frag.out +++ b/Test/baseResults/spv.always-discard.frag.out @@ -1,8 +1,4 @@ spv.always-discard.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 84 diff --git a/Test/baseResults/spv.always-discard2.frag.out b/Test/baseResults/spv.always-discard2.frag.out index 7984c8322fd616af41088760567d8ad6f6cc9e07..0bbb9eee8906c60d185e01cf6c9c7e31f8952910 100755 --- a/Test/baseResults/spv.always-discard2.frag.out +++ b/Test/baseResults/spv.always-discard2.frag.out @@ -1,8 +1,4 @@ spv.always-discard2.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 40 diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out index 01e09323b9208af27fd37edf2e9fb351bd32945f..97c7f6e3ab4a9f0be1262cce93a254d215b8a2e4 100755 --- a/Test/baseResults/spv.atomic.comp.out +++ b/Test/baseResults/spv.atomic.comp.out @@ -1,10 +1,6 @@ spv.atomic.comp Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked compute stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 73 diff --git a/Test/baseResults/spv.bitCast.frag.out b/Test/baseResults/spv.bitCast.frag.out index b0dc810494348a682b2f9e841c1c3772135c2267..07dd729e6d5e68228f10032468241fa5478fb4ef 100644 --- a/Test/baseResults/spv.bitCast.frag.out +++ b/Test/baseResults/spv.bitCast.frag.out @@ -1,10 +1,6 @@ spv.bitCast.frag Warning, version 450 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 172 diff --git a/Test/baseResults/spv.bool.vert.out b/Test/baseResults/spv.bool.vert.out index 49a69a0eb8807099f16f39a8bf212b84dc56b780..f84687a5bc0eaf5c507d168224031f70b92af1be 100644 --- a/Test/baseResults/spv.bool.vert.out +++ b/Test/baseResults/spv.bool.vert.out @@ -1,10 +1,6 @@ spv.bool.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 49 diff --git a/Test/baseResults/spv.boolInBlock.frag.out b/Test/baseResults/spv.boolInBlock.frag.out index 6e7cf40eed23e6ae95bdf3836926e432d04ed7d3..2181f26d686e834c0c1a1a4397effea282275d91 100644 --- a/Test/baseResults/spv.boolInBlock.frag.out +++ b/Test/baseResults/spv.boolInBlock.frag.out @@ -1,10 +1,6 @@ spv.boolInBlock.frag Warning, version 450 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 107 diff --git a/Test/baseResults/spv.branch-return.vert.out b/Test/baseResults/spv.branch-return.vert.out index 217a863fc9f1c12352df874005ccc8a2e9056d8e..9093135b9544ca574ff489640e3c0531b34152c3 100644 --- a/Test/baseResults/spv.branch-return.vert.out +++ b/Test/baseResults/spv.branch-return.vert.out @@ -1,10 +1,6 @@ spv.branch-return.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 38 diff --git a/Test/baseResults/spv.buffer.autoassign.frag.out b/Test/baseResults/spv.buffer.autoassign.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..f2c8d6d9239917518c61494d5b238f856cfab3a9 --- /dev/null +++ b/Test/baseResults/spv.buffer.autoassign.frag.out @@ -0,0 +1,85 @@ +spv.buffer.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 45 + + Capability Shader + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 41 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "PS_OUTPUT" + MemberName 8(PS_OUTPUT) 0 "Color" + Name 10 "psout" + Name 13 "MyUB1" + MemberName 13(MyUB1) 0 "g_a" + MemberName 13(MyUB1) 1 "g_b" + Name 15 "" + Name 25 "MyUB2" + MemberName 25(MyUB2) 0 "g_c" + Name 27 "" + Name 31 "MyUB3" + MemberName 31(MyUB3) 0 "g_d" + Name 33 "" + Name 41 "Color" + MemberDecorate 13(MyUB1) 0 Offset 0 + MemberDecorate 13(MyUB1) 1 Offset 4 + Decorate 13(MyUB1) Block + Decorate 15 DescriptorSet 0 + Decorate 15 Binding 20 + MemberDecorate 25(MyUB2) 0 Offset 0 + Decorate 25(MyUB2) Block + Decorate 27 DescriptorSet 0 + Decorate 27 Binding 15 + MemberDecorate 31(MyUB3) 0 Offset 0 + Decorate 31(MyUB3) Block + Decorate 33 DescriptorSet 0 + Decorate 33 Binding 16 + Decorate 41(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8(PS_OUTPUT): TypeStruct 7(fvec4) + 9: TypePointer Function 8(PS_OUTPUT) + 11: TypeInt 32 1 + 12: 11(int) Constant 0 + 13(MyUB1): TypeStruct 6(float) 11(int) + 14: TypePointer Uniform 13(MyUB1) + 15: 14(ptr) Variable Uniform + 16: TypePointer Uniform 6(float) + 19: 11(int) Constant 1 + 20: TypePointer Uniform 11(int) + 25(MyUB2): TypeStruct 6(float) + 26: TypePointer Uniform 25(MyUB2) + 27: 26(ptr) Variable Uniform + 31(MyUB3): TypeStruct 6(float) + 32: TypePointer Uniform 31(MyUB3) + 33: 32(ptr) Variable Uniform + 38: TypePointer Function 7(fvec4) + 40: TypePointer Output 7(fvec4) + 41(Color): 40(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 10(psout): 9(ptr) Variable Function + 17: 16(ptr) AccessChain 15 12 + 18: 6(float) Load 17 + 21: 20(ptr) AccessChain 15 19 + 22: 11(int) Load 21 + 23: 6(float) ConvertSToF 22 + 24: 6(float) FAdd 18 23 + 28: 16(ptr) AccessChain 27 12 + 29: 6(float) Load 28 + 30: 6(float) FAdd 24 29 + 34: 16(ptr) AccessChain 33 12 + 35: 6(float) Load 34 + 36: 6(float) FAdd 30 35 + 37: 7(fvec4) CompositeConstruct 36 36 36 36 + 39: 38(ptr) AccessChain 10(psout) 12 + Store 39 37 + 42: 38(ptr) AccessChain 10(psout) 12 + 43: 7(fvec4) Load 42 + Store 41(Color) 43 + Return + FunctionEnd diff --git a/Test/baseResults/spv.conditionalDiscard.frag.out b/Test/baseResults/spv.conditionalDiscard.frag.out index ef7e3b4cf91523c4d7496eb8ad6f120183f8ce59..b3cb8e866a7d0838dc173a9caf0751c8d779cad9 100755 --- a/Test/baseResults/spv.conditionalDiscard.frag.out +++ b/Test/baseResults/spv.conditionalDiscard.frag.out @@ -1,10 +1,6 @@ spv.conditionalDiscard.frag Warning, version 400 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 36 diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out index bc91569857ccec998c82f9f73c635ba1f873c208..b38d84e8266bed00a4f7e2a9d3f41e7b7cc8c63a 100755 --- a/Test/baseResults/spv.conversion.frag.out +++ b/Test/baseResults/spv.conversion.frag.out @@ -1,8 +1,4 @@ spv.conversion.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 455 diff --git a/Test/baseResults/spv.dataOut.frag.out b/Test/baseResults/spv.dataOut.frag.out index 651c96e3d157d290106d159fe3bf53f48509dcf1..9dbe5d124b315463ed3d8f94f8280e2155f1f5d0 100755 --- a/Test/baseResults/spv.dataOut.frag.out +++ b/Test/baseResults/spv.dataOut.frag.out @@ -1,8 +1,4 @@ spv.dataOut.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 20 diff --git a/Test/baseResults/spv.dataOutIndirect.frag.out b/Test/baseResults/spv.dataOutIndirect.frag.out index d1227a5bba015ee5775245e4b84948da1936aa4c..663092fd32436880809c7363a12daf40d58628c3 100755 --- a/Test/baseResults/spv.dataOutIndirect.frag.out +++ b/Test/baseResults/spv.dataOutIndirect.frag.out @@ -1,8 +1,4 @@ spv.dataOutIndirect.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 26 diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out index 797c65180b7658ede2aee075389f7424c4cac4bb..1523fab59e84cb1d84c70a782606600202df0636 100755 --- a/Test/baseResults/spv.dataOutIndirect.vert.out +++ b/Test/baseResults/spv.dataOutIndirect.vert.out @@ -1,10 +1,6 @@ spv.dataOutIndirect.vert WARNING: 0:3: attribute deprecated in version 130; may be removed in future release - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 38 diff --git a/Test/baseResults/spv.deepRvalue.frag.out b/Test/baseResults/spv.deepRvalue.frag.out index b4894383e5cc1644c4d6cc0969f1faa776a5c6f7..29cf848873af4c1703636bd56dbf90f50651b49c 100644 --- a/Test/baseResults/spv.deepRvalue.frag.out +++ b/Test/baseResults/spv.deepRvalue.frag.out @@ -1,8 +1,4 @@ spv.deepRvalue.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 155 diff --git a/Test/baseResults/spv.depthOut.frag.out b/Test/baseResults/spv.depthOut.frag.out index 6242391fd3a65629490add2a7ad3ce16506741f4..247b2f3d084ce192aa5918b587ebad59ff3a4ea9 100755 --- a/Test/baseResults/spv.depthOut.frag.out +++ b/Test/baseResults/spv.depthOut.frag.out @@ -1,10 +1,6 @@ spv.depthOut.frag Warning, version 450 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 15 diff --git a/Test/baseResults/spv.discard-dce.frag.out b/Test/baseResults/spv.discard-dce.frag.out index 7668233ba20e563845b07bf5643ebc7ee99a89ba..173ea260ae94d5c2168b863b2d74f623edc47dc7 100755 --- a/Test/baseResults/spv.discard-dce.frag.out +++ b/Test/baseResults/spv.discard-dce.frag.out @@ -1,8 +1,4 @@ spv.discard-dce.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 84 diff --git a/Test/baseResults/spv.do-simple.vert.out b/Test/baseResults/spv.do-simple.vert.out index c0862d1e199a9c784b66fda2b307399a6b6adc83..d6d4c28f338354e4b2c5059817376057fb4fd868 100755 --- a/Test/baseResults/spv.do-simple.vert.out +++ b/Test/baseResults/spv.do-simple.vert.out @@ -1,10 +1,6 @@ spv.do-simple.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 21 diff --git a/Test/baseResults/spv.do-while-continue-break.vert.out b/Test/baseResults/spv.do-while-continue-break.vert.out index ebfe85d0e6b1d9809d2df30004b78f4f6c7a2453..d1d0c85c98a027008005abba5770317f9f4f6ac3 100644 --- a/Test/baseResults/spv.do-while-continue-break.vert.out +++ b/Test/baseResults/spv.do-while-continue-break.vert.out @@ -1,10 +1,6 @@ spv.do-while-continue-break.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 43 diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out index 1d12af108d4dcd4f6b8e415fa451266ee384a19a..9b8cee7013fa98f64047f56c2b162a034ad92826 100755 --- a/Test/baseResults/spv.doWhileLoop.frag.out +++ b/Test/baseResults/spv.doWhileLoop.frag.out @@ -1,8 +1,4 @@ spv.doWhileLoop.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 34 diff --git a/Test/baseResults/spv.double.comp.out b/Test/baseResults/spv.double.comp.out index 766f839a0bcf0462c4c2faab7b12d1373521d84c..3b1bdc89ca8763c4bdd5743ecff4dd7644bd136b 100755 --- a/Test/baseResults/spv.double.comp.out +++ b/Test/baseResults/spv.double.comp.out @@ -1,10 +1,6 @@ spv.double.comp Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - -Linked compute stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 60 diff --git a/Test/baseResults/spv.earlyReturnDiscard.frag.out b/Test/baseResults/spv.earlyReturnDiscard.frag.out index 7e6409e63fa2367f012e4448e0e89a6ce0f08a1f..41441b7f6f3a4ea6a19ea4ce44560064ed235fd8 100755 --- a/Test/baseResults/spv.earlyReturnDiscard.frag.out +++ b/Test/baseResults/spv.earlyReturnDiscard.frag.out @@ -1,8 +1,4 @@ spv.earlyReturnDiscard.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 110 diff --git a/Test/baseResults/spv.float16.frag.out b/Test/baseResults/spv.float16.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..5499b7e8e856a9baaa89773bf4b4db317c7ad2fa --- /dev/null +++ b/Test/baseResults/spv.float16.frag.out @@ -0,0 +1,832 @@ +spv.float16.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 534 + + Capability Shader + Capability Float16 + Capability Float64 + Capability Int64 + Capability DerivativeControl + Capability InterpolationFunction + Extension "SPV_AMD_gpu_shader_half_float" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 465 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + SourceExtension "GL_AMD_gpu_shader_half_float" + SourceExtension "GL_ARB_gpu_shader_int64" + Name 4 "main" + Name 6 "literal(" + Name 8 "operators(" + Name 10 "typeCast(" + Name 12 "builtinAngleTrigFuncs(" + Name 14 "builtinExpFuncs(" + Name 16 "builtinCommonFuncs(" + Name 18 "builtinPackUnpackFuncs(" + Name 20 "builtinGeometryFuncs(" + Name 22 "builtinMatrixFuncs(" + Name 24 "builtinVecRelFuncs(" + Name 26 "builtinFragProcFuncs(" + Name 31 "f16v" + Name 42 "f16v" + Name 64 "f16m" + Name 87 "f16" + Name 111 "b" + Name 153 "f16v" + Name 156 "bv" + Name 167 "fv" + Name 175 "dv" + Name 186 "iv" + Name 193 "uv" + Name 201 "i64v" + Name 209 "u64v" + Name 216 "f16v2" + Name 217 "f16v1" + Name 249 "f16v2" + Name 250 "f16v1" + Name 266 "f16v2" + Name 267 "f16v1" + Name 288 "f16" + Name 292 "f16v3" + Name 332 "bv" + Name 353 "b" + Name 363 "iv" + Name 364 "ResType" + Name 372 "u" + Name 373 "f16v" + Name 378 "f16" + Name 379 "f16v1" + Name 383 "f16v2" + Name 389 "f16v3" + Name 408 "f16m3" + Name 409 "f16m1" + Name 411 "f16m2" + Name 420 "f16v1" + Name 422 "f16v2" + Name 427 "f16m4" + Name 430 "f16" + Name 433 "f16m5" + Name 438 "f16m6" + Name 439 "f16m7" + Name 442 "bv" + Name 443 "f16v1" + Name 445 "f16v2" + Name 463 "f16v" + Name 465 "if16v" + Name 514 "S" + MemberName 514(S) 0 "x" + MemberName 514(S) 1 "y" + MemberName 514(S) 2 "z" + Name 516 "B1" + MemberName 516(B1) 0 "a" + MemberName 516(B1) 1 "b" + MemberName 516(B1) 2 "c" + MemberName 516(B1) 3 "d" + MemberName 516(B1) 4 "e" + MemberName 516(B1) 5 "f" + MemberName 516(B1) 6 "g" + MemberName 516(B1) 7 "h" + Name 518 "" + Name 521 "S" + MemberName 521(S) 0 "x" + MemberName 521(S) 1 "y" + MemberName 521(S) 2 "z" + Name 523 "B2" + MemberName 523(B2) 0 "o" + MemberName 523(B2) 1 "p" + MemberName 523(B2) 2 "q" + MemberName 523(B2) 3 "r" + MemberName 523(B2) 4 "s" + MemberName 523(B2) 5 "t" + MemberName 523(B2) 6 "u" + MemberName 523(B2) 7 "v" + Name 525 "" + Decorate 512 ArrayStride 16 + Decorate 513 ArrayStride 32 + MemberDecorate 514(S) 0 Offset 0 + MemberDecorate 514(S) 1 Offset 4 + MemberDecorate 514(S) 2 Offset 8 + Decorate 515 ArrayStride 16 + MemberDecorate 516(B1) 0 Offset 0 + MemberDecorate 516(B1) 1 Offset 4 + MemberDecorate 516(B1) 2 Offset 8 + MemberDecorate 516(B1) 3 Offset 16 + MemberDecorate 516(B1) 4 ColMajor + MemberDecorate 516(B1) 4 Offset 48 + MemberDecorate 516(B1) 4 MatrixStride 16 + MemberDecorate 516(B1) 5 ColMajor + MemberDecorate 516(B1) 5 Offset 80 + MemberDecorate 516(B1) 5 MatrixStride 16 + MemberDecorate 516(B1) 6 Offset 144 + MemberDecorate 516(B1) 7 Offset 160 + Decorate 516(B1) Block + Decorate 518 DescriptorSet 0 + Decorate 519 ArrayStride 2 + Decorate 520 ArrayStride 12 + MemberDecorate 521(S) 0 Offset 0 + MemberDecorate 521(S) 1 Offset 4 + MemberDecorate 521(S) 2 Offset 8 + Decorate 522 ArrayStride 16 + MemberDecorate 523(B2) 0 Offset 0 + MemberDecorate 523(B2) 1 Offset 4 + MemberDecorate 523(B2) 2 Offset 8 + MemberDecorate 523(B2) 3 Offset 14 + MemberDecorate 523(B2) 4 RowMajor + MemberDecorate 523(B2) 4 Offset 20 + MemberDecorate 523(B2) 4 MatrixStride 4 + MemberDecorate 523(B2) 5 RowMajor + MemberDecorate 523(B2) 5 Offset 32 + MemberDecorate 523(B2) 5 MatrixStride 4 + MemberDecorate 523(B2) 6 Offset 56 + MemberDecorate 523(B2) 7 Offset 72 + Decorate 523(B2) BufferBlock + Decorate 525 DescriptorSet 0 + Decorate 526 SpecId 100 + Decorate 527 SpecId 101 + Decorate 528 SpecId 102 + 2: TypeVoid + 3: TypeFunction 2 + 28: TypeFloat 16 + 29: TypeVector 28(float) 2 + 30: TypePointer Function 29(fvec2) + 32: 28(float) Constant 16 + 33: TypeInt 32 0 + 34: 33(int) Constant 0 + 35: TypePointer Function 28(float) + 37: 28(float) Constant 46080 + 38: 28(float) Constant 10158 + 39: 29(fvec2) ConstantComposite 37 38 + 56: 28(float) Constant 15360 + 62: TypeMatrix 29(fvec2) 2 + 63: TypePointer Function 62 + 90: 33(int) Constant 1 + 109: TypeBool + 110: TypePointer Function 109(bool) + 151: TypeVector 28(float) 3 + 152: TypePointer Function 151(fvec3) + 154: TypeVector 109(bool) 3 + 155: TypePointer Function 154(bvec3) + 158: 28(float) Constant 0 + 159: 151(fvec3) ConstantComposite 158 158 158 + 160: 151(fvec3) ConstantComposite 56 56 56 + 164: TypeFloat 32 + 165: TypeVector 164(float) 3 + 166: TypePointer Function 165(fvec3) + 172: TypeFloat 64 + 173: TypeVector 172(float) 3 + 174: TypePointer Function 173(fvec3) + 183: TypeInt 32 1 + 184: TypeVector 183(int) 3 + 185: TypePointer Function 184(ivec3) + 191: TypeVector 33(int) 3 + 192: TypePointer Function 191(ivec3) + 198: TypeInt 64 1 + 199: TypeVector 198(int) 3 + 200: TypePointer Function 199(ivec3) + 206: TypeInt 64 0 + 207: TypeVector 206(int) 3 + 208: TypePointer Function 207(ivec3) + 214: TypeVector 28(float) 4 + 215: TypePointer Function 214(fvec4) + 364(ResType): TypeStruct 151(fvec3) 184(ivec3) + 371: TypePointer Function 33(int) + 406: TypeMatrix 151(fvec3) 2 + 407: TypePointer Function 406 + 425: TypeMatrix 29(fvec2) 3 + 426: TypePointer Function 425 + 431: TypeMatrix 151(fvec3) 3 + 432: TypePointer Function 431 + 436: TypeMatrix 214(fvec4) 4 + 437: TypePointer Function 436 + 464: TypePointer Input 151(fvec3) + 465(if16v): 464(ptr) Variable Input + 466: TypePointer Input 28(float) + 503: 183(int) Constant 1 + 508: 28(float) Constant 14336 + 509: 29(fvec2) ConstantComposite 508 508 + 511: 33(int) Constant 2 + 512: TypeArray 28(float) 511 + 513: TypeArray 406 511 + 514(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) + 515: TypeArray 514(S) 511 + 516(B1): TypeStruct 28(float) 29(fvec2) 151(fvec3) 512 406 513 514(S) 515 + 517: TypePointer Uniform 516(B1) + 518: 517(ptr) Variable Uniform + 519: TypeArray 28(float) 511 + 520: TypeArray 406 511 + 521(S): TypeStruct 28(float) 29(fvec2) 151(fvec3) + 522: TypeArray 521(S) 511 + 523(B2): TypeStruct 28(float) 29(fvec2) 151(fvec3) 519 406 520 521(S) 522 + 524: TypePointer Uniform 523(B2) + 525: 524(ptr) Variable Uniform + 526: 28(float) SpecConstant 12288 + 527: 164(float) SpecConstant 1048576000 + 528: 172(float) SpecConstant 0 1071644672 + 529: 164(float) SpecConstantOp 115 526 + 530: 164(float) SpecConstantOp 115 526 + 531: 172(float) SpecConstantOp 115 530 + 532: 28(float) SpecConstantOp 115 527 + 533: 28(float) SpecConstantOp 115 528 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd + 6(literal(): 2 Function None 3 + 7: Label + 31(f16v): 30(ptr) Variable Function + 36: 35(ptr) AccessChain 31(f16v) 34 + Store 36 32 + 40: 29(fvec2) Load 31(f16v) + 41: 29(fvec2) FAdd 40 39 + Store 31(f16v) 41 + Return + FunctionEnd + 8(operators(): 2 Function None 3 + 9: Label + 42(f16v): 30(ptr) Variable Function + 64(f16m): 63(ptr) Variable Function + 87(f16): 35(ptr) Variable Function + 111(b): 110(ptr) Variable Function + 43: 29(fvec2) Load 42(f16v) + 44: 29(fvec2) Load 42(f16v) + 45: 29(fvec2) FAdd 44 43 + Store 42(f16v) 45 + 46: 29(fvec2) Load 42(f16v) + 47: 29(fvec2) Load 42(f16v) + 48: 29(fvec2) FSub 47 46 + Store 42(f16v) 48 + 49: 29(fvec2) Load 42(f16v) + 50: 29(fvec2) Load 42(f16v) + 51: 29(fvec2) FMul 50 49 + Store 42(f16v) 51 + 52: 29(fvec2) Load 42(f16v) + 53: 29(fvec2) Load 42(f16v) + 54: 29(fvec2) FDiv 53 52 + Store 42(f16v) 54 + 55: 29(fvec2) Load 42(f16v) + 57: 29(fvec2) CompositeConstruct 56 56 + 58: 29(fvec2) FAdd 55 57 + Store 42(f16v) 58 + 59: 29(fvec2) Load 42(f16v) + 60: 29(fvec2) CompositeConstruct 56 56 + 61: 29(fvec2) FSub 59 60 + Store 42(f16v) 61 + 65: 62 Load 64(f16m) + 66: 29(fvec2) CompositeConstruct 56 56 + 67: 29(fvec2) CompositeExtract 65 0 + 68: 29(fvec2) FAdd 67 66 + 69: 29(fvec2) CompositeExtract 65 1 + 70: 29(fvec2) FAdd 69 66 + 71: 62 CompositeConstruct 68 70 + Store 64(f16m) 71 + 72: 62 Load 64(f16m) + 73: 29(fvec2) CompositeConstruct 56 56 + 74: 29(fvec2) CompositeExtract 72 0 + 75: 29(fvec2) FSub 74 73 + 76: 29(fvec2) CompositeExtract 72 1 + 77: 29(fvec2) FSub 76 73 + 78: 62 CompositeConstruct 75 77 + Store 64(f16m) 78 + 79: 29(fvec2) Load 42(f16v) + 80: 29(fvec2) FNegate 79 + Store 42(f16v) 80 + 81: 62 Load 64(f16m) + 82: 29(fvec2) CompositeExtract 81 0 + 83: 29(fvec2) FNegate 82 + 84: 29(fvec2) CompositeExtract 81 1 + 85: 29(fvec2) FNegate 84 + 86: 62 CompositeConstruct 83 85 + Store 64(f16m) 86 + 88: 35(ptr) AccessChain 42(f16v) 34 + 89: 28(float) Load 88 + 91: 35(ptr) AccessChain 42(f16v) 90 + 92: 28(float) Load 91 + 93: 28(float) FAdd 89 92 + Store 87(f16) 93 + 94: 35(ptr) AccessChain 42(f16v) 34 + 95: 28(float) Load 94 + 96: 35(ptr) AccessChain 42(f16v) 90 + 97: 28(float) Load 96 + 98: 28(float) FSub 95 97 + Store 87(f16) 98 + 99: 35(ptr) AccessChain 42(f16v) 34 + 100: 28(float) Load 99 + 101: 35(ptr) AccessChain 42(f16v) 90 + 102: 28(float) Load 101 + 103: 28(float) FMul 100 102 + Store 87(f16) 103 + 104: 35(ptr) AccessChain 42(f16v) 34 + 105: 28(float) Load 104 + 106: 35(ptr) AccessChain 42(f16v) 90 + 107: 28(float) Load 106 + 108: 28(float) FDiv 105 107 + Store 87(f16) 108 + 112: 35(ptr) AccessChain 42(f16v) 34 + 113: 28(float) Load 112 + 114: 28(float) Load 87(f16) + 115: 109(bool) FOrdNotEqual 113 114 + Store 111(b) 115 + 116: 35(ptr) AccessChain 42(f16v) 90 + 117: 28(float) Load 116 + 118: 28(float) Load 87(f16) + 119: 109(bool) FOrdEqual 117 118 + Store 111(b) 119 + 120: 35(ptr) AccessChain 42(f16v) 34 + 121: 28(float) Load 120 + 122: 28(float) Load 87(f16) + 123: 109(bool) FOrdGreaterThan 121 122 + Store 111(b) 123 + 124: 35(ptr) AccessChain 42(f16v) 90 + 125: 28(float) Load 124 + 126: 28(float) Load 87(f16) + 127: 109(bool) FOrdLessThan 125 126 + Store 111(b) 127 + 128: 35(ptr) AccessChain 42(f16v) 34 + 129: 28(float) Load 128 + 130: 28(float) Load 87(f16) + 131: 109(bool) FOrdGreaterThanEqual 129 130 + Store 111(b) 131 + 132: 35(ptr) AccessChain 42(f16v) 90 + 133: 28(float) Load 132 + 134: 28(float) Load 87(f16) + 135: 109(bool) FOrdLessThanEqual 133 134 + Store 111(b) 135 + 136: 29(fvec2) Load 42(f16v) + 137: 28(float) Load 87(f16) + 138: 29(fvec2) VectorTimesScalar 136 137 + Store 42(f16v) 138 + 139: 62 Load 64(f16m) + 140: 28(float) Load 87(f16) + 141: 62 MatrixTimesScalar 139 140 + Store 64(f16m) 141 + 142: 62 Load 64(f16m) + 143: 29(fvec2) Load 42(f16v) + 144: 29(fvec2) MatrixTimesVector 142 143 + Store 42(f16v) 144 + 145: 29(fvec2) Load 42(f16v) + 146: 62 Load 64(f16m) + 147: 29(fvec2) VectorTimesMatrix 145 146 + Store 42(f16v) 147 + 148: 62 Load 64(f16m) + 149: 62 Load 64(f16m) + 150: 62 MatrixTimesMatrix 148 149 + Store 64(f16m) 150 + Return + FunctionEnd + 10(typeCast(): 2 Function None 3 + 11: Label + 153(f16v): 152(ptr) Variable Function + 156(bv): 155(ptr) Variable Function + 167(fv): 166(ptr) Variable Function + 175(dv): 174(ptr) Variable Function + 186(iv): 185(ptr) Variable Function + 193(uv): 192(ptr) Variable Function + 201(i64v): 200(ptr) Variable Function + 209(u64v): 208(ptr) Variable Function + 157: 154(bvec3) Load 156(bv) + 161: 151(fvec3) Select 157 160 159 + Store 153(f16v) 161 + 162: 151(fvec3) Load 153(f16v) + 163: 154(bvec3) FOrdNotEqual 162 159 + Store 156(bv) 163 + 168: 165(fvec3) Load 167(fv) + 169: 151(fvec3) FConvert 168 + Store 153(f16v) 169 + 170: 151(fvec3) Load 153(f16v) + 171: 165(fvec3) FConvert 170 + Store 167(fv) 171 + 176: 173(fvec3) Load 175(dv) + 177: 151(fvec3) FConvert 176 + Store 153(f16v) 177 + 178: 173(fvec3) Load 175(dv) + 179: 172(float) CompositeExtract 178 0 + 180: 172(float) CompositeExtract 178 1 + 181: 172(float) CompositeExtract 178 2 + 182: 173(fvec3) CompositeConstruct 179 180 181 + Store 175(dv) 182 + 187: 184(ivec3) Load 186(iv) + 188: 151(fvec3) ConvertSToF 187 + Store 153(f16v) 188 + 189: 151(fvec3) Load 153(f16v) + 190: 184(ivec3) ConvertFToS 189 + Store 186(iv) 190 + 194: 191(ivec3) Load 193(uv) + 195: 151(fvec3) ConvertUToF 194 + Store 153(f16v) 195 + 196: 151(fvec3) Load 153(f16v) + 197: 191(ivec3) ConvertFToU 196 + Store 193(uv) 197 + 202: 199(ivec3) Load 201(i64v) + 203: 151(fvec3) ConvertSToF 202 + Store 153(f16v) 203 + 204: 151(fvec3) Load 153(f16v) + 205: 199(ivec3) ConvertFToS 204 + Store 201(i64v) 205 + 210: 207(ivec3) Load 209(u64v) + 211: 151(fvec3) ConvertUToF 210 + Store 153(f16v) 211 + 212: 151(fvec3) Load 153(f16v) + 213: 207(ivec3) ConvertFToU 212 + Store 209(u64v) 213 + Return + FunctionEnd +12(builtinAngleTrigFuncs(): 2 Function None 3 + 13: Label + 216(f16v2): 215(ptr) Variable Function + 217(f16v1): 215(ptr) Variable Function + 218: 214(fvec4) Load 217(f16v1) + 219: 214(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 218 + Store 216(f16v2) 219 + 220: 214(fvec4) Load 217(f16v1) + 221: 214(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 220 + Store 216(f16v2) 221 + 222: 214(fvec4) Load 217(f16v1) + 223: 214(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 222 + Store 216(f16v2) 223 + 224: 214(fvec4) Load 217(f16v1) + 225: 214(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 224 + Store 216(f16v2) 225 + 226: 214(fvec4) Load 217(f16v1) + 227: 214(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 226 + Store 216(f16v2) 227 + 228: 214(fvec4) Load 217(f16v1) + 229: 214(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 228 + Store 216(f16v2) 229 + 230: 214(fvec4) Load 217(f16v1) + 231: 214(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 230 + Store 216(f16v2) 231 + 232: 214(fvec4) Load 217(f16v1) + 233: 214(fvec4) Load 216(f16v2) + 234: 214(fvec4) ExtInst 1(GLSL.std.450) 25(Atan2) 232 233 + Store 216(f16v2) 234 + 235: 214(fvec4) Load 217(f16v1) + 236: 214(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 235 + Store 216(f16v2) 236 + 237: 214(fvec4) Load 217(f16v1) + 238: 214(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 237 + Store 216(f16v2) 238 + 239: 214(fvec4) Load 217(f16v1) + 240: 214(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 239 + Store 216(f16v2) 240 + 241: 214(fvec4) Load 217(f16v1) + 242: 214(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 241 + Store 216(f16v2) 242 + 243: 214(fvec4) Load 217(f16v1) + 244: 214(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 243 + Store 216(f16v2) 244 + 245: 214(fvec4) Load 217(f16v1) + 246: 214(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 245 + Store 216(f16v2) 246 + 247: 214(fvec4) Load 217(f16v1) + 248: 214(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 247 + Store 216(f16v2) 248 + Return + FunctionEnd +14(builtinExpFuncs(): 2 Function None 3 + 15: Label + 249(f16v2): 30(ptr) Variable Function + 250(f16v1): 30(ptr) Variable Function + 251: 29(fvec2) Load 250(f16v1) + 252: 29(fvec2) Load 249(f16v2) + 253: 29(fvec2) ExtInst 1(GLSL.std.450) 26(Pow) 251 252 + Store 249(f16v2) 253 + 254: 29(fvec2) Load 250(f16v1) + 255: 29(fvec2) ExtInst 1(GLSL.std.450) 27(Exp) 254 + Store 249(f16v2) 255 + 256: 29(fvec2) Load 250(f16v1) + 257: 29(fvec2) ExtInst 1(GLSL.std.450) 28(Log) 256 + Store 249(f16v2) 257 + 258: 29(fvec2) Load 250(f16v1) + 259: 29(fvec2) ExtInst 1(GLSL.std.450) 29(Exp2) 258 + Store 249(f16v2) 259 + 260: 29(fvec2) Load 250(f16v1) + 261: 29(fvec2) ExtInst 1(GLSL.std.450) 30(Log2) 260 + Store 249(f16v2) 261 + 262: 29(fvec2) Load 250(f16v1) + 263: 29(fvec2) ExtInst 1(GLSL.std.450) 31(Sqrt) 262 + Store 249(f16v2) 263 + 264: 29(fvec2) Load 250(f16v1) + 265: 29(fvec2) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 264 + Store 249(f16v2) 265 + Return + FunctionEnd +16(builtinCommonFuncs(): 2 Function None 3 + 17: Label + 266(f16v2): 152(ptr) Variable Function + 267(f16v1): 152(ptr) Variable Function + 288(f16): 35(ptr) Variable Function + 292(f16v3): 152(ptr) Variable Function + 332(bv): 155(ptr) Variable Function + 353(b): 110(ptr) Variable Function + 363(iv): 185(ptr) Variable Function + 268: 151(fvec3) Load 267(f16v1) + 269: 151(fvec3) ExtInst 1(GLSL.std.450) 4(FAbs) 268 + Store 266(f16v2) 269 + 270: 151(fvec3) Load 267(f16v1) + 271: 151(fvec3) ExtInst 1(GLSL.std.450) 6(FSign) 270 + Store 266(f16v2) 271 + 272: 151(fvec3) Load 267(f16v1) + 273: 151(fvec3) ExtInst 1(GLSL.std.450) 8(Floor) 272 + Store 266(f16v2) 273 + 274: 151(fvec3) Load 267(f16v1) + 275: 151(fvec3) ExtInst 1(GLSL.std.450) 3(Trunc) 274 + Store 266(f16v2) 275 + 276: 151(fvec3) Load 267(f16v1) + 277: 151(fvec3) ExtInst 1(GLSL.std.450) 1(Round) 276 + Store 266(f16v2) 277 + 278: 151(fvec3) Load 267(f16v1) + 279: 151(fvec3) ExtInst 1(GLSL.std.450) 2(RoundEven) 278 + Store 266(f16v2) 279 + 280: 151(fvec3) Load 267(f16v1) + 281: 151(fvec3) ExtInst 1(GLSL.std.450) 9(Ceil) 280 + Store 266(f16v2) 281 + 282: 151(fvec3) Load 267(f16v1) + 283: 151(fvec3) ExtInst 1(GLSL.std.450) 10(Fract) 282 + Store 266(f16v2) 283 + 284: 151(fvec3) Load 267(f16v1) + 285: 151(fvec3) Load 266(f16v2) + 286: 151(fvec3) FMod 284 285 + Store 266(f16v2) 286 + 287: 151(fvec3) Load 267(f16v1) + 289: 28(float) Load 288(f16) + 290: 151(fvec3) CompositeConstruct 289 289 289 + 291: 151(fvec3) FMod 287 290 + Store 266(f16v2) 291 + 293: 151(fvec3) Load 267(f16v1) + 294: 151(fvec3) ExtInst 1(GLSL.std.450) 35(Modf) 293 266(f16v2) + Store 292(f16v3) 294 + 295: 151(fvec3) Load 267(f16v1) + 296: 151(fvec3) Load 266(f16v2) + 297: 151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 295 296 + Store 292(f16v3) 297 + 298: 151(fvec3) Load 267(f16v1) + 299: 28(float) Load 288(f16) + 300: 151(fvec3) CompositeConstruct 299 299 299 + 301: 151(fvec3) ExtInst 1(GLSL.std.450) 37(FMin) 298 300 + Store 292(f16v3) 301 + 302: 151(fvec3) Load 267(f16v1) + 303: 151(fvec3) Load 266(f16v2) + 304: 151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 302 303 + Store 292(f16v3) 304 + 305: 151(fvec3) Load 267(f16v1) + 306: 28(float) Load 288(f16) + 307: 151(fvec3) CompositeConstruct 306 306 306 + 308: 151(fvec3) ExtInst 1(GLSL.std.450) 40(FMax) 305 307 + Store 292(f16v3) 308 + 309: 151(fvec3) Load 267(f16v1) + 310: 28(float) Load 288(f16) + 311: 35(ptr) AccessChain 266(f16v2) 34 + 312: 28(float) Load 311 + 313: 151(fvec3) CompositeConstruct 310 310 310 + 314: 151(fvec3) CompositeConstruct 312 312 312 + 315: 151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 309 313 314 + Store 292(f16v3) 315 + 316: 151(fvec3) Load 267(f16v1) + 317: 151(fvec3) Load 266(f16v2) + 318: 28(float) Load 288(f16) + 319: 151(fvec3) CompositeConstruct 318 318 318 + 320: 151(fvec3) ExtInst 1(GLSL.std.450) 43(FClamp) 316 317 319 + Store 292(f16v3) 320 + 321: 151(fvec3) Load 267(f16v1) + 322: 151(fvec3) Load 266(f16v2) + 323: 28(float) Load 288(f16) + 324: 151(fvec3) CompositeConstruct 323 323 323 + 325: 151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 321 322 324 + Store 292(f16v3) 325 + 326: 151(fvec3) Load 267(f16v1) + 327: 151(fvec3) Load 266(f16v2) + 328: 151(fvec3) Load 292(f16v3) + 329: 151(fvec3) ExtInst 1(GLSL.std.450) 46(FMix) 326 327 328 + Store 292(f16v3) 329 + 330: 151(fvec3) Load 267(f16v1) + 331: 151(fvec3) Load 266(f16v2) + 333: 154(bvec3) Load 332(bv) + 334: 151(fvec3) Select 333 331 330 + Store 292(f16v3) 334 + 335: 151(fvec3) Load 267(f16v1) + 336: 151(fvec3) Load 266(f16v2) + 337: 151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 335 336 + Store 292(f16v3) 337 + 338: 28(float) Load 288(f16) + 339: 151(fvec3) Load 292(f16v3) + 340: 151(fvec3) CompositeConstruct 338 338 338 + 341: 151(fvec3) ExtInst 1(GLSL.std.450) 48(Step) 340 339 + Store 292(f16v3) 341 + 342: 151(fvec3) Load 267(f16v1) + 343: 151(fvec3) Load 266(f16v2) + 344: 151(fvec3) Load 292(f16v3) + 345: 151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 342 343 344 + Store 292(f16v3) 345 + 346: 28(float) Load 288(f16) + 347: 35(ptr) AccessChain 267(f16v1) 34 + 348: 28(float) Load 347 + 349: 151(fvec3) Load 266(f16v2) + 350: 151(fvec3) CompositeConstruct 346 346 346 + 351: 151(fvec3) CompositeConstruct 348 348 348 + 352: 151(fvec3) ExtInst 1(GLSL.std.450) 49(SmoothStep) 350 351 349 + Store 292(f16v3) 352 + 354: 28(float) Load 288(f16) + 355: 109(bool) IsNan 354 + Store 353(b) 355 + 356: 151(fvec3) Load 267(f16v1) + 357: 154(bvec3) IsInf 356 + Store 332(bv) 357 + 358: 151(fvec3) Load 267(f16v1) + 359: 151(fvec3) Load 266(f16v2) + 360: 151(fvec3) Load 292(f16v3) + 361: 151(fvec3) ExtInst 1(GLSL.std.450) 50(Fma) 358 359 360 + Store 292(f16v3) 361 + 362: 151(fvec3) Load 267(f16v1) + 365:364(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 362 + 366: 184(ivec3) CompositeExtract 365 1 + Store 363(iv) 366 + 367: 151(fvec3) CompositeExtract 365 0 + Store 266(f16v2) 367 + 368: 151(fvec3) Load 267(f16v1) + 369: 184(ivec3) Load 363(iv) + 370: 151(fvec3) ExtInst 1(GLSL.std.450) 53(Ldexp) 368 369 + Store 266(f16v2) 370 + Return + FunctionEnd +18(builtinPackUnpackFuncs(): 2 Function None 3 + 19: Label + 372(u): 371(ptr) Variable Function + 373(f16v): 30(ptr) Variable Function + 374: 29(fvec2) Load 373(f16v) + 375: 33(int) Bitcast 374 + Store 372(u) 375 + 376: 33(int) Load 372(u) + 377: 29(fvec2) Bitcast 376 + Store 373(f16v) 377 + Return + FunctionEnd +20(builtinGeometryFuncs(): 2 Function None 3 + 21: Label + 378(f16): 35(ptr) Variable Function + 379(f16v1): 152(ptr) Variable Function + 383(f16v2): 152(ptr) Variable Function + 389(f16v3): 152(ptr) Variable Function + 380: 151(fvec3) Load 379(f16v1) + 381: 28(float) ExtInst 1(GLSL.std.450) 66(Length) 380 + Store 378(f16) 381 + 382: 151(fvec3) Load 379(f16v1) + 384: 151(fvec3) Load 383(f16v2) + 385: 28(float) ExtInst 1(GLSL.std.450) 67(Distance) 382 384 + Store 378(f16) 385 + 386: 151(fvec3) Load 379(f16v1) + 387: 151(fvec3) Load 383(f16v2) + 388: 28(float) Dot 386 387 + Store 378(f16) 388 + 390: 151(fvec3) Load 379(f16v1) + 391: 151(fvec3) Load 383(f16v2) + 392: 151(fvec3) ExtInst 1(GLSL.std.450) 68(Cross) 390 391 + Store 389(f16v3) 392 + 393: 151(fvec3) Load 379(f16v1) + 394: 151(fvec3) ExtInst 1(GLSL.std.450) 69(Normalize) 393 + Store 383(f16v2) 394 + 395: 151(fvec3) Load 379(f16v1) + 396: 151(fvec3) Load 383(f16v2) + 397: 151(fvec3) Load 389(f16v3) + 398: 151(fvec3) ExtInst 1(GLSL.std.450) 70(FaceForward) 395 396 397 + Store 389(f16v3) 398 + 399: 151(fvec3) Load 379(f16v1) + 400: 151(fvec3) Load 383(f16v2) + 401: 151(fvec3) ExtInst 1(GLSL.std.450) 71(Reflect) 399 400 + Store 389(f16v3) 401 + 402: 151(fvec3) Load 379(f16v1) + 403: 151(fvec3) Load 383(f16v2) + 404: 28(float) Load 378(f16) + 405: 151(fvec3) ExtInst 1(GLSL.std.450) 72(Refract) 402 403 404 + Store 389(f16v3) 405 + Return + FunctionEnd +22(builtinMatrixFuncs(): 2 Function None 3 + 23: Label + 408(f16m3): 407(ptr) Variable Function + 409(f16m1): 407(ptr) Variable Function + 411(f16m2): 407(ptr) Variable Function + 420(f16v1): 152(ptr) Variable Function + 422(f16v2): 30(ptr) Variable Function + 427(f16m4): 426(ptr) Variable Function + 430(f16): 35(ptr) Variable Function + 433(f16m5): 432(ptr) Variable Function + 438(f16m6): 437(ptr) Variable Function + 439(f16m7): 437(ptr) Variable Function + 410: 406 Load 409(f16m1) + 412: 406 Load 411(f16m2) + 413: 151(fvec3) CompositeExtract 410 0 + 414: 151(fvec3) CompositeExtract 412 0 + 415: 151(fvec3) FMul 413 414 + 416: 151(fvec3) CompositeExtract 410 1 + 417: 151(fvec3) CompositeExtract 412 1 + 418: 151(fvec3) FMul 416 417 + 419: 406 CompositeConstruct 415 418 + Store 408(f16m3) 419 + 421: 151(fvec3) Load 420(f16v1) + 423: 29(fvec2) Load 422(f16v2) + 424: 406 OuterProduct 421 423 + Store 409(f16m1) 424 + 428: 406 Load 409(f16m1) + 429: 425 Transpose 428 + Store 427(f16m4) 429 + 434: 431 Load 433(f16m5) + 435: 28(float) ExtInst 1(GLSL.std.450) 33(Determinant) 434 + Store 430(f16) 435 + 440: 436 Load 439(f16m7) + 441: 436 ExtInst 1(GLSL.std.450) 34(MatrixInverse) 440 + Store 438(f16m6) 441 + Return + FunctionEnd +24(builtinVecRelFuncs(): 2 Function None 3 + 25: Label + 442(bv): 155(ptr) Variable Function + 443(f16v1): 152(ptr) Variable Function + 445(f16v2): 152(ptr) Variable Function + 444: 151(fvec3) Load 443(f16v1) + 446: 151(fvec3) Load 445(f16v2) + 447: 154(bvec3) FOrdLessThan 444 446 + Store 442(bv) 447 + 448: 151(fvec3) Load 443(f16v1) + 449: 151(fvec3) Load 445(f16v2) + 450: 154(bvec3) FOrdLessThanEqual 448 449 + Store 442(bv) 450 + 451: 151(fvec3) Load 443(f16v1) + 452: 151(fvec3) Load 445(f16v2) + 453: 154(bvec3) FOrdGreaterThan 451 452 + Store 442(bv) 453 + 454: 151(fvec3) Load 443(f16v1) + 455: 151(fvec3) Load 445(f16v2) + 456: 154(bvec3) FOrdGreaterThanEqual 454 455 + Store 442(bv) 456 + 457: 151(fvec3) Load 443(f16v1) + 458: 151(fvec3) Load 445(f16v2) + 459: 154(bvec3) FOrdEqual 457 458 + Store 442(bv) 459 + 460: 151(fvec3) Load 443(f16v1) + 461: 151(fvec3) Load 445(f16v2) + 462: 154(bvec3) FOrdNotEqual 460 461 + Store 442(bv) 462 + Return + FunctionEnd +26(builtinFragProcFuncs(): 2 Function None 3 + 27: Label + 463(f16v): 152(ptr) Variable Function + 467: 466(ptr) AccessChain 465(if16v) 34 + 468: 28(float) Load 467 + 469: 28(float) DPdx 468 + 470: 35(ptr) AccessChain 463(f16v) 34 + Store 470 469 + 471: 466(ptr) AccessChain 465(if16v) 90 + 472: 28(float) Load 471 + 473: 28(float) DPdy 472 + 474: 35(ptr) AccessChain 463(f16v) 90 + Store 474 473 + 475: 151(fvec3) Load 465(if16v) + 476: 29(fvec2) VectorShuffle 475 475 0 1 + 477: 29(fvec2) DPdxFine 476 + 478: 151(fvec3) Load 463(f16v) + 479: 151(fvec3) VectorShuffle 478 477 3 4 2 + Store 463(f16v) 479 + 480: 151(fvec3) Load 465(if16v) + 481: 29(fvec2) VectorShuffle 480 480 0 1 + 482: 29(fvec2) DPdyFine 481 + 483: 151(fvec3) Load 463(f16v) + 484: 151(fvec3) VectorShuffle 483 482 3 4 2 + Store 463(f16v) 484 + 485: 151(fvec3) Load 465(if16v) + 486: 151(fvec3) DPdxCoarse 485 + Store 463(f16v) 486 + 487: 151(fvec3) Load 465(if16v) + 488: 151(fvec3) DPdxCoarse 487 + Store 463(f16v) 488 + 489: 466(ptr) AccessChain 465(if16v) 34 + 490: 28(float) Load 489 + 491: 28(float) Fwidth 490 + 492: 35(ptr) AccessChain 463(f16v) 34 + Store 492 491 + 493: 151(fvec3) Load 465(if16v) + 494: 29(fvec2) VectorShuffle 493 493 0 1 + 495: 29(fvec2) FwidthFine 494 + 496: 151(fvec3) Load 463(f16v) + 497: 151(fvec3) VectorShuffle 496 495 3 4 2 + Store 463(f16v) 497 + 498: 151(fvec3) Load 465(if16v) + 499: 151(fvec3) FwidthCoarse 498 + Store 463(f16v) 499 + 500: 466(ptr) AccessChain 465(if16v) 34 + 501: 28(float) ExtInst 1(GLSL.std.450) 76(InterpolateAtCentroid) 500 + 502: 35(ptr) AccessChain 463(f16v) 34 + Store 502 501 + 504: 151(fvec3) ExtInst 1(GLSL.std.450) 77(InterpolateAtSample) 465(if16v) 503 + 505: 29(fvec2) VectorShuffle 504 504 0 1 + 506: 151(fvec3) Load 463(f16v) + 507: 151(fvec3) VectorShuffle 506 505 3 4 2 + Store 463(f16v) 507 + 510: 151(fvec3) ExtInst 1(GLSL.std.450) 78(InterpolateAtOffset) 465(if16v) 509 + Store 463(f16v) 510 + Return + FunctionEnd diff --git a/Test/baseResults/spv.flowControl.frag.out b/Test/baseResults/spv.flowControl.frag.out index 7ca61b7a9c5b39c494287eb9db1d572bac35c97c..274cb74612e48554f5619916b95f821245a3f936 100755 --- a/Test/baseResults/spv.flowControl.frag.out +++ b/Test/baseResults/spv.flowControl.frag.out @@ -1,8 +1,4 @@ spv.flowControl.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 39 diff --git a/Test/baseResults/spv.for-complex-condition.vert.out b/Test/baseResults/spv.for-complex-condition.vert.out index c5fe4389aec4cfe18d973f711d9a5af23c8ca0e2..bb3bc2a1cc60a3767fae275fe59a1d7286d4780e 100644 --- a/Test/baseResults/spv.for-complex-condition.vert.out +++ b/Test/baseResults/spv.for-complex-condition.vert.out @@ -1,10 +1,6 @@ spv.for-complex-condition.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 35 diff --git a/Test/baseResults/spv.for-continue-break.vert.out b/Test/baseResults/spv.for-continue-break.vert.out index 0ea2f143901ff2b182218dafc6ab2f53cbf55fd1..764001dbe37750db961f27f5341727df34dc7b72 100644 --- a/Test/baseResults/spv.for-continue-break.vert.out +++ b/Test/baseResults/spv.for-continue-break.vert.out @@ -1,10 +1,6 @@ spv.for-continue-break.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 45 diff --git a/Test/baseResults/spv.for-nobody.vert.out b/Test/baseResults/spv.for-nobody.vert.out index a127b7099c1c19f270a8dda762b32f51e15a0c47..0ec3584da801a88455384a37aa82946c33a736f7 100644 --- a/Test/baseResults/spv.for-nobody.vert.out +++ b/Test/baseResults/spv.for-nobody.vert.out @@ -1,10 +1,6 @@ spv.for-nobody.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 25 diff --git a/Test/baseResults/spv.for-notest.vert.out b/Test/baseResults/spv.for-notest.vert.out index 67706701ea103ca1ae0ce1b0ae666c4af7b549d2..c7346f9df8c0117c35daa0330897a54614d1ad32 100644 --- a/Test/baseResults/spv.for-notest.vert.out +++ b/Test/baseResults/spv.for-notest.vert.out @@ -1,10 +1,6 @@ spv.for-notest.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 20 diff --git a/Test/baseResults/spv.for-simple.vert.out b/Test/baseResults/spv.for-simple.vert.out index 52a047ff09954bff1ea7cfd7497e376c8993dbfe..996b65a4af04b9e5cd8405bf57c356fbfd1712be 100755 --- a/Test/baseResults/spv.for-simple.vert.out +++ b/Test/baseResults/spv.for-simple.vert.out @@ -1,10 +1,6 @@ spv.for-simple.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 24 diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out index e606f9ccb941fa5b4497b3bcd2584c01323bc388..628c791f67fb24d655c802101a07367d388553cd 100755 --- a/Test/baseResults/spv.forLoop.frag.out +++ b/Test/baseResults/spv.forLoop.frag.out @@ -1,8 +1,4 @@ spv.forLoop.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 131 diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out index a804e1df6f0b8f9fae80cad0cfd7229300c813dd..65759531edbdd7f5b74e6f050ee671e17934e207 100755 --- a/Test/baseResults/spv.forwardFun.frag.out +++ b/Test/baseResults/spv.forwardFun.frag.out @@ -1,8 +1,4 @@ spv.forwardFun.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 60 diff --git a/Test/baseResults/spv.functionCall.frag.out b/Test/baseResults/spv.functionCall.frag.out index db40dd51ae4898f18e1043ebcbd5be180dda1736..69a525f7912930d4b05313ce2a790577c389c468 100755 --- a/Test/baseResults/spv.functionCall.frag.out +++ b/Test/baseResults/spv.functionCall.frag.out @@ -3,10 +3,6 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas WARNING: 0:4: varying deprecated in version 130; may be removed in future release WARNING: 0:5: varying deprecated in version 130; may be removed in future release - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 76 diff --git a/Test/baseResults/spv.functionSemantics.frag.out b/Test/baseResults/spv.functionSemantics.frag.out index aa2abd847c193853e4d381cd828a7748c88d6b4f..005a315bb1efd8efa5d0e5647ece58d6a86b3445 100755 --- a/Test/baseResults/spv.functionSemantics.frag.out +++ b/Test/baseResults/spv.functionSemantics.frag.out @@ -1,10 +1,6 @@ spv.functionSemantics.frag Warning, version 400 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 156 diff --git a/Test/baseResults/spv.glFragColor.frag.out b/Test/baseResults/spv.glFragColor.frag.out index df825a09f1088ca2615ab86d63708dfba3932137..febbdf46981d5fe09e43da8ba492565d3cdd874d 100755 --- a/Test/baseResults/spv.glFragColor.frag.out +++ b/Test/baseResults/spv.glFragColor.frag.out @@ -1,8 +1,4 @@ spv.glFragColor.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 12 diff --git a/Test/baseResults/spv.glsl.register.autoassign.frag.out b/Test/baseResults/spv.glsl.register.autoassign.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..11818f6473b605a71a352b126475f8dccdffc089 --- /dev/null +++ b/Test/baseResults/spv.glsl.register.autoassign.frag.out @@ -0,0 +1,224 @@ +spv.glsl.register.autoassign.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 142 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 137 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "myblock" + MemberName 95(myblock) 0 "mystruct" + MemberName 95(myblock) 1 "myvec4_a" + MemberName 95(myblock) 2 "myvec4_b" + MemberName 95(myblock) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 137 "FragColor" + Name 141 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 27(g_tTex2) Binding 14 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 29(g_sSamp2) Binding 6 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 64(g_tTex4) Binding 15 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 69(g_sSamp4) Binding 8 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 84(g_tTex5) Binding 16 + Decorate 86(g_sSamp5) DescriptorSet 0 + Decorate 86(g_sSamp5) Binding 9 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95(myblock) 0 Offset 0 + MemberDecorate 95(myblock) 1 Offset 32 + MemberDecorate 95(myblock) 2 Offset 48 + MemberDecorate 95(myblock) 3 Offset 64 + Decorate 95(myblock) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 24 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 141(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95(myblock): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95(myblock) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136: TypePointer Output 7(fvec4) + 137(FragColor): 136(ptr) Variable Output +141(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 138: 7(fvec4) FunctionCall 9(Func1() + 139: 7(fvec4) FunctionCall 11(Func2() + 140: 7(fvec4) FAdd 138 139 + Store 137(FragColor) 140 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/spv.glsl.register.noautoassign.frag.out b/Test/baseResults/spv.glsl.register.noautoassign.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..327ac04aea56da219ce67a0bbef58624c8bbec66 --- /dev/null +++ b/Test/baseResults/spv.glsl.register.noautoassign.frag.out @@ -0,0 +1,218 @@ +spv.glsl.register.noautoassign.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 142 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 137 + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "myblock" + MemberName 95(myblock) 0 "mystruct" + MemberName 95(myblock) 1 "myvec4_a" + MemberName 95(myblock) 2 "myvec4_b" + MemberName 95(myblock) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 137 "FragColor" + Name 141 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 86(g_sSamp5) DescriptorSet 0 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95(myblock) 0 Offset 0 + MemberDecorate 95(myblock) 1 Offset 32 + MemberDecorate 95(myblock) 2 Offset 48 + MemberDecorate 95(myblock) 3 Offset 64 + Decorate 95(myblock) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 19 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 141(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95(myblock): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95(myblock) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136: TypePointer Output 7(fvec4) + 137(FragColor): 136(ptr) Variable Output +141(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 138: 7(fvec4) FunctionCall 9(Func1() + 139: 7(fvec4) FunctionCall 11(Func2() + 140: 7(fvec4) FAdd 138 139 + Store 137(FragColor) 140 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/spv.image.frag.out b/Test/baseResults/spv.image.frag.out index 2bd26f79bbbaea097ec98d0ed3dee51cbdcc89a8..2dd7d4b3f4a0a9c84aa51dbca28f192ee9e8aa18 100644 --- a/Test/baseResults/spv.image.frag.out +++ b/Test/baseResults/spv.image.frag.out @@ -1,10 +1,6 @@ spv.image.frag Warning, version 450 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 378 diff --git a/Test/baseResults/spv.int64.frag.out b/Test/baseResults/spv.int64.frag.out index acfee730053a678c686caa90a43f8d8ca5bc6414..cb5433ec6a679cb62a3621f9f3b98649caf05289 100644 --- a/Test/baseResults/spv.int64.frag.out +++ b/Test/baseResults/spv.int64.frag.out @@ -1,10 +1,6 @@ spv.int64.frag Warning, version 450 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 480 diff --git a/Test/baseResults/spv.intOps.vert.out b/Test/baseResults/spv.intOps.vert.out index 22451b9ffa4b41729ae7a4c0ecac0eb8ac6fa939..93d2dfdae19a52910218d77328c780316ded1177 100644 --- a/Test/baseResults/spv.intOps.vert.out +++ b/Test/baseResults/spv.intOps.vert.out @@ -1,10 +1,6 @@ spv.intOps.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 268 diff --git a/Test/baseResults/spv.interpOps.frag.out b/Test/baseResults/spv.interpOps.frag.out index a5076421ba9dc06a7ec66247b227a249ca73ea39..88d8e53cfd6bbbb4488d80339a158cb489ec6f35 100644 --- a/Test/baseResults/spv.interpOps.frag.out +++ b/Test/baseResults/spv.interpOps.frag.out @@ -1,10 +1,6 @@ spv.interpOps.frag Warning, version 450 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 100 diff --git a/Test/baseResults/spv.layoutNested.vert.out b/Test/baseResults/spv.layoutNested.vert.out index fd785ab42770d097dd329ec14864eee1b3fe0e6c..0d0b28bbec6193db3dd22f4882caefba947d04fe 100644 --- a/Test/baseResults/spv.layoutNested.vert.out +++ b/Test/baseResults/spv.layoutNested.vert.out @@ -1,10 +1,6 @@ spv.layoutNested.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 66 diff --git a/Test/baseResults/spv.length.frag.out b/Test/baseResults/spv.length.frag.out index 81f98a61c2ba1aafbfdc92d74a902eb6b60f1c84..76f6ca63d60ce425a1b668a78b50b8047a77a6db 100755 --- a/Test/baseResults/spv.length.frag.out +++ b/Test/baseResults/spv.length.frag.out @@ -1,8 +1,4 @@ spv.length.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 33 diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out index 21c389a0bd31ca6698fdeeefc499c0ba93fe0ba9..7ffa874171c0e7d46e535cc74f0cf48926009117 100755 --- a/Test/baseResults/spv.localAggregates.frag.out +++ b/Test/baseResults/spv.localAggregates.frag.out @@ -1,10 +1,6 @@ spv.localAggregates.frag Warning, version 400 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 136 diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out index 952f7941790f9c5ca0a9a5a2bf3580c5839f9a98..8b1b48076d7a1feb9f653dcbd242fe41e24067f0 100755 --- a/Test/baseResults/spv.loops.frag.out +++ b/Test/baseResults/spv.loops.frag.out @@ -1,8 +1,4 @@ spv.loops.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 725 diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out index 5f10bd35901cfdc46683b016f6c2ad45b2abc533..707a78df0e8cd6914467224537d618adf2dff2b0 100755 --- a/Test/baseResults/spv.loopsArtificial.frag.out +++ b/Test/baseResults/spv.loopsArtificial.frag.out @@ -1,8 +1,4 @@ spv.loopsArtificial.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 158 diff --git a/Test/baseResults/spv.matFun.vert.out b/Test/baseResults/spv.matFun.vert.out index 0aa0a52da90337c3202fbd67d4c767dfb00172a0..38d9d2cf1fcadfec9dd96897ced2ead65334fa3a 100755 --- a/Test/baseResults/spv.matFun.vert.out +++ b/Test/baseResults/spv.matFun.vert.out @@ -1,10 +1,6 @@ spv.matFun.vert Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 103 diff --git a/Test/baseResults/spv.matrix.frag.out b/Test/baseResults/spv.matrix.frag.out index 7b34fca4dece6828b2aa01000994733a85c114d0..700e90ebcdc2e98425138d594d4edf8b1ba0900b 100644 --- a/Test/baseResults/spv.matrix.frag.out +++ b/Test/baseResults/spv.matrix.frag.out @@ -1,10 +1,6 @@ spv.matrix.frag Warning, version 420 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 261 diff --git a/Test/baseResults/spv.matrix2.frag.out b/Test/baseResults/spv.matrix2.frag.out index e0497b09d3c25683cd6b03bd4bc081fd7d5d8df5..78facff346c359b2813fcdc9de46207aaa4b7f83 100644 --- a/Test/baseResults/spv.matrix2.frag.out +++ b/Test/baseResults/spv.matrix2.frag.out @@ -1,8 +1,4 @@ spv.matrix2.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 221 diff --git a/Test/baseResults/spv.memoryQualifier.frag.out b/Test/baseResults/spv.memoryQualifier.frag.out index e2bfb392948683b6173f83425d269459d6af7d6f..a990e47594a5f60d66e167f6d043e8bd527e765d 100644 --- a/Test/baseResults/spv.memoryQualifier.frag.out +++ b/Test/baseResults/spv.memoryQualifier.frag.out @@ -1,10 +1,6 @@ spv.memoryQualifier.frag Warning, version 450 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 97 diff --git a/Test/baseResults/spv.merge-unreachable.frag.out b/Test/baseResults/spv.merge-unreachable.frag.out index 6e326187b2126affed540be4b4c7f6f8a1190e97..58bbb0627af97d71aa33c6c22792df6f85f32fb6 100644 --- a/Test/baseResults/spv.merge-unreachable.frag.out +++ b/Test/baseResults/spv.merge-unreachable.frag.out @@ -1,10 +1,6 @@ spv.merge-unreachable.frag Warning, version 450 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 25 diff --git a/Test/baseResults/spv.multiStruct.comp.out b/Test/baseResults/spv.multiStruct.comp.out index 28402ce24bf0c543f7d89fbb7164095aa77f2368..f8c0eead85baa5611c098008a52b9957b12ea3b2 100755 --- a/Test/baseResults/spv.multiStruct.comp.out +++ b/Test/baseResults/spv.multiStruct.comp.out @@ -1,10 +1,6 @@ spv.multiStruct.comp Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked compute stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 157 diff --git a/Test/baseResults/spv.multiStructFuncall.frag.out b/Test/baseResults/spv.multiStructFuncall.frag.out index dcbcfa001963e4ab43ce829cd16a157342a81149..b9b0cb2cb669628797e10c357c38e0a41caafaca 100755 --- a/Test/baseResults/spv.multiStructFuncall.frag.out +++ b/Test/baseResults/spv.multiStructFuncall.frag.out @@ -1,10 +1,6 @@ spv.multiStructFuncall.frag Warning, version 450 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 63 diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out index 3206faa314d84c272b2750d0a7111bc1db0da7d7..ea694eeafb23edbc96eb1b413e9d06d999c144b2 100755 --- a/Test/baseResults/spv.newTexture.frag.out +++ b/Test/baseResults/spv.newTexture.frag.out @@ -1,10 +1,6 @@ spv.newTexture.frag Warning, version 430 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 284 diff --git a/Test/baseResults/spv.noDeadDecorations.vert.out b/Test/baseResults/spv.noDeadDecorations.vert.out index e9b23566a4b9ceff6325be61398c4d9f7d546afd..41d2a43147aa17a17340dc1e172fc645dc1813a0 100644 --- a/Test/baseResults/spv.noDeadDecorations.vert.out +++ b/Test/baseResults/spv.noDeadDecorations.vert.out @@ -1,10 +1,6 @@ spv.noDeadDecorations.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 32 diff --git a/Test/baseResults/spv.noWorkgroup.comp.out b/Test/baseResults/spv.noWorkgroup.comp.out new file mode 100755 index 0000000000000000000000000000000000000000..0f88436c5a9df2e4aab9a9650997e2ca4094e7c0 --- /dev/null +++ b/Test/baseResults/spv.noWorkgroup.comp.out @@ -0,0 +1,30 @@ +spv.noWorkgroup.comp +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// 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 GLCompute 4 "main" + ExecutionMode 4 LocalSize 1 1 1 + Source GLSL 450 + Name 4 "main" + Decorate 7 SpecId 18 + Decorate 8 SpecId 10 + Decorate 9 SpecId 19 + Decorate 11 BuiltIn WorkgroupSize + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 0 + 7: 6(int) SpecConstant 1 + 8: 6(int) SpecConstant 1 + 9: 6(int) SpecConstant 1 + 10: TypeVector 6(int) 3 + 11: 10(ivec3) SpecConstantComposite 7 8 9 + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/Test/baseResults/spv.nonSquare.vert.out b/Test/baseResults/spv.nonSquare.vert.out index 329a71cb299dfb75eed18d099453efccb2395af3..684d4f16b3128d7f0987aeb812bd4fe69e932c7e 100755 --- a/Test/baseResults/spv.nonSquare.vert.out +++ b/Test/baseResults/spv.nonSquare.vert.out @@ -1,8 +1,4 @@ spv.nonSquare.vert - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 90 diff --git a/Test/baseResults/spv.offsets.frag.out b/Test/baseResults/spv.offsets.frag.out new file mode 100755 index 0000000000000000000000000000000000000000..ea4be8f4c66792a844f00072794dd73e99e24bda --- /dev/null +++ b/Test/baseResults/spv.offsets.frag.out @@ -0,0 +1,55 @@ +spv.offsets.frag +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// 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 Fragment 4 "main" + ExecutionMode 4 OriginUpperLeft + Source GLSL 450 + Name 4 "main" + Name 7 "n1" + MemberName 7(n1) 0 "a" + MemberName 7(n1) 1 "b" + MemberName 7(n1) 2 "c" + MemberName 7(n1) 3 "d" + Name 9 "i1" + Name 12 "n2" + MemberName 12(n2) 0 "e" + MemberName 12(n2) 1 "f" + MemberName 12(n2) 2 "g" + MemberName 12(n2) 3 "h" + Name 14 "i2" + MemberDecorate 7(n1) 0 Offset 8 + MemberDecorate 7(n1) 1 Offset 4 + MemberDecorate 7(n1) 2 Offset 0 + MemberDecorate 7(n1) 3 Offset 12 + Decorate 7(n1) Block + Decorate 9(i1) DescriptorSet 0 + Decorate 9(i1) Binding 0 + MemberDecorate 12(n2) 0 Offset 32 + MemberDecorate 12(n2) 1 Offset 48 + MemberDecorate 12(n2) 2 Offset 16 + MemberDecorate 12(n2) 3 Offset 0 + Decorate 12(n2) BufferBlock + Decorate 14(i2) DescriptorSet 0 + Decorate 14(i2) Binding 1 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeInt 32 1 + 7(n1): TypeStruct 6(int) 6(int) 6(int) 6(int) + 8: TypePointer Uniform 7(n1) + 9(i1): 8(ptr) Variable Uniform + 10: TypeFloat 32 + 11: TypeVector 10(float) 3 + 12(n2): TypeStruct 11(fvec3) 11(fvec3) 11(fvec3) 11(fvec3) + 13: TypePointer Uniform 12(n2) + 14(i2): 13(ptr) Variable Uniform + 4(main): 2 Function None 3 + 5: Label + Return + FunctionEnd diff --git a/Test/baseResults/spv.precise.tesc.out b/Test/baseResults/spv.precise.tesc.out index 0331a14ac00e5987a703e140b53e577cea967062..4bae395a8aa3a7fcdee20b147777185dcd1cf0b2 100644 --- a/Test/baseResults/spv.precise.tesc.out +++ b/Test/baseResults/spv.precise.tesc.out @@ -1,10 +1,6 @@ spv.precise.tesc Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked tessellation control stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 72 diff --git a/Test/baseResults/spv.precise.tese.out b/Test/baseResults/spv.precise.tese.out index 4033981228300dbcb203cc9bb109f263480c981b..4f1839c7752e80df6b265b7efa20c5cc189a0d5f 100644 --- a/Test/baseResults/spv.precise.tese.out +++ b/Test/baseResults/spv.precise.tese.out @@ -1,10 +1,6 @@ spv.precise.tese Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked tessellation evaluation stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 119 diff --git a/Test/baseResults/spv.precision.frag.out b/Test/baseResults/spv.precision.frag.out index 33e4fb204ad7d29dabd3ad2c0b92d29ac8544464..f49b35663818be180e9925734b9e1cb326795775 100755 --- a/Test/baseResults/spv.precision.frag.out +++ b/Test/baseResults/spv.precision.frag.out @@ -1,10 +1,6 @@ spv.precision.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 127 diff --git a/Test/baseResults/spv.prepost.frag.out b/Test/baseResults/spv.prepost.frag.out index 9581267ba71c2416c3d63e59ba37961918617729..410286cad0fb036ad4b0958f5b07f47c4a60c35e 100755 --- a/Test/baseResults/spv.prepost.frag.out +++ b/Test/baseResults/spv.prepost.frag.out @@ -1,8 +1,4 @@ spv.prepost.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 94 diff --git a/Test/baseResults/spv.pushConstant.vert.out b/Test/baseResults/spv.pushConstant.vert.out index 6b314e082ec3b5d4fe93f7fb0e67471b5324d3f8..bdefd63de6d1cb9f6f5ff10ede171d7909113745 100644 --- a/Test/baseResults/spv.pushConstant.vert.out +++ b/Test/baseResults/spv.pushConstant.vert.out @@ -1,10 +1,6 @@ spv.pushConstant.vert Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 35 diff --git a/Test/baseResults/spv.qualifiers.vert.out b/Test/baseResults/spv.qualifiers.vert.out index d2baf7229ffc037e7f7f029bdaba8c389b7d2532..37f474cca54a8b6499170d9aaf15798bcc63b81b 100755 --- a/Test/baseResults/spv.qualifiers.vert.out +++ b/Test/baseResults/spv.qualifiers.vert.out @@ -1,10 +1,6 @@ spv.qualifiers.vert Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 21 diff --git a/Test/baseResults/spv.queryL.frag.out b/Test/baseResults/spv.queryL.frag.out index 6d2b2b97d269ae23f9ac2fa01853efd4d4a7ac08..fbdcbc8130f132513bd96017eed1abf390cd552f 100755 --- a/Test/baseResults/spv.queryL.frag.out +++ b/Test/baseResults/spv.queryL.frag.out @@ -1,13 +1,9 @@ spv.queryL.frag Warning, version 430 is not yet complete; most version-specific features are present, but some are missing. - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 237 +// Id's are bound by 224 Capability Shader Capability SampledRect @@ -24,48 +20,48 @@ Linked fragment stage: Name 9 "lod" Name 13 "samp1D" Name 16 "pf" - Name 24 "isamp2D" - Name 26 "pf2" - Name 36 "usamp3D" - Name 40 "pf3" - Name 49 "sampCube" - Name 59 "isamp1DA" - Name 69 "usamp2DA" - Name 79 "isampCubeA" - Name 89 "samp1Ds" - Name 99 "samp2Ds" - Name 109 "sampCubes" - Name 119 "samp1DAs" - Name 129 "samp2DAs" - Name 139 "sampCubeAs" - Name 147 "levels" - Name 154 "usamp2D" - Name 163 "isamp3D" - Name 172 "isampCube" - Name 186 "samp2DA" - Name 195 "usampCubeA" - Name 232 "sampBuf" - Name 236 "sampRect" + Name 23 "isamp2D" + Name 25 "pf2" + Name 34 "usamp3D" + Name 38 "pf3" + Name 46 "sampCube" + Name 55 "isamp1DA" + Name 64 "usamp2DA" + Name 73 "isampCubeA" + Name 82 "samp1Ds" + Name 91 "samp2Ds" + Name 100 "sampCubes" + Name 109 "samp1DAs" + Name 118 "samp2DAs" + Name 127 "sampCubeAs" + Name 134 "levels" + Name 141 "usamp2D" + Name 150 "isamp3D" + Name 159 "isampCube" + Name 173 "samp2DA" + Name 182 "usampCubeA" + Name 219 "sampBuf" + Name 223 "sampRect" Decorate 13(samp1D) DescriptorSet 0 - Decorate 24(isamp2D) DescriptorSet 0 - Decorate 36(usamp3D) DescriptorSet 0 - Decorate 49(sampCube) DescriptorSet 0 - Decorate 59(isamp1DA) DescriptorSet 0 - Decorate 69(usamp2DA) DescriptorSet 0 - Decorate 79(isampCubeA) DescriptorSet 0 - Decorate 89(samp1Ds) DescriptorSet 0 - Decorate 99(samp2Ds) DescriptorSet 0 - Decorate 109(sampCubes) DescriptorSet 0 - Decorate 119(samp1DAs) DescriptorSet 0 - Decorate 129(samp2DAs) DescriptorSet 0 - Decorate 139(sampCubeAs) DescriptorSet 0 - Decorate 154(usamp2D) DescriptorSet 0 - Decorate 163(isamp3D) DescriptorSet 0 - Decorate 172(isampCube) DescriptorSet 0 - Decorate 186(samp2DA) DescriptorSet 0 - Decorate 195(usampCubeA) DescriptorSet 0 - Decorate 232(sampBuf) DescriptorSet 0 - Decorate 236(sampRect) DescriptorSet 0 + Decorate 23(isamp2D) DescriptorSet 0 + Decorate 34(usamp3D) DescriptorSet 0 + Decorate 46(sampCube) DescriptorSet 0 + Decorate 55(isamp1DA) DescriptorSet 0 + Decorate 64(usamp2DA) DescriptorSet 0 + Decorate 73(isampCubeA) DescriptorSet 0 + Decorate 82(samp1Ds) DescriptorSet 0 + Decorate 91(samp2Ds) DescriptorSet 0 + Decorate 100(sampCubes) DescriptorSet 0 + Decorate 109(samp1DAs) DescriptorSet 0 + Decorate 118(samp2DAs) DescriptorSet 0 + Decorate 127(sampCubeAs) DescriptorSet 0 + Decorate 141(usamp2D) DescriptorSet 0 + Decorate 150(isamp3D) DescriptorSet 0 + Decorate 159(isampCube) DescriptorSet 0 + Decorate 173(samp2DA) DescriptorSet 0 + Decorate 182(usampCubeA) DescriptorSet 0 + Decorate 219(sampBuf) DescriptorSet 0 + Decorate 223(sampRect) DescriptorSet 0 2: TypeVoid 3: TypeFunction 2 6: TypeFloat 32 @@ -76,256 +72,243 @@ Linked fragment stage: 12: TypePointer UniformConstant 11 13(samp1D): 12(ptr) Variable UniformConstant 15: TypePointer Function 6(float) - 20: TypeInt 32 1 - 21: TypeImage 20(int) 2D sampled format:Unknown - 22: TypeSampledImage 21 - 23: TypePointer UniformConstant 22 - 24(isamp2D): 23(ptr) Variable UniformConstant - 32: TypeInt 32 0 - 33: TypeImage 32(int) 3D sampled format:Unknown - 34: TypeSampledImage 33 - 35: TypePointer UniformConstant 34 - 36(usamp3D): 35(ptr) Variable UniformConstant - 38: TypeVector 6(float) 3 - 39: TypePointer Function 38(fvec3) - 46: TypeImage 6(float) Cube sampled format:Unknown - 47: TypeSampledImage 46 - 48: TypePointer UniformConstant 47 - 49(sampCube): 48(ptr) Variable UniformConstant - 56: TypeImage 20(int) 1D array sampled format:Unknown - 57: TypeSampledImage 56 - 58: TypePointer UniformConstant 57 - 59(isamp1DA): 58(ptr) Variable UniformConstant - 66: TypeImage 32(int) 2D array sampled format:Unknown - 67: TypeSampledImage 66 - 68: TypePointer UniformConstant 67 - 69(usamp2DA): 68(ptr) Variable UniformConstant - 76: TypeImage 20(int) Cube array sampled format:Unknown - 77: TypeSampledImage 76 - 78: TypePointer UniformConstant 77 - 79(isampCubeA): 78(ptr) Variable UniformConstant - 86: TypeImage 6(float) 1D depth sampled format:Unknown - 87: TypeSampledImage 86 - 88: TypePointer UniformConstant 87 - 89(samp1Ds): 88(ptr) Variable UniformConstant - 96: TypeImage 6(float) 2D depth sampled format:Unknown - 97: TypeSampledImage 96 - 98: TypePointer UniformConstant 97 - 99(samp2Ds): 98(ptr) Variable UniformConstant - 106: TypeImage 6(float) Cube depth sampled format:Unknown + 19: TypeInt 32 1 + 20: TypeImage 19(int) 2D sampled format:Unknown + 21: TypeSampledImage 20 + 22: TypePointer UniformConstant 21 + 23(isamp2D): 22(ptr) Variable UniformConstant + 30: TypeInt 32 0 + 31: TypeImage 30(int) 3D sampled format:Unknown + 32: TypeSampledImage 31 + 33: TypePointer UniformConstant 32 + 34(usamp3D): 33(ptr) Variable UniformConstant + 36: TypeVector 6(float) 3 + 37: TypePointer Function 36(fvec3) + 43: TypeImage 6(float) Cube sampled format:Unknown + 44: TypeSampledImage 43 + 45: TypePointer UniformConstant 44 + 46(sampCube): 45(ptr) Variable UniformConstant + 52: TypeImage 19(int) 1D array sampled format:Unknown + 53: TypeSampledImage 52 + 54: TypePointer UniformConstant 53 + 55(isamp1DA): 54(ptr) Variable UniformConstant + 61: TypeImage 30(int) 2D array sampled format:Unknown + 62: TypeSampledImage 61 + 63: TypePointer UniformConstant 62 + 64(usamp2DA): 63(ptr) Variable UniformConstant + 70: TypeImage 19(int) Cube array sampled format:Unknown + 71: TypeSampledImage 70 + 72: TypePointer UniformConstant 71 + 73(isampCubeA): 72(ptr) Variable UniformConstant + 79: TypeImage 6(float) 1D depth sampled format:Unknown + 80: TypeSampledImage 79 + 81: TypePointer UniformConstant 80 + 82(samp1Ds): 81(ptr) Variable UniformConstant + 88: TypeImage 6(float) 2D depth sampled format:Unknown + 89: TypeSampledImage 88 + 90: TypePointer UniformConstant 89 + 91(samp2Ds): 90(ptr) Variable UniformConstant + 97: TypeImage 6(float) Cube depth sampled format:Unknown + 98: TypeSampledImage 97 + 99: TypePointer UniformConstant 98 + 100(sampCubes): 99(ptr) Variable UniformConstant + 106: TypeImage 6(float) 1D depth array sampled format:Unknown 107: TypeSampledImage 106 108: TypePointer UniformConstant 107 - 109(sampCubes): 108(ptr) Variable UniformConstant - 116: TypeImage 6(float) 1D depth array sampled format:Unknown - 117: TypeSampledImage 116 - 118: TypePointer UniformConstant 117 - 119(samp1DAs): 118(ptr) Variable UniformConstant - 126: TypeImage 6(float) 2D depth array sampled format:Unknown - 127: TypeSampledImage 126 - 128: TypePointer UniformConstant 127 - 129(samp2DAs): 128(ptr) Variable UniformConstant - 136: TypeImage 6(float) Cube depth array sampled format:Unknown - 137: TypeSampledImage 136 - 138: TypePointer UniformConstant 137 - 139(sampCubeAs): 138(ptr) Variable UniformConstant - 146: TypePointer Function 20(int) - 151: TypeImage 32(int) 2D sampled format:Unknown - 152: TypeSampledImage 151 - 153: TypePointer UniformConstant 152 - 154(usamp2D): 153(ptr) Variable UniformConstant - 160: TypeImage 20(int) 3D sampled format:Unknown - 161: TypeSampledImage 160 - 162: TypePointer UniformConstant 161 - 163(isamp3D): 162(ptr) Variable UniformConstant - 169: TypeImage 20(int) Cube sampled format:Unknown - 170: TypeSampledImage 169 - 171: TypePointer UniformConstant 170 - 172(isampCube): 171(ptr) Variable UniformConstant - 183: TypeImage 6(float) 2D array sampled format:Unknown - 184: TypeSampledImage 183 - 185: TypePointer UniformConstant 184 - 186(samp2DA): 185(ptr) Variable UniformConstant - 192: TypeImage 32(int) Cube array sampled format:Unknown - 193: TypeSampledImage 192 - 194: TypePointer UniformConstant 193 - 195(usampCubeA): 194(ptr) Variable UniformConstant - 229: TypeImage 6(float) Buffer sampled format:Unknown - 230: TypeSampledImage 229 - 231: TypePointer UniformConstant 230 - 232(sampBuf): 231(ptr) Variable UniformConstant - 233: TypeImage 6(float) Rect sampled format:Unknown - 234: TypeSampledImage 233 - 235: TypePointer UniformConstant 234 - 236(sampRect): 235(ptr) Variable UniformConstant + 109(samp1DAs): 108(ptr) Variable UniformConstant + 115: TypeImage 6(float) 2D depth array sampled format:Unknown + 116: TypeSampledImage 115 + 117: TypePointer UniformConstant 116 + 118(samp2DAs): 117(ptr) Variable UniformConstant + 124: TypeImage 6(float) Cube depth array sampled format:Unknown + 125: TypeSampledImage 124 + 126: TypePointer UniformConstant 125 + 127(sampCubeAs): 126(ptr) Variable UniformConstant + 133: TypePointer Function 19(int) + 138: TypeImage 30(int) 2D sampled format:Unknown + 139: TypeSampledImage 138 + 140: TypePointer UniformConstant 139 + 141(usamp2D): 140(ptr) Variable UniformConstant + 147: TypeImage 19(int) 3D sampled format:Unknown + 148: TypeSampledImage 147 + 149: TypePointer UniformConstant 148 + 150(isamp3D): 149(ptr) Variable UniformConstant + 156: TypeImage 19(int) Cube sampled format:Unknown + 157: TypeSampledImage 156 + 158: TypePointer UniformConstant 157 + 159(isampCube): 158(ptr) Variable UniformConstant + 170: TypeImage 6(float) 2D array sampled format:Unknown + 171: TypeSampledImage 170 + 172: TypePointer UniformConstant 171 + 173(samp2DA): 172(ptr) Variable UniformConstant + 179: TypeImage 30(int) Cube array sampled format:Unknown + 180: TypeSampledImage 179 + 181: TypePointer UniformConstant 180 + 182(usampCubeA): 181(ptr) Variable UniformConstant + 216: TypeImage 6(float) Buffer sampled format:Unknown + 217: TypeSampledImage 216 + 218: TypePointer UniformConstant 217 + 219(sampBuf): 218(ptr) Variable UniformConstant + 220: TypeImage 6(float) Rect sampled format:Unknown + 221: TypeSampledImage 220 + 222: TypePointer UniformConstant 221 + 223(sampRect): 222(ptr) Variable UniformConstant 4(main): 2 Function None 3 5: Label 9(lod): 8(ptr) Variable Function 16(pf): 15(ptr) Variable Function - 26(pf2): 8(ptr) Variable Function - 40(pf3): 39(ptr) Variable Function - 147(levels): 146(ptr) Variable Function + 25(pf2): 8(ptr) Variable Function + 38(pf3): 37(ptr) Variable Function + 134(levels): 133(ptr) Variable Function 14: 11 Load 13(samp1D) 17: 6(float) Load 16(pf) - 18: 10 Image 14 - 19: 7(fvec2) ImageQueryLod 18 17 - Store 9(lod) 19 - 25: 22 Load 24(isamp2D) - 27: 7(fvec2) Load 26(pf2) - 28: 21 Image 25 - 29: 7(fvec2) ImageQueryLod 28 27 - 30: 7(fvec2) Load 9(lod) - 31: 7(fvec2) FAdd 30 29 - Store 9(lod) 31 - 37: 34 Load 36(usamp3D) - 41: 38(fvec3) Load 40(pf3) - 42: 33 Image 37 - 43: 7(fvec2) ImageQueryLod 42 41 - 44: 7(fvec2) Load 9(lod) - 45: 7(fvec2) FAdd 44 43 - Store 9(lod) 45 - 50: 47 Load 49(sampCube) - 51: 38(fvec3) Load 40(pf3) - 52: 46 Image 50 - 53: 7(fvec2) ImageQueryLod 52 51 - 54: 7(fvec2) Load 9(lod) - 55: 7(fvec2) FAdd 54 53 - Store 9(lod) 55 - 60: 57 Load 59(isamp1DA) - 61: 6(float) Load 16(pf) - 62: 56 Image 60 - 63: 7(fvec2) ImageQueryLod 62 61 - 64: 7(fvec2) Load 9(lod) - 65: 7(fvec2) FAdd 64 63 - Store 9(lod) 65 - 70: 67 Load 69(usamp2DA) - 71: 7(fvec2) Load 26(pf2) - 72: 66 Image 70 - 73: 7(fvec2) ImageQueryLod 72 71 - 74: 7(fvec2) Load 9(lod) - 75: 7(fvec2) FAdd 74 73 - Store 9(lod) 75 - 80: 77 Load 79(isampCubeA) - 81: 38(fvec3) Load 40(pf3) - 82: 76 Image 80 - 83: 7(fvec2) ImageQueryLod 82 81 - 84: 7(fvec2) Load 9(lod) - 85: 7(fvec2) FAdd 84 83 - Store 9(lod) 85 - 90: 87 Load 89(samp1Ds) - 91: 6(float) Load 16(pf) - 92: 86 Image 90 - 93: 7(fvec2) ImageQueryLod 92 91 - 94: 7(fvec2) Load 9(lod) - 95: 7(fvec2) FAdd 94 93 - Store 9(lod) 95 - 100: 97 Load 99(samp2Ds) - 101: 7(fvec2) Load 26(pf2) - 102: 96 Image 100 - 103: 7(fvec2) ImageQueryLod 102 101 + 18: 7(fvec2) ImageQueryLod 14 17 + Store 9(lod) 18 + 24: 21 Load 23(isamp2D) + 26: 7(fvec2) Load 25(pf2) + 27: 7(fvec2) ImageQueryLod 24 26 + 28: 7(fvec2) Load 9(lod) + 29: 7(fvec2) FAdd 28 27 + Store 9(lod) 29 + 35: 32 Load 34(usamp3D) + 39: 36(fvec3) Load 38(pf3) + 40: 7(fvec2) ImageQueryLod 35 39 + 41: 7(fvec2) Load 9(lod) + 42: 7(fvec2) FAdd 41 40 + Store 9(lod) 42 + 47: 44 Load 46(sampCube) + 48: 36(fvec3) Load 38(pf3) + 49: 7(fvec2) ImageQueryLod 47 48 + 50: 7(fvec2) Load 9(lod) + 51: 7(fvec2) FAdd 50 49 + Store 9(lod) 51 + 56: 53 Load 55(isamp1DA) + 57: 6(float) Load 16(pf) + 58: 7(fvec2) ImageQueryLod 56 57 + 59: 7(fvec2) Load 9(lod) + 60: 7(fvec2) FAdd 59 58 + Store 9(lod) 60 + 65: 62 Load 64(usamp2DA) + 66: 7(fvec2) Load 25(pf2) + 67: 7(fvec2) ImageQueryLod 65 66 + 68: 7(fvec2) Load 9(lod) + 69: 7(fvec2) FAdd 68 67 + Store 9(lod) 69 + 74: 71 Load 73(isampCubeA) + 75: 36(fvec3) Load 38(pf3) + 76: 7(fvec2) ImageQueryLod 74 75 + 77: 7(fvec2) Load 9(lod) + 78: 7(fvec2) FAdd 77 76 + Store 9(lod) 78 + 83: 80 Load 82(samp1Ds) + 84: 6(float) Load 16(pf) + 85: 7(fvec2) ImageQueryLod 83 84 + 86: 7(fvec2) Load 9(lod) + 87: 7(fvec2) FAdd 86 85 + Store 9(lod) 87 + 92: 89 Load 91(samp2Ds) + 93: 7(fvec2) Load 25(pf2) + 94: 7(fvec2) ImageQueryLod 92 93 + 95: 7(fvec2) Load 9(lod) + 96: 7(fvec2) FAdd 95 94 + Store 9(lod) 96 + 101: 98 Load 100(sampCubes) + 102: 36(fvec3) Load 38(pf3) + 103: 7(fvec2) ImageQueryLod 101 102 104: 7(fvec2) Load 9(lod) 105: 7(fvec2) FAdd 104 103 Store 9(lod) 105 - 110: 107 Load 109(sampCubes) - 111: 38(fvec3) Load 40(pf3) - 112: 106 Image 110 - 113: 7(fvec2) ImageQueryLod 112 111 - 114: 7(fvec2) Load 9(lod) - 115: 7(fvec2) FAdd 114 113 - Store 9(lod) 115 - 120: 117 Load 119(samp1DAs) - 121: 6(float) Load 16(pf) - 122: 116 Image 120 - 123: 7(fvec2) ImageQueryLod 122 121 - 124: 7(fvec2) Load 9(lod) - 125: 7(fvec2) FAdd 124 123 - Store 9(lod) 125 - 130: 127 Load 129(samp2DAs) - 131: 7(fvec2) Load 26(pf2) - 132: 126 Image 130 - 133: 7(fvec2) ImageQueryLod 132 131 - 134: 7(fvec2) Load 9(lod) - 135: 7(fvec2) FAdd 134 133 - Store 9(lod) 135 - 140: 137 Load 139(sampCubeAs) - 141: 38(fvec3) Load 40(pf3) - 142: 136 Image 140 - 143: 7(fvec2) ImageQueryLod 142 141 - 144: 7(fvec2) Load 9(lod) - 145: 7(fvec2) FAdd 144 143 - Store 9(lod) 145 - 148: 11 Load 13(samp1D) - 149: 10 Image 148 - 150: 20(int) ImageQueryLevels 149 - Store 147(levels) 150 - 155: 152 Load 154(usamp2D) - 156: 151 Image 155 - 157: 20(int) ImageQueryLevels 156 - 158: 20(int) Load 147(levels) - 159: 20(int) IAdd 158 157 - Store 147(levels) 159 - 164: 161 Load 163(isamp3D) - 165: 160 Image 164 - 166: 20(int) ImageQueryLevels 165 - 167: 20(int) Load 147(levels) - 168: 20(int) IAdd 167 166 - Store 147(levels) 168 - 173: 170 Load 172(isampCube) - 174: 169 Image 173 - 175: 20(int) ImageQueryLevels 174 - 176: 20(int) Load 147(levels) - 177: 20(int) IAdd 176 175 - Store 147(levels) 177 - 178: 57 Load 59(isamp1DA) - 179: 56 Image 178 - 180: 20(int) ImageQueryLevels 179 - 181: 20(int) Load 147(levels) - 182: 20(int) IAdd 181 180 - Store 147(levels) 182 - 187: 184 Load 186(samp2DA) - 188: 183 Image 187 - 189: 20(int) ImageQueryLevels 188 - 190: 20(int) Load 147(levels) - 191: 20(int) IAdd 190 189 - Store 147(levels) 191 - 196: 193 Load 195(usampCubeA) - 197: 192 Image 196 - 198: 20(int) ImageQueryLevels 197 - 199: 20(int) Load 147(levels) - 200: 20(int) IAdd 199 198 - Store 147(levels) 200 - 201: 87 Load 89(samp1Ds) - 202: 86 Image 201 - 203: 20(int) ImageQueryLevels 202 - Store 147(levels) 203 - 204: 97 Load 99(samp2Ds) - 205: 96 Image 204 - 206: 20(int) ImageQueryLevels 205 - 207: 20(int) Load 147(levels) - 208: 20(int) IAdd 207 206 - Store 147(levels) 208 - 209: 107 Load 109(sampCubes) - 210: 106 Image 209 - 211: 20(int) ImageQueryLevels 210 - 212: 20(int) Load 147(levels) - 213: 20(int) IAdd 212 211 - Store 147(levels) 213 - 214: 117 Load 119(samp1DAs) - 215: 116 Image 214 - 216: 20(int) ImageQueryLevels 215 - 217: 20(int) Load 147(levels) - 218: 20(int) IAdd 217 216 - Store 147(levels) 218 - 219: 127 Load 129(samp2DAs) - 220: 126 Image 219 - 221: 20(int) ImageQueryLevels 220 - 222: 20(int) Load 147(levels) - 223: 20(int) IAdd 222 221 - Store 147(levels) 223 - 224: 137 Load 139(sampCubeAs) - 225: 136 Image 224 - 226: 20(int) ImageQueryLevels 225 - 227: 20(int) Load 147(levels) - 228: 20(int) IAdd 227 226 - Store 147(levels) 228 + 110: 107 Load 109(samp1DAs) + 111: 6(float) Load 16(pf) + 112: 7(fvec2) ImageQueryLod 110 111 + 113: 7(fvec2) Load 9(lod) + 114: 7(fvec2) FAdd 113 112 + Store 9(lod) 114 + 119: 116 Load 118(samp2DAs) + 120: 7(fvec2) Load 25(pf2) + 121: 7(fvec2) ImageQueryLod 119 120 + 122: 7(fvec2) Load 9(lod) + 123: 7(fvec2) FAdd 122 121 + Store 9(lod) 123 + 128: 125 Load 127(sampCubeAs) + 129: 36(fvec3) Load 38(pf3) + 130: 7(fvec2) ImageQueryLod 128 129 + 131: 7(fvec2) Load 9(lod) + 132: 7(fvec2) FAdd 131 130 + Store 9(lod) 132 + 135: 11 Load 13(samp1D) + 136: 10 Image 135 + 137: 19(int) ImageQueryLevels 136 + Store 134(levels) 137 + 142: 139 Load 141(usamp2D) + 143: 138 Image 142 + 144: 19(int) ImageQueryLevels 143 + 145: 19(int) Load 134(levels) + 146: 19(int) IAdd 145 144 + Store 134(levels) 146 + 151: 148 Load 150(isamp3D) + 152: 147 Image 151 + 153: 19(int) ImageQueryLevels 152 + 154: 19(int) Load 134(levels) + 155: 19(int) IAdd 154 153 + Store 134(levels) 155 + 160: 157 Load 159(isampCube) + 161: 156 Image 160 + 162: 19(int) ImageQueryLevels 161 + 163: 19(int) Load 134(levels) + 164: 19(int) IAdd 163 162 + Store 134(levels) 164 + 165: 53 Load 55(isamp1DA) + 166: 52 Image 165 + 167: 19(int) ImageQueryLevels 166 + 168: 19(int) Load 134(levels) + 169: 19(int) IAdd 168 167 + Store 134(levels) 169 + 174: 171 Load 173(samp2DA) + 175: 170 Image 174 + 176: 19(int) ImageQueryLevels 175 + 177: 19(int) Load 134(levels) + 178: 19(int) IAdd 177 176 + Store 134(levels) 178 + 183: 180 Load 182(usampCubeA) + 184: 179 Image 183 + 185: 19(int) ImageQueryLevels 184 + 186: 19(int) Load 134(levels) + 187: 19(int) IAdd 186 185 + Store 134(levels) 187 + 188: 80 Load 82(samp1Ds) + 189: 79 Image 188 + 190: 19(int) ImageQueryLevels 189 + Store 134(levels) 190 + 191: 89 Load 91(samp2Ds) + 192: 88 Image 191 + 193: 19(int) ImageQueryLevels 192 + 194: 19(int) Load 134(levels) + 195: 19(int) IAdd 194 193 + Store 134(levels) 195 + 196: 98 Load 100(sampCubes) + 197: 97 Image 196 + 198: 19(int) ImageQueryLevels 197 + 199: 19(int) Load 134(levels) + 200: 19(int) IAdd 199 198 + Store 134(levels) 200 + 201: 107 Load 109(samp1DAs) + 202: 106 Image 201 + 203: 19(int) ImageQueryLevels 202 + 204: 19(int) Load 134(levels) + 205: 19(int) IAdd 204 203 + Store 134(levels) 205 + 206: 116 Load 118(samp2DAs) + 207: 115 Image 206 + 208: 19(int) ImageQueryLevels 207 + 209: 19(int) Load 134(levels) + 210: 19(int) IAdd 209 208 + Store 134(levels) 210 + 211: 125 Load 127(sampCubeAs) + 212: 124 Image 211 + 213: 19(int) ImageQueryLevels 212 + 214: 19(int) Load 134(levels) + 215: 19(int) IAdd 214 213 + Store 134(levels) 215 Return FunctionEnd diff --git a/Test/baseResults/spv.register.autoassign-2.frag.out b/Test/baseResults/spv.register.autoassign-2.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..6d2ad36e833e5fc610c5e16242329f7354803d94 --- /dev/null +++ b/Test/baseResults/spv.register.autoassign-2.frag.out @@ -0,0 +1,54 @@ +spv.register.autoassign-2.frag +// 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 "main" 9 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 9 "Color" + Name 12 "g_tScene[0]" + Name 16 "g_tSamp" + Name 25 "g_tScene[1]" + Decorate 9(Color) Location 0 + Decorate 12(g_tScene[0]) DescriptorSet 0 + Decorate 12(g_tScene[0]) Binding 10 + Decorate 16(g_tSamp) DescriptorSet 0 + Decorate 16(g_tSamp) Binding 5 + Decorate 25(g_tScene[1]) DescriptorSet 0 + Decorate 25(g_tScene[1]) Binding 11 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypePointer Output 7(fvec4) + 9(Color): 8(ptr) Variable Output + 10: TypeImage 6(float) 2D sampled format:Unknown + 11: TypePointer UniformConstant 10 + 12(g_tScene[0]): 11(ptr) Variable UniformConstant + 14: TypeSampler + 15: TypePointer UniformConstant 14 + 16(g_tSamp): 15(ptr) Variable UniformConstant + 18: TypeSampledImage 10 + 20: TypeVector 6(float) 2 + 21: 6(float) Constant 1050253722 + 22: 6(float) Constant 1053609165 + 23: 20(fvec2) ConstantComposite 21 22 + 25(g_tScene[1]): 11(ptr) Variable UniformConstant + 4(main): 2 Function None 3 + 5: Label + 13: 10 Load 12(g_tScene[0]) + 17: 14 Load 16(g_tSamp) + 19: 18 SampledImage 13 17 + 24: 7(fvec4) ImageSampleImplicitLod 19 23 + 26: 10 Load 25(g_tScene[1]) + 27: 14 Load 16(g_tSamp) + 28: 18 SampledImage 26 27 + 29: 7(fvec4) ImageSampleImplicitLod 28 23 + 30: 7(fvec4) FAdd 24 29 + Store 9(Color) 30 + Return + FunctionEnd diff --git a/Test/baseResults/spv.register.autoassign.frag.out b/Test/baseResults/spv.register.autoassign.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..4b4655e3bb28fff63ff2032b48e2d1e839b814ad --- /dev/null +++ b/Test/baseResults/spv.register.autoassign.frag.out @@ -0,0 +1,233 @@ +spv.register.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 150 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_ep" 145 + ExecutionMode 4 OriginUpperLeft + Name 4 "main_ep" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "$Global" + MemberName 95($Global) 0 "mystruct" + MemberName 95($Global) 1 "myfloat4_a" + MemberName 95($Global) 2 "myfloat4_b" + MemberName 95($Global) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + Name 138 "psout" + Name 145 "Color" + Name 149 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 27(g_tTex2) Binding 14 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 29(g_sSamp2) Binding 6 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 64(g_tTex4) Binding 15 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 69(g_sSamp4) Binding 8 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 84(g_tTex5) Binding 16 + Decorate 86(g_sSamp5) DescriptorSet 0 + Decorate 86(g_sSamp5) Binding 9 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95($Global) 0 Offset 0 + MemberDecorate 95($Global) 1 Offset 32 + MemberDecorate 95($Global) 2 Offset 48 + MemberDecorate 95($Global) 3 Offset 64 + Decorate 95($Global) Block + Decorate 97 DescriptorSet 0 + Decorate 97 Binding 20 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 145(Color) Location 0 + Decorate 149(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95($Global): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95($Global) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136(PS_OUTPUT): TypeStruct 7(fvec4) + 137: TypePointer Function 136(PS_OUTPUT) + 142: TypePointer Function 7(fvec4) + 144: TypePointer Output 7(fvec4) + 145(Color): 144(ptr) Variable Output +149(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main_ep): 2 Function None 3 + 5: Label + 138(psout): 137(ptr) Variable Function + 139: 7(fvec4) FunctionCall 9(Func1() + 140: 7(fvec4) FunctionCall 11(Func2() + 141: 7(fvec4) FAdd 139 140 + 143: 142(ptr) AccessChain 138(psout) 41 + Store 143 141 + 146: 142(ptr) AccessChain 138(psout) 41 + 147: 7(fvec4) Load 146 + Store 145(Color) 147 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/spv.register.autoassign.rangetest.frag.out b/Test/baseResults/spv.register.autoassign.rangetest.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..8eb76c9b741c821a4f575a14874c766da3cd1a43 --- /dev/null +++ b/Test/baseResults/spv.register.autoassign.rangetest.frag.out @@ -0,0 +1,5 @@ +spv.register.autoassign.rangetest.frag +INTERNAL ERROR: mapped binding out of range: g_tSamp +INTERNAL ERROR: mapped binding out of range: g_tScene + +SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/spv.register.noautoassign.frag.out b/Test/baseResults/spv.register.noautoassign.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..71140dcd9681a8cef9ff6517ffef4495c6459a37 --- /dev/null +++ b/Test/baseResults/spv.register.noautoassign.frag.out @@ -0,0 +1,226 @@ +spv.register.noautoassign.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 150 + + Capability Shader + Capability Sampled1D + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main_ep" 145 + ExecutionMode 4 OriginUpperLeft + Name 4 "main_ep" + Name 9 "Func1(" + Name 11 "Func2(" + Name 13 "Func2_unused(" + Name 17 "g_tTex1" + Name 21 "g_sSamp1" + Name 27 "g_tTex2" + Name 29 "g_sSamp2" + Name 39 "g_tTex3" + Name 46 "g_sSamp3" + Name 64 "g_tTex4" + Name 69 "g_sSamp4" + Name 84 "g_tTex5" + Name 86 "g_sSamp5" + Name 93 "MyStruct_t" + MemberName 93(MyStruct_t) 0 "a" + MemberName 93(MyStruct_t) 1 "b" + MemberName 93(MyStruct_t) 2 "c" + Name 95 "$Global" + MemberName 95($Global) 0 "mystruct" + MemberName 95($Global) 1 "myfloat4_a" + MemberName 95($Global) 2 "myfloat4_b" + MemberName 95($Global) 3 "myint4_a" + Name 97 "" + Name 119 "g_tTex_unused1" + Name 121 "g_sSamp_unused1" + Name 126 "g_tTex_unused2" + Name 128 "g_sSamp_unused2" + Name 136 "PS_OUTPUT" + MemberName 136(PS_OUTPUT) 0 "Color" + Name 138 "psout" + Name 145 "Color" + Name 149 "g_tTex_unused3" + Decorate 17(g_tTex1) DescriptorSet 0 + Decorate 17(g_tTex1) Binding 11 + Decorate 21(g_sSamp1) DescriptorSet 0 + Decorate 21(g_sSamp1) Binding 5 + Decorate 27(g_tTex2) DescriptorSet 0 + Decorate 29(g_sSamp2) DescriptorSet 0 + Decorate 39(g_tTex3) DescriptorSet 0 + Decorate 39(g_tTex3) Binding 13 + Decorate 46(g_sSamp3) DescriptorSet 0 + Decorate 46(g_sSamp3) Binding 7 + Decorate 64(g_tTex4) DescriptorSet 0 + Decorate 69(g_sSamp4) DescriptorSet 0 + Decorate 84(g_tTex5) DescriptorSet 0 + Decorate 86(g_sSamp5) DescriptorSet 0 + MemberDecorate 93(MyStruct_t) 0 Offset 0 + MemberDecorate 93(MyStruct_t) 1 Offset 4 + MemberDecorate 93(MyStruct_t) 2 Offset 16 + MemberDecorate 95($Global) 0 Offset 0 + MemberDecorate 95($Global) 1 Offset 32 + MemberDecorate 95($Global) 2 Offset 48 + MemberDecorate 95($Global) 3 Offset 64 + Decorate 95($Global) Block + Decorate 97 DescriptorSet 0 + Decorate 119(g_tTex_unused1) DescriptorSet 0 + Decorate 119(g_tTex_unused1) Binding 10 + Decorate 121(g_sSamp_unused1) DescriptorSet 0 + Decorate 126(g_tTex_unused2) DescriptorSet 0 + Decorate 126(g_tTex_unused2) Binding 12 + Decorate 128(g_sSamp_unused2) DescriptorSet 0 + Decorate 145(Color) Location 0 + Decorate 149(g_tTex_unused3) DescriptorSet 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypeVector 6(float) 4 + 8: TypeFunction 7(fvec4) + 15: TypeImage 6(float) 1D sampled format:Unknown + 16: TypePointer UniformConstant 15 + 17(g_tTex1): 16(ptr) Variable UniformConstant + 19: TypeSampler + 20: TypePointer UniformConstant 19 + 21(g_sSamp1): 20(ptr) Variable UniformConstant + 23: TypeSampledImage 15 + 25: 6(float) Constant 1036831949 + 27(g_tTex2): 16(ptr) Variable UniformConstant + 29(g_sSamp2): 20(ptr) Variable UniformConstant + 32: 6(float) Constant 1045220557 + 35: TypeInt 32 0 + 36: 35(int) Constant 2 + 37: TypeArray 15 36 + 38: TypePointer UniformConstant 37 + 39(g_tTex3): 38(ptr) Variable UniformConstant + 40: TypeInt 32 1 + 41: 40(int) Constant 0 + 44: TypeArray 19 36 + 45: TypePointer UniformConstant 44 + 46(g_sSamp3): 45(ptr) Variable UniformConstant + 50: 6(float) Constant 1050253722 + 53: 40(int) Constant 1 + 61: 35(int) Constant 3 + 62: TypeArray 15 61 + 63: TypePointer UniformConstant 62 + 64(g_tTex4): 63(ptr) Variable UniformConstant + 67: TypeArray 19 61 + 68: TypePointer UniformConstant 67 + 69(g_sSamp4): 68(ptr) Variable UniformConstant + 73: 6(float) Constant 1053609165 + 76: 40(int) Constant 2 + 84(g_tTex5): 16(ptr) Variable UniformConstant + 86(g_sSamp5): 20(ptr) Variable UniformConstant + 89: 6(float) Constant 1056964608 + 92: TypeVector 6(float) 3 + 93(MyStruct_t): TypeStruct 40(int) 6(float) 92(fvec3) + 94: TypeVector 40(int) 4 + 95($Global): TypeStruct 93(MyStruct_t) 7(fvec4) 7(fvec4) 94(ivec4) + 96: TypePointer Uniform 95($Global) + 97: 96(ptr) Variable Uniform + 98: 35(int) Constant 1 + 99: TypePointer Uniform 6(float) +119(g_tTex_unused1): 16(ptr) Variable UniformConstant +121(g_sSamp_unused1): 20(ptr) Variable UniformConstant + 124: 6(float) Constant 1066192077 +126(g_tTex_unused2): 16(ptr) Variable UniformConstant +128(g_sSamp_unused2): 20(ptr) Variable UniformConstant + 131: 6(float) Constant 1067030938 + 136(PS_OUTPUT): TypeStruct 7(fvec4) + 137: TypePointer Function 136(PS_OUTPUT) + 142: TypePointer Function 7(fvec4) + 144: TypePointer Output 7(fvec4) + 145(Color): 144(ptr) Variable Output +149(g_tTex_unused3): 16(ptr) Variable UniformConstant + 4(main_ep): 2 Function None 3 + 5: Label + 138(psout): 137(ptr) Variable Function + 139: 7(fvec4) FunctionCall 9(Func1() + 140: 7(fvec4) FunctionCall 11(Func2() + 141: 7(fvec4) FAdd 139 140 + 143: 142(ptr) AccessChain 138(psout) 41 + Store 143 141 + 146: 142(ptr) AccessChain 138(psout) 41 + 147: 7(fvec4) Load 146 + Store 145(Color) 147 + Return + FunctionEnd + 9(Func1(): 7(fvec4) Function None 8 + 10: Label + 18: 15 Load 17(g_tTex1) + 22: 19 Load 21(g_sSamp1) + 24: 23 SampledImage 18 22 + 26: 7(fvec4) ImageSampleImplicitLod 24 25 + 28: 15 Load 27(g_tTex2) + 30: 19 Load 29(g_sSamp2) + 31: 23 SampledImage 28 30 + 33: 7(fvec4) ImageSampleImplicitLod 31 32 + 34: 7(fvec4) FAdd 26 33 + 42: 16(ptr) AccessChain 39(g_tTex3) 41 + 43: 15 Load 42 + 47: 20(ptr) AccessChain 46(g_sSamp3) 41 + 48: 19 Load 47 + 49: 23 SampledImage 43 48 + 51: 7(fvec4) ImageSampleImplicitLod 49 50 + 52: 7(fvec4) FAdd 34 51 + 54: 16(ptr) AccessChain 39(g_tTex3) 53 + 55: 15 Load 54 + 56: 20(ptr) AccessChain 46(g_sSamp3) 53 + 57: 19 Load 56 + 58: 23 SampledImage 55 57 + 59: 7(fvec4) ImageSampleImplicitLod 58 50 + 60: 7(fvec4) FAdd 52 59 + 65: 16(ptr) AccessChain 64(g_tTex4) 53 + 66: 15 Load 65 + 70: 20(ptr) AccessChain 69(g_sSamp4) 53 + 71: 19 Load 70 + 72: 23 SampledImage 66 71 + 74: 7(fvec4) ImageSampleImplicitLod 72 73 + 75: 7(fvec4) FAdd 60 74 + 77: 16(ptr) AccessChain 64(g_tTex4) 76 + 78: 15 Load 77 + 79: 20(ptr) AccessChain 69(g_sSamp4) 76 + 80: 19 Load 79 + 81: 23 SampledImage 78 80 + 82: 7(fvec4) ImageSampleImplicitLod 81 73 + 83: 7(fvec4) FAdd 75 82 + 85: 15 Load 84(g_tTex5) + 87: 19 Load 86(g_sSamp5) + 88: 23 SampledImage 85 87 + 90: 7(fvec4) ImageSampleImplicitLod 88 89 + 91: 7(fvec4) FAdd 83 90 + 100: 99(ptr) AccessChain 97 41 76 98 + 101: 6(float) Load 100 + 102: 7(fvec4) CompositeConstruct 101 101 101 101 + 103: 7(fvec4) FAdd 91 102 + ReturnValue 103 + FunctionEnd + 11(Func2(): 7(fvec4) Function None 8 + 12: Label + 106: 15 Load 17(g_tTex1) + 107: 19 Load 21(g_sSamp1) + 108: 23 SampledImage 106 107 + 109: 7(fvec4) ImageSampleImplicitLod 108 25 + 110: 16(ptr) AccessChain 39(g_tTex3) 53 + 111: 15 Load 110 + 112: 20(ptr) AccessChain 46(g_sSamp3) 53 + 113: 19 Load 112 + 114: 23 SampledImage 111 113 + 115: 7(fvec4) ImageSampleImplicitLod 114 50 + 116: 7(fvec4) FAdd 109 115 + ReturnValue 116 + FunctionEnd +13(Func2_unused(): 7(fvec4) Function None 8 + 14: Label + 120: 15 Load 119(g_tTex_unused1) + 122: 19 Load 121(g_sSamp_unused1) + 123: 23 SampledImage 120 122 + 125: 7(fvec4) ImageSampleImplicitLod 123 124 + 127: 15 Load 126(g_tTex_unused2) + 129: 19 Load 128(g_sSamp_unused2) + 130: 23 SampledImage 127 129 + 132: 7(fvec4) ImageSampleImplicitLod 130 131 + 133: 7(fvec4) FAdd 125 132 + ReturnValue 133 + FunctionEnd diff --git a/Test/baseResults/spv.rw.autoassign.frag.out b/Test/baseResults/spv.rw.autoassign.frag.out new file mode 100644 index 0000000000000000000000000000000000000000..d6b75ba3c7a5edc5d695db379f67473e4e4c5fcb --- /dev/null +++ b/Test/baseResults/spv.rw.autoassign.frag.out @@ -0,0 +1,66 @@ +spv.rw.autoassign.frag +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 37 + + Capability Shader + Capability Sampled1D + Capability SampledBuffer + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Fragment 4 "main" 33 + ExecutionMode 4 OriginUpperLeft + Name 4 "main" + Name 8 "r00" + Name 11 "g_tTex1df1" + Name 18 "r01" + Name 21 "g_tBuf1du1" + Name 25 "PS_OUTPUT" + MemberName 25(PS_OUTPUT) 0 "Color" + Name 27 "psout" + Name 33 "Color" + Decorate 11(g_tTex1df1) DescriptorSet 0 + Decorate 11(g_tTex1df1) Binding 20 + Decorate 21(g_tBuf1du1) DescriptorSet 0 + Decorate 21(g_tBuf1du1) Binding 21 + Decorate 33(Color) Location 0 + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeFloat 32 + 7: TypePointer Function 6(float) + 9: TypeImage 6(float) 1D nonsampled format:R32f + 10: TypePointer UniformConstant 9 + 11(g_tTex1df1): 10(ptr) Variable UniformConstant + 13: TypeInt 32 1 + 14: 13(int) Constant 0 + 16: TypeInt 32 0 + 17: TypePointer Function 16(int) + 19: TypeImage 16(int) Buffer nonsampled format:R32ui + 20: TypePointer UniformConstant 19 + 21(g_tBuf1du1): 20(ptr) Variable UniformConstant + 24: TypeVector 6(float) 4 + 25(PS_OUTPUT): TypeStruct 24(fvec4) + 26: TypePointer Function 25(PS_OUTPUT) + 28: 6(float) Constant 0 + 29: 24(fvec4) ConstantComposite 28 28 28 28 + 30: TypePointer Function 24(fvec4) + 32: TypePointer Output 24(fvec4) + 33(Color): 32(ptr) Variable Output + 4(main): 2 Function None 3 + 5: Label + 8(r00): 7(ptr) Variable Function + 18(r01): 17(ptr) Variable Function + 27(psout): 26(ptr) Variable Function + 12: 9 Load 11(g_tTex1df1) + 15: 6(float) ImageRead 12 14 + Store 8(r00) 15 + 22: 19 Load 21(g_tBuf1du1) + 23: 16(int) ImageRead 22 14 + Store 18(r01) 23 + 31: 30(ptr) AccessChain 27(psout) 14 + Store 31 29 + 34: 30(ptr) AccessChain 27(psout) 14 + 35: 24(fvec4) Load 34 + Store 33(Color) 35 + Return + FunctionEnd diff --git a/Test/baseResults/spv.separate.frag.out b/Test/baseResults/spv.separate.frag.out index 2a71a019ece0a8597ccdfbb1704ed831197f7e41..c654117f7f40c7addba1a5be6c5e1d3669494a6b 100644 --- a/Test/baseResults/spv.separate.frag.out +++ b/Test/baseResults/spv.separate.frag.out @@ -1,10 +1,6 @@ spv.separate.frag Warning, version 400 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 319 diff --git a/Test/baseResults/spv.set.vert.out b/Test/baseResults/spv.set.vert.out index 72fbaa70dcc7222ef1b55e886b21f0f73e0343a7..38cb669c6ae5c0d256e978ed3d347d0c5895f4e4 100755 --- a/Test/baseResults/spv.set.vert.out +++ b/Test/baseResults/spv.set.vert.out @@ -1,10 +1,6 @@ spv.set.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 22 diff --git a/Test/baseResults/spv.shaderBallot.comp.out b/Test/baseResults/spv.shaderBallot.comp.out index cb2e0130ab213b0a56a92659c314d9713d6f3d93..4f03312848ef85db048a60bf21b76879080f5402 100644 --- a/Test/baseResults/spv.shaderBallot.comp.out +++ b/Test/baseResults/spv.shaderBallot.comp.out @@ -1,20 +1,18 @@ spv.shaderBallot.comp Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked compute stage: - - -Missing functionality: shader ballot // Module Version 10000 // Generated by (magic number): 80001 -// Id's are bound by 241 +// Id's are bound by 299 Capability Shader Capability Int64 + Capability Groups + Capability SubgroupBallotKHR + Extension "SPV_KHR_shader_ballot" 1: ExtInstImport "GLSL.std.450" MemoryModel Logical GLSL450 - EntryPoint GLCompute 4 "main" 10 22 24 27 30 33 + EntryPoint GLCompute 4 "main" 10 12 21 23 26 29 32 ExecutionMode 4 LocalSize 8 8 1 Source GLSL 450 SourceExtension "GL_ARB_gpu_shader_int64" @@ -22,293 +20,358 @@ Missing functionality: shader ballot Name 4 "main" Name 8 "invocation" Name 10 "gl_SubGroupInvocationARB" - Name 13 "gl_SubGroupSizeARB" - Name 20 "relMask" - Name 22 "gl_SubGroupEqMaskARB" - Name 24 "gl_SubGroupGeMaskARB" - Name 27 "gl_SubGroupGtMaskARB" - Name 30 "gl_SubGroupLeMaskARB" - Name 33 "gl_SubGroupLtMaskARB" - Name 48 "Buffers" - MemberName 48(Buffers) 0 "f4" - MemberName 48(Buffers) 1 "i4" - MemberName 48(Buffers) 2 "u4" - Name 51 "data" - MemberDecorate 48(Buffers) 0 Offset 0 - MemberDecorate 48(Buffers) 1 Offset 16 - MemberDecorate 48(Buffers) 2 Offset 32 - Decorate 48(Buffers) BufferBlock - Decorate 51(data) DescriptorSet 0 - Decorate 51(data) Binding 0 - Decorate 240 BuiltIn WorkgroupSize + Name 12 "gl_SubGroupSizeARB" + Name 19 "relMask" + Name 21 "gl_SubGroupEqMaskARB" + Name 23 "gl_SubGroupGeMaskARB" + Name 26 "gl_SubGroupGtMaskARB" + Name 29 "gl_SubGroupLeMaskARB" + Name 32 "gl_SubGroupLtMaskARB" + Name 52 "Buffers" + MemberName 52(Buffers) 0 "f4" + MemberName 52(Buffers) 1 "i4" + MemberName 52(Buffers) 2 "u4" + Name 55 "data" + Decorate 10(gl_SubGroupInvocationARB) BuiltIn SubgroupLocalInvocationId + Decorate 12(gl_SubGroupSizeARB) BuiltIn SubgroupSize + Decorate 21(gl_SubGroupEqMaskARB) BuiltIn SubgroupEqMaskKHR + Decorate 23(gl_SubGroupGeMaskARB) BuiltIn SubgroupGeMaskKHR + Decorate 26(gl_SubGroupGtMaskARB) BuiltIn SubgroupGtMaskKHR + Decorate 29(gl_SubGroupLeMaskARB) BuiltIn SubgroupLeMaskKHR + Decorate 32(gl_SubGroupLtMaskARB) BuiltIn SubgroupLtMaskKHR + MemberDecorate 52(Buffers) 0 Offset 0 + MemberDecorate 52(Buffers) 1 Offset 16 + MemberDecorate 52(Buffers) 2 Offset 32 + Decorate 52(Buffers) BufferBlock + Decorate 55(data) DescriptorSet 0 + Decorate 55(data) Binding 0 + Decorate 298 BuiltIn WorkgroupSize 2: TypeVoid 3: TypeFunction 2 6: TypeInt 32 0 7: TypePointer Function 6(int) 9: TypePointer Input 6(int) 10(gl_SubGroupInvocationARB): 9(ptr) Variable Input - 12: TypePointer UniformConstant 6(int) -13(gl_SubGroupSizeARB): 12(ptr) Variable UniformConstant - 16: 6(int) Constant 4 - 18: TypeInt 64 0 - 19: TypePointer Function 18(int) - 21: TypePointer Input 18(int) -22(gl_SubGroupEqMaskARB): 21(ptr) Variable Input -24(gl_SubGroupGeMaskARB): 21(ptr) Variable Input -27(gl_SubGroupGtMaskARB): 21(ptr) Variable Input -30(gl_SubGroupLeMaskARB): 21(ptr) Variable Input -33(gl_SubGroupLtMaskARB): 21(ptr) Variable Input - 37: TypeBool - 38: 37(bool) ConstantTrue - 43: TypeFloat 32 - 44: TypeVector 43(float) 4 - 45: TypeInt 32 1 - 46: TypeVector 45(int) 4 - 47: TypeVector 6(int) 4 - 48(Buffers): TypeStruct 44(fvec4) 46(ivec4) 47(ivec4) - 49: TypeArray 48(Buffers) 16 - 50: TypePointer Uniform 49 - 51(data): 50(ptr) Variable Uniform - 53: 45(int) Constant 0 - 54: 6(int) Constant 0 - 55: TypePointer Uniform 43(float) - 62: 45(int) Constant 1 - 63: TypeVector 43(float) 2 - 64: TypePointer Uniform 44(fvec4) - 74: 45(int) Constant 2 - 75: TypeVector 43(float) 3 - 85: 45(int) Constant 3 - 92: TypePointer Uniform 45(int) - 99: TypeVector 45(int) 2 - 100: TypePointer Uniform 46(ivec4) - 110: TypeVector 45(int) 3 - 126: TypePointer Uniform 6(int) - 133: TypeVector 6(int) 2 - 134: TypePointer Uniform 47(ivec4) - 144: TypeVector 6(int) 3 - 238: 6(int) Constant 8 - 239: 6(int) Constant 1 - 240: 144(ivec3) ConstantComposite 238 238 239 +12(gl_SubGroupSizeARB): 9(ptr) Variable Input + 15: 6(int) Constant 4 + 17: TypeInt 64 0 + 18: TypePointer Function 17(int) + 20: TypePointer Input 17(int) +21(gl_SubGroupEqMaskARB): 20(ptr) Variable Input +23(gl_SubGroupGeMaskARB): 20(ptr) Variable Input +26(gl_SubGroupGtMaskARB): 20(ptr) Variable Input +29(gl_SubGroupLeMaskARB): 20(ptr) Variable Input +32(gl_SubGroupLtMaskARB): 20(ptr) Variable Input + 36: TypeBool + 37: 36(bool) ConstantTrue + 38: TypeVector 6(int) 4 + 42: TypeVector 6(int) 2 + 48: TypeFloat 32 + 49: TypeVector 48(float) 4 + 50: TypeInt 32 1 + 51: TypeVector 50(int) 4 + 52(Buffers): TypeStruct 49(fvec4) 51(ivec4) 38(ivec4) + 53: TypeArray 52(Buffers) 15 + 54: TypePointer Uniform 53 + 55(data): 54(ptr) Variable Uniform + 57: 50(int) Constant 0 + 58: 6(int) Constant 0 + 59: TypePointer Uniform 48(float) + 63: 6(int) Constant 3 + 67: 50(int) Constant 1 + 68: TypeVector 48(float) 2 + 69: TypePointer Uniform 49(fvec4) + 83: 50(int) Constant 2 + 84: TypeVector 48(float) 3 + 100: 50(int) Constant 3 + 115: TypePointer Uniform 50(int) + 122: TypeVector 50(int) 2 + 123: TypePointer Uniform 51(ivec4) + 137: TypeVector 50(int) 3 + 167: TypePointer Uniform 6(int) + 174: TypePointer Uniform 38(ivec4) + 188: TypeVector 6(int) 3 + 296: 6(int) Constant 8 + 297: 6(int) Constant 1 + 298: 188(ivec3) ConstantComposite 296 296 297 4(main): 2 Function None 3 5: Label 8(invocation): 7(ptr) Variable Function - 20(relMask): 19(ptr) Variable Function + 19(relMask): 18(ptr) Variable Function 11: 6(int) Load 10(gl_SubGroupInvocationARB) - 14: 6(int) Load 13(gl_SubGroupSizeARB) - 15: 6(int) IAdd 11 14 - 17: 6(int) UMod 15 16 - Store 8(invocation) 17 - 23: 18(int) Load 22(gl_SubGroupEqMaskARB) - 25: 18(int) Load 24(gl_SubGroupGeMaskARB) - 26: 18(int) IAdd 23 25 - 28: 18(int) Load 27(gl_SubGroupGtMaskARB) - 29: 18(int) IAdd 26 28 - 31: 18(int) Load 30(gl_SubGroupLeMaskARB) - 32: 18(int) IAdd 29 31 - 34: 18(int) Load 33(gl_SubGroupLtMaskARB) - 35: 18(int) IAdd 32 34 - Store 20(relMask) 35 - 36: 18(int) Load 20(relMask) - 39: 18(int) ExtInst 1(GLSL.std.450) 0(Unknown) 38 - 40: 37(bool) IEqual 36 39 - SelectionMerge 42 None - BranchConditional 40 41 159 - 41: Label - 52: 6(int) Load 8(invocation) - 56: 55(ptr) AccessChain 51(data) 53 53 54 - 57: 43(float) Load 56 - 58: 6(int) Load 8(invocation) - 59: 43(float) ExtInst 1(GLSL.std.450) 0(Unknown) 57 58 - 60: 55(ptr) AccessChain 51(data) 52 53 54 - Store 60 59 - 61: 6(int) Load 8(invocation) - 65: 64(ptr) AccessChain 51(data) 62 53 - 66: 44(fvec4) Load 65 - 67: 63(fvec2) VectorShuffle 66 66 0 1 - 68: 6(int) Load 8(invocation) - 69: 63(fvec2) ExtInst 1(GLSL.std.450) 0(Unknown) 67 68 - 70: 64(ptr) AccessChain 51(data) 61 53 - 71: 44(fvec4) Load 70 - 72: 44(fvec4) VectorShuffle 71 69 4 5 2 3 - Store 70 72 + 13: 6(int) Load 12(gl_SubGroupSizeARB) + 14: 6(int) IAdd 11 13 + 16: 6(int) UMod 14 15 + Store 8(invocation) 16 + 22: 17(int) Load 21(gl_SubGroupEqMaskARB) + 24: 17(int) Load 23(gl_SubGroupGeMaskARB) + 25: 17(int) IAdd 22 24 + 27: 17(int) Load 26(gl_SubGroupGtMaskARB) + 28: 17(int) IAdd 25 27 + 30: 17(int) Load 29(gl_SubGroupLeMaskARB) + 31: 17(int) IAdd 28 30 + 33: 17(int) Load 32(gl_SubGroupLtMaskARB) + 34: 17(int) IAdd 31 33 + Store 19(relMask) 34 + 35: 17(int) Load 19(relMask) + 39: 38(ivec4) SubgroupBallotKHR 37 + 40: 6(int) CompositeExtract 39 0 + 41: 6(int) CompositeExtract 39 1 + 43: 42(ivec2) CompositeConstruct 40 41 + 44: 17(int) Bitcast 43 + 45: 36(bool) IEqual 35 44 + SelectionMerge 47 None + BranchConditional 45 46 217 + 46: Label + 56: 6(int) Load 8(invocation) + 60: 59(ptr) AccessChain 55(data) 57 57 58 + 61: 48(float) Load 60 + 62: 6(int) Load 8(invocation) + 64: 48(float) GroupBroadcast 63 61 62 + 65: 59(ptr) AccessChain 55(data) 56 57 58 + Store 65 64 + 66: 6(int) Load 8(invocation) + 70: 69(ptr) AccessChain 55(data) 67 57 + 71: 49(fvec4) Load 70 + 72: 68(fvec2) VectorShuffle 71 71 0 1 73: 6(int) Load 8(invocation) - 76: 64(ptr) AccessChain 51(data) 74 53 - 77: 44(fvec4) Load 76 - 78: 75(fvec3) VectorShuffle 77 77 0 1 2 - 79: 6(int) Load 8(invocation) - 80: 75(fvec3) ExtInst 1(GLSL.std.450) 0(Unknown) 78 79 - 81: 64(ptr) AccessChain 51(data) 73 53 - 82: 44(fvec4) Load 81 - 83: 44(fvec4) VectorShuffle 82 80 4 5 6 3 - Store 81 83 - 84: 6(int) Load 8(invocation) - 86: 64(ptr) AccessChain 51(data) 85 53 - 87: 44(fvec4) Load 86 + 74: 48(float) CompositeExtract 72 0 + 75: 48(float) GroupBroadcast 63 74 73 + 76: 48(float) CompositeExtract 72 1 + 77: 48(float) GroupBroadcast 63 76 73 + 78: 68(fvec2) CompositeConstruct 75 77 + 79: 69(ptr) AccessChain 55(data) 66 57 + 80: 49(fvec4) Load 79 + 81: 49(fvec4) VectorShuffle 80 78 4 5 2 3 + Store 79 81 + 82: 6(int) Load 8(invocation) + 85: 69(ptr) AccessChain 55(data) 83 57 + 86: 49(fvec4) Load 85 + 87: 84(fvec3) VectorShuffle 86 86 0 1 2 88: 6(int) Load 8(invocation) - 89: 44(fvec4) ExtInst 1(GLSL.std.450) 0(Unknown) 87 88 - 90: 64(ptr) AccessChain 51(data) 84 53 - Store 90 89 - 91: 6(int) Load 8(invocation) - 93: 92(ptr) AccessChain 51(data) 53 62 54 - 94: 45(int) Load 93 - 95: 6(int) Load 8(invocation) - 96: 45(int) ExtInst 1(GLSL.std.450) 0(Unknown) 94 95 - 97: 92(ptr) AccessChain 51(data) 91 62 54 - Store 97 96 - 98: 6(int) Load 8(invocation) - 101: 100(ptr) AccessChain 51(data) 62 62 - 102: 46(ivec4) Load 101 - 103: 99(ivec2) VectorShuffle 102 102 0 1 - 104: 6(int) Load 8(invocation) - 105: 99(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 103 104 - 106: 100(ptr) AccessChain 51(data) 98 62 - 107: 46(ivec4) Load 106 - 108: 46(ivec4) VectorShuffle 107 105 4 5 2 3 - Store 106 108 - 109: 6(int) Load 8(invocation) - 111: 100(ptr) AccessChain 51(data) 74 62 - 112: 46(ivec4) Load 111 - 113: 110(ivec3) VectorShuffle 112 112 0 1 2 + 89: 48(float) CompositeExtract 87 0 + 90: 48(float) GroupBroadcast 63 89 88 + 91: 48(float) CompositeExtract 87 1 + 92: 48(float) GroupBroadcast 63 91 88 + 93: 48(float) CompositeExtract 87 2 + 94: 48(float) GroupBroadcast 63 93 88 + 95: 84(fvec3) CompositeConstruct 90 92 94 + 96: 69(ptr) AccessChain 55(data) 82 57 + 97: 49(fvec4) Load 96 + 98: 49(fvec4) VectorShuffle 97 95 4 5 6 3 + Store 96 98 + 99: 6(int) Load 8(invocation) + 101: 69(ptr) AccessChain 55(data) 100 57 + 102: 49(fvec4) Load 101 + 103: 6(int) Load 8(invocation) + 104: 48(float) CompositeExtract 102 0 + 105: 48(float) GroupBroadcast 63 104 103 + 106: 48(float) CompositeExtract 102 1 + 107: 48(float) GroupBroadcast 63 106 103 + 108: 48(float) CompositeExtract 102 2 + 109: 48(float) GroupBroadcast 63 108 103 + 110: 48(float) CompositeExtract 102 3 + 111: 48(float) GroupBroadcast 63 110 103 + 112: 49(fvec4) CompositeConstruct 105 107 109 111 + 113: 69(ptr) AccessChain 55(data) 99 57 + Store 113 112 114: 6(int) Load 8(invocation) - 115: 110(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 113 114 - 116: 100(ptr) AccessChain 51(data) 109 62 - 117: 46(ivec4) Load 116 - 118: 46(ivec4) VectorShuffle 117 115 4 5 6 3 - Store 116 118 - 119: 6(int) Load 8(invocation) - 120: 100(ptr) AccessChain 51(data) 85 62 - 121: 46(ivec4) Load 120 - 122: 6(int) Load 8(invocation) - 123: 46(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 121 122 - 124: 100(ptr) AccessChain 51(data) 119 62 - Store 124 123 - 125: 6(int) Load 8(invocation) - 127: 126(ptr) AccessChain 51(data) 53 74 54 - 128: 6(int) Load 127 - 129: 6(int) Load 8(invocation) - 130: 6(int) ExtInst 1(GLSL.std.450) 0(Unknown) 128 129 - 131: 126(ptr) AccessChain 51(data) 125 74 54 - Store 131 130 - 132: 6(int) Load 8(invocation) - 135: 134(ptr) AccessChain 51(data) 62 74 - 136: 47(ivec4) Load 135 - 137: 133(ivec2) VectorShuffle 136 136 0 1 - 138: 6(int) Load 8(invocation) - 139: 133(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 137 138 - 140: 134(ptr) AccessChain 51(data) 132 74 - 141: 47(ivec4) Load 140 - 142: 47(ivec4) VectorShuffle 141 139 4 5 2 3 - Store 140 142 - 143: 6(int) Load 8(invocation) - 145: 134(ptr) AccessChain 51(data) 74 74 - 146: 47(ivec4) Load 145 - 147: 144(ivec3) VectorShuffle 146 146 0 1 2 - 148: 6(int) Load 8(invocation) - 149: 144(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 147 148 - 150: 134(ptr) AccessChain 51(data) 143 74 - 151: 47(ivec4) Load 150 - 152: 47(ivec4) VectorShuffle 151 149 4 5 6 3 - Store 150 152 - 153: 6(int) Load 8(invocation) - 154: 134(ptr) AccessChain 51(data) 85 74 - 155: 47(ivec4) Load 154 - 156: 6(int) Load 8(invocation) - 157: 47(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 155 156 - 158: 134(ptr) AccessChain 51(data) 153 74 - Store 158 157 - Branch 42 - 159: Label - 160: 6(int) Load 8(invocation) - 161: 55(ptr) AccessChain 51(data) 53 53 54 - 162: 43(float) Load 161 - 163: 43(float) ExtInst 1(GLSL.std.450) 0(Unknown) 162 - 164: 55(ptr) AccessChain 51(data) 160 53 54 - Store 164 163 - 165: 6(int) Load 8(invocation) - 166: 64(ptr) AccessChain 51(data) 62 53 - 167: 44(fvec4) Load 166 - 168: 63(fvec2) VectorShuffle 167 167 0 1 - 169: 63(fvec2) ExtInst 1(GLSL.std.450) 0(Unknown) 168 - 170: 64(ptr) AccessChain 51(data) 165 53 - 171: 44(fvec4) Load 170 - 172: 44(fvec4) VectorShuffle 171 169 4 5 2 3 - Store 170 172 + 116: 115(ptr) AccessChain 55(data) 57 67 58 + 117: 50(int) Load 116 + 118: 6(int) Load 8(invocation) + 119: 50(int) GroupBroadcast 63 117 118 + 120: 115(ptr) AccessChain 55(data) 114 67 58 + Store 120 119 + 121: 6(int) Load 8(invocation) + 124: 123(ptr) AccessChain 55(data) 67 67 + 125: 51(ivec4) Load 124 + 126: 122(ivec2) VectorShuffle 125 125 0 1 + 127: 6(int) Load 8(invocation) + 128: 50(int) CompositeExtract 126 0 + 129: 50(int) GroupBroadcast 63 128 127 + 130: 50(int) CompositeExtract 126 1 + 131: 50(int) GroupBroadcast 63 130 127 + 132: 122(ivec2) CompositeConstruct 129 131 + 133: 123(ptr) AccessChain 55(data) 121 67 + 134: 51(ivec4) Load 133 + 135: 51(ivec4) VectorShuffle 134 132 4 5 2 3 + Store 133 135 + 136: 6(int) Load 8(invocation) + 138: 123(ptr) AccessChain 55(data) 83 67 + 139: 51(ivec4) Load 138 + 140: 137(ivec3) VectorShuffle 139 139 0 1 2 + 141: 6(int) Load 8(invocation) + 142: 50(int) CompositeExtract 140 0 + 143: 50(int) GroupBroadcast 63 142 141 + 144: 50(int) CompositeExtract 140 1 + 145: 50(int) GroupBroadcast 63 144 141 + 146: 50(int) CompositeExtract 140 2 + 147: 50(int) GroupBroadcast 63 146 141 + 148: 137(ivec3) CompositeConstruct 143 145 147 + 149: 123(ptr) AccessChain 55(data) 136 67 + 150: 51(ivec4) Load 149 + 151: 51(ivec4) VectorShuffle 150 148 4 5 6 3 + Store 149 151 + 152: 6(int) Load 8(invocation) + 153: 123(ptr) AccessChain 55(data) 100 67 + 154: 51(ivec4) Load 153 + 155: 6(int) Load 8(invocation) + 156: 50(int) CompositeExtract 154 0 + 157: 50(int) GroupBroadcast 63 156 155 + 158: 50(int) CompositeExtract 154 1 + 159: 50(int) GroupBroadcast 63 158 155 + 160: 50(int) CompositeExtract 154 2 + 161: 50(int) GroupBroadcast 63 160 155 + 162: 50(int) CompositeExtract 154 3 + 163: 50(int) GroupBroadcast 63 162 155 + 164: 51(ivec4) CompositeConstruct 157 159 161 163 + 165: 123(ptr) AccessChain 55(data) 152 67 + Store 165 164 + 166: 6(int) Load 8(invocation) + 168: 167(ptr) AccessChain 55(data) 57 83 58 + 169: 6(int) Load 168 + 170: 6(int) Load 8(invocation) + 171: 6(int) GroupBroadcast 63 169 170 + 172: 167(ptr) AccessChain 55(data) 166 83 58 + Store 172 171 173: 6(int) Load 8(invocation) - 174: 64(ptr) AccessChain 51(data) 74 53 - 175: 44(fvec4) Load 174 - 176: 75(fvec3) VectorShuffle 175 175 0 1 2 - 177: 75(fvec3) ExtInst 1(GLSL.std.450) 0(Unknown) 176 - 178: 64(ptr) AccessChain 51(data) 173 53 - 179: 44(fvec4) Load 178 - 180: 44(fvec4) VectorShuffle 179 177 4 5 6 3 - Store 178 180 - 181: 6(int) Load 8(invocation) - 182: 64(ptr) AccessChain 51(data) 85 53 - 183: 44(fvec4) Load 182 - 184: 44(fvec4) ExtInst 1(GLSL.std.450) 0(Unknown) 183 - 185: 64(ptr) AccessChain 51(data) 181 53 - Store 185 184 - 186: 6(int) Load 8(invocation) - 187: 92(ptr) AccessChain 51(data) 53 62 54 - 188: 45(int) Load 187 - 189: 45(int) ExtInst 1(GLSL.std.450) 0(Unknown) 188 - 190: 92(ptr) AccessChain 51(data) 186 62 54 - Store 190 189 - 191: 6(int) Load 8(invocation) - 192: 100(ptr) AccessChain 51(data) 62 62 - 193: 46(ivec4) Load 192 - 194: 99(ivec2) VectorShuffle 193 193 0 1 - 195: 99(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 194 - 196: 100(ptr) AccessChain 51(data) 191 62 - 197: 46(ivec4) Load 196 - 198: 46(ivec4) VectorShuffle 197 195 4 5 2 3 - Store 196 198 - 199: 6(int) Load 8(invocation) - 200: 100(ptr) AccessChain 51(data) 74 62 - 201: 46(ivec4) Load 200 - 202: 110(ivec3) VectorShuffle 201 201 0 1 2 - 203: 110(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 202 - 204: 100(ptr) AccessChain 51(data) 199 62 - 205: 46(ivec4) Load 204 - 206: 46(ivec4) VectorShuffle 205 203 4 5 6 3 - Store 204 206 - 207: 6(int) Load 8(invocation) - 208: 100(ptr) AccessChain 51(data) 85 62 - 209: 46(ivec4) Load 208 - 210: 46(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 209 - 211: 100(ptr) AccessChain 51(data) 207 62 - Store 211 210 - 212: 6(int) Load 8(invocation) - 213: 126(ptr) AccessChain 51(data) 53 74 54 - 214: 6(int) Load 213 - 215: 6(int) ExtInst 1(GLSL.std.450) 0(Unknown) 214 - 216: 126(ptr) AccessChain 51(data) 212 74 54 + 175: 174(ptr) AccessChain 55(data) 67 83 + 176: 38(ivec4) Load 175 + 177: 42(ivec2) VectorShuffle 176 176 0 1 + 178: 6(int) Load 8(invocation) + 179: 6(int) CompositeExtract 177 0 + 180: 6(int) GroupBroadcast 63 179 178 + 181: 6(int) CompositeExtract 177 1 + 182: 6(int) GroupBroadcast 63 181 178 + 183: 42(ivec2) CompositeConstruct 180 182 + 184: 174(ptr) AccessChain 55(data) 173 83 + 185: 38(ivec4) Load 184 + 186: 38(ivec4) VectorShuffle 185 183 4 5 2 3 + Store 184 186 + 187: 6(int) Load 8(invocation) + 189: 174(ptr) AccessChain 55(data) 83 83 + 190: 38(ivec4) Load 189 + 191: 188(ivec3) VectorShuffle 190 190 0 1 2 + 192: 6(int) Load 8(invocation) + 193: 6(int) CompositeExtract 191 0 + 194: 6(int) GroupBroadcast 63 193 192 + 195: 6(int) CompositeExtract 191 1 + 196: 6(int) GroupBroadcast 63 195 192 + 197: 6(int) CompositeExtract 191 2 + 198: 6(int) GroupBroadcast 63 197 192 + 199: 188(ivec3) CompositeConstruct 194 196 198 + 200: 174(ptr) AccessChain 55(data) 187 83 + 201: 38(ivec4) Load 200 + 202: 38(ivec4) VectorShuffle 201 199 4 5 6 3 + Store 200 202 + 203: 6(int) Load 8(invocation) + 204: 174(ptr) AccessChain 55(data) 100 83 + 205: 38(ivec4) Load 204 + 206: 6(int) Load 8(invocation) + 207: 6(int) CompositeExtract 205 0 + 208: 6(int) GroupBroadcast 63 207 206 + 209: 6(int) CompositeExtract 205 1 + 210: 6(int) GroupBroadcast 63 209 206 + 211: 6(int) CompositeExtract 205 2 + 212: 6(int) GroupBroadcast 63 211 206 + 213: 6(int) CompositeExtract 205 3 + 214: 6(int) GroupBroadcast 63 213 206 + 215: 38(ivec4) CompositeConstruct 208 210 212 214 + 216: 174(ptr) AccessChain 55(data) 203 83 Store 216 215 - 217: 6(int) Load 8(invocation) - 218: 134(ptr) AccessChain 51(data) 62 74 - 219: 47(ivec4) Load 218 - 220: 133(ivec2) VectorShuffle 219 219 0 1 - 221: 133(ivec2) ExtInst 1(GLSL.std.450) 0(Unknown) 220 - 222: 134(ptr) AccessChain 51(data) 217 74 - 223: 47(ivec4) Load 222 - 224: 47(ivec4) VectorShuffle 223 221 4 5 2 3 - Store 222 224 - 225: 6(int) Load 8(invocation) - 226: 134(ptr) AccessChain 51(data) 74 74 - 227: 47(ivec4) Load 226 - 228: 144(ivec3) VectorShuffle 227 227 0 1 2 - 229: 144(ivec3) ExtInst 1(GLSL.std.450) 0(Unknown) 228 - 230: 134(ptr) AccessChain 51(data) 225 74 - 231: 47(ivec4) Load 230 - 232: 47(ivec4) VectorShuffle 231 229 4 5 6 3 - Store 230 232 - 233: 6(int) Load 8(invocation) - 234: 134(ptr) AccessChain 51(data) 85 74 - 235: 47(ivec4) Load 234 - 236: 47(ivec4) ExtInst 1(GLSL.std.450) 0(Unknown) 235 - 237: 134(ptr) AccessChain 51(data) 233 74 - Store 237 236 - Branch 42 - 42: Label + Branch 47 + 217: Label + 218: 6(int) Load 8(invocation) + 219: 59(ptr) AccessChain 55(data) 57 57 58 + 220: 48(float) Load 219 + 221: 48(float) SubgroupFirstInvocationKHR 220 + 222: 59(ptr) AccessChain 55(data) 218 57 58 + Store 222 221 + 223: 6(int) Load 8(invocation) + 224: 69(ptr) AccessChain 55(data) 67 57 + 225: 49(fvec4) Load 224 + 226: 68(fvec2) VectorShuffle 225 225 0 1 + 227: 68(fvec2) SubgroupFirstInvocationKHR 226 + 228: 69(ptr) AccessChain 55(data) 223 57 + 229: 49(fvec4) Load 228 + 230: 49(fvec4) VectorShuffle 229 227 4 5 2 3 + Store 228 230 + 231: 6(int) Load 8(invocation) + 232: 69(ptr) AccessChain 55(data) 83 57 + 233: 49(fvec4) Load 232 + 234: 84(fvec3) VectorShuffle 233 233 0 1 2 + 235: 84(fvec3) SubgroupFirstInvocationKHR 234 + 236: 69(ptr) AccessChain 55(data) 231 57 + 237: 49(fvec4) Load 236 + 238: 49(fvec4) VectorShuffle 237 235 4 5 6 3 + Store 236 238 + 239: 6(int) Load 8(invocation) + 240: 69(ptr) AccessChain 55(data) 100 57 + 241: 49(fvec4) Load 240 + 242: 49(fvec4) SubgroupFirstInvocationKHR 241 + 243: 69(ptr) AccessChain 55(data) 239 57 + Store 243 242 + 244: 6(int) Load 8(invocation) + 245: 115(ptr) AccessChain 55(data) 57 67 58 + 246: 50(int) Load 245 + 247: 50(int) SubgroupFirstInvocationKHR 246 + 248: 115(ptr) AccessChain 55(data) 244 67 58 + Store 248 247 + 249: 6(int) Load 8(invocation) + 250: 123(ptr) AccessChain 55(data) 67 67 + 251: 51(ivec4) Load 250 + 252: 122(ivec2) VectorShuffle 251 251 0 1 + 253: 122(ivec2) SubgroupFirstInvocationKHR 252 + 254: 123(ptr) AccessChain 55(data) 249 67 + 255: 51(ivec4) Load 254 + 256: 51(ivec4) VectorShuffle 255 253 4 5 2 3 + Store 254 256 + 257: 6(int) Load 8(invocation) + 258: 123(ptr) AccessChain 55(data) 83 67 + 259: 51(ivec4) Load 258 + 260: 137(ivec3) VectorShuffle 259 259 0 1 2 + 261: 137(ivec3) SubgroupFirstInvocationKHR 260 + 262: 123(ptr) AccessChain 55(data) 257 67 + 263: 51(ivec4) Load 262 + 264: 51(ivec4) VectorShuffle 263 261 4 5 6 3 + Store 262 264 + 265: 6(int) Load 8(invocation) + 266: 123(ptr) AccessChain 55(data) 100 67 + 267: 51(ivec4) Load 266 + 268: 51(ivec4) SubgroupFirstInvocationKHR 267 + 269: 123(ptr) AccessChain 55(data) 265 67 + Store 269 268 + 270: 6(int) Load 8(invocation) + 271: 167(ptr) AccessChain 55(data) 57 83 58 + 272: 6(int) Load 271 + 273: 6(int) SubgroupFirstInvocationKHR 272 + 274: 167(ptr) AccessChain 55(data) 270 83 58 + Store 274 273 + 275: 6(int) Load 8(invocation) + 276: 174(ptr) AccessChain 55(data) 67 83 + 277: 38(ivec4) Load 276 + 278: 42(ivec2) VectorShuffle 277 277 0 1 + 279: 42(ivec2) SubgroupFirstInvocationKHR 278 + 280: 174(ptr) AccessChain 55(data) 275 83 + 281: 38(ivec4) Load 280 + 282: 38(ivec4) VectorShuffle 281 279 4 5 2 3 + Store 280 282 + 283: 6(int) Load 8(invocation) + 284: 174(ptr) AccessChain 55(data) 83 83 + 285: 38(ivec4) Load 284 + 286: 188(ivec3) VectorShuffle 285 285 0 1 2 + 287: 188(ivec3) SubgroupFirstInvocationKHR 286 + 288: 174(ptr) AccessChain 55(data) 283 83 + 289: 38(ivec4) Load 288 + 290: 38(ivec4) VectorShuffle 289 287 4 5 6 3 + Store 288 290 + 291: 6(int) Load 8(invocation) + 292: 174(ptr) AccessChain 55(data) 100 83 + 293: 38(ivec4) Load 292 + 294: 38(ivec4) SubgroupFirstInvocationKHR 293 + 295: 174(ptr) AccessChain 55(data) 291 83 + Store 295 294 + Branch 47 + 47: Label Return FunctionEnd diff --git a/Test/baseResults/spv.shaderDrawParams.vert.out b/Test/baseResults/spv.shaderDrawParams.vert.out new file mode 100644 index 0000000000000000000000000000000000000000..41ad78d480cbe8389b5985921efe518ae1bda7c9 --- /dev/null +++ b/Test/baseResults/spv.shaderDrawParams.vert.out @@ -0,0 +1,104 @@ +spv.shaderDrawParams.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. + +// Module Version 10000 +// Generated by (magic number): 80001 +// Id's are bound by 53 + + Capability Shader + Capability DrawParameters + Extension "SPV_KHR_shader_draw_parameters" + 1: ExtInstImport "GLSL.std.450" + MemoryModel Logical GLSL450 + EntryPoint Vertex 4 "main" 9 16 29 37 + Source GLSL 450 + SourceExtension "GL_ARB_shader_draw_parameters" + Name 4 "main" + Name 9 "gl_BaseVertexARB" + Name 16 "gl_BaseInstanceARB" + Name 27 "gl_PerVertex" + MemberName 27(gl_PerVertex) 0 "gl_Position" + MemberName 27(gl_PerVertex) 1 "gl_PointSize" + MemberName 27(gl_PerVertex) 2 "gl_ClipDistance" + MemberName 27(gl_PerVertex) 3 "gl_CullDistance" + Name 29 "" + Name 34 "Block" + MemberName 34(Block) 0 "pos" + Name 36 "block" + Name 37 "gl_DrawIDARB" + Decorate 9(gl_BaseVertexARB) BuiltIn BaseVertex + Decorate 16(gl_BaseInstanceARB) BuiltIn BaseInstance + MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position + MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize + MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance + MemberDecorate 27(gl_PerVertex) 3 BuiltIn CullDistance + Decorate 27(gl_PerVertex) Block + Decorate 31 ArrayStride 16 + Decorate 33 ArrayStride 64 + MemberDecorate 34(Block) 0 Offset 0 + Decorate 34(Block) Block + Decorate 36(block) DescriptorSet 0 + Decorate 36(block) Binding 0 + Decorate 37(gl_DrawIDARB) BuiltIn DrawIndex + 2: TypeVoid + 3: TypeFunction 2 + 6: TypeBool + 7: TypeInt 32 1 + 8: TypePointer Input 7(int) +9(gl_BaseVertexARB): 8(ptr) Variable Input + 11: 7(int) Constant 0 +16(gl_BaseInstanceARB): 8(ptr) Variable Input + 22: TypeFloat 32 + 23: TypeVector 22(float) 4 + 24: TypeInt 32 0 + 25: 24(int) Constant 1 + 26: TypeArray 22(float) 25 +27(gl_PerVertex): TypeStruct 23(fvec4) 22(float) 26 26 + 28: TypePointer Output 27(gl_PerVertex) + 29: 28(ptr) Variable Output + 30: 24(int) Constant 4 + 31: TypeArray 23(fvec4) 30 + 32: 24(int) Constant 2 + 33: TypeArray 31 32 + 34(Block): TypeStruct 33 + 35: TypePointer Uniform 34(Block) + 36(block): 35(ptr) Variable Uniform +37(gl_DrawIDARB): 8(ptr) Variable Input + 39: 7(int) Constant 4 + 41: TypePointer Uniform 23(fvec4) + 44: TypePointer Output 23(fvec4) + 47: 7(int) Constant 1 + 4(main): 2 Function None 3 + 5: Label + 10: 7(int) Load 9(gl_BaseVertexARB) + 12: 6(bool) SGreaterThan 10 11 + 13: 6(bool) LogicalNot 12 + SelectionMerge 15 None + BranchConditional 13 14 15 + 14: Label + 17: 7(int) Load 16(gl_BaseInstanceARB) + 18: 6(bool) SGreaterThan 17 11 + Branch 15 + 15: Label + 19: 6(bool) Phi 12 5 18 14 + SelectionMerge 21 None + BranchConditional 19 20 46 + 20: Label + 38: 7(int) Load 37(gl_DrawIDARB) + 40: 7(int) SMod 38 39 + 42: 41(ptr) AccessChain 36(block) 11 11 40 + 43: 23(fvec4) Load 42 + 45: 44(ptr) AccessChain 29 11 + Store 45 43 + Branch 21 + 46: Label + 48: 7(int) Load 37(gl_DrawIDARB) + 49: 7(int) SMod 48 39 + 50: 41(ptr) AccessChain 36(block) 11 47 49 + 51: 23(fvec4) Load 50 + 52: 44(ptr) AccessChain 29 11 + Store 52 51 + Branch 21 + 21: Label + Return + FunctionEnd diff --git a/Test/baseResults/spv.shaderGroupVote.comp.out b/Test/baseResults/spv.shaderGroupVote.comp.out index e63164d024ee32080e8c9fa6140a2713ee813722..f8bfae804a96212911811c7255c7934fc518c055 100644 --- a/Test/baseResults/spv.shaderGroupVote.comp.out +++ b/Test/baseResults/spv.shaderGroupVote.comp.out @@ -1,10 +1,6 @@ spv.shaderGroupVote.comp Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked compute stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 37 diff --git a/Test/baseResults/spv.shiftOps.frag.out b/Test/baseResults/spv.shiftOps.frag.out index 39e40ece73746802ee8220b12f9f470614263da8..498c287784b4505c49663d669de10da10890ff0e 100644 --- a/Test/baseResults/spv.shiftOps.frag.out +++ b/Test/baseResults/spv.shiftOps.frag.out @@ -1,10 +1,6 @@ spv.shiftOps.frag Warning, version 450 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 38 diff --git a/Test/baseResults/spv.shortCircuit.frag.out b/Test/baseResults/spv.shortCircuit.frag.out index 5b39b1cba56653312f5f371c322616742f1fd528..7d5189a25187ea98f6aab7856f24912534b53641 100644 --- a/Test/baseResults/spv.shortCircuit.frag.out +++ b/Test/baseResults/spv.shortCircuit.frag.out @@ -1,10 +1,6 @@ spv.shortCircuit.frag Warning, version 400 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 147 diff --git a/Test/baseResults/spv.simpleFunctionCall.frag.out b/Test/baseResults/spv.simpleFunctionCall.frag.out index 458a90dbac18ae4e7fc3eff13913463c7473c0ee..2e6b671f4686050c16344663e07fa2acd1cec22b 100755 --- a/Test/baseResults/spv.simpleFunctionCall.frag.out +++ b/Test/baseResults/spv.simpleFunctionCall.frag.out @@ -1,8 +1,4 @@ spv.simpleFunctionCall.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 19 diff --git a/Test/baseResults/spv.simpleMat.vert.out b/Test/baseResults/spv.simpleMat.vert.out index 3e0f05e19c6b1e6d0d5330d1ba1a8f12774f047a..2cad63137f1381dc1f6837afef29bf4c5710b5a4 100755 --- a/Test/baseResults/spv.simpleMat.vert.out +++ b/Test/baseResults/spv.simpleMat.vert.out @@ -1,10 +1,6 @@ spv.simpleMat.vert WARNING: 0:3: varying deprecated in version 130; may be removed in future release - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 39 diff --git a/Test/baseResults/spv.sparseTexture.frag.out b/Test/baseResults/spv.sparseTexture.frag.out index ae48f41d72d934a3b1b3e76b98a271b121da5ab0..431ef1528474e93d0d9732edec7d3fe988d4fda7 100644 --- a/Test/baseResults/spv.sparseTexture.frag.out +++ b/Test/baseResults/spv.sparseTexture.frag.out @@ -1,10 +1,6 @@ spv.sparseTexture.frag Warning, version 450 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 438 diff --git a/Test/baseResults/spv.sparseTextureClamp.frag.out b/Test/baseResults/spv.sparseTextureClamp.frag.out index 1922ac12548c5774ed088ad33095c571a8c8fd74..175dc35c8a534aaacada17271a8c70a6c69d2399 100644 --- a/Test/baseResults/spv.sparseTextureClamp.frag.out +++ b/Test/baseResults/spv.sparseTextureClamp.frag.out @@ -1,10 +1,6 @@ spv.sparseTextureClamp.frag Warning, version 450 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 360 diff --git a/Test/baseResults/spv.specConst.vert.out b/Test/baseResults/spv.specConst.vert.out index db5a417ce2a20d2b865b80be4a43926670f42d63..5a7de46feede95a009e0dea8da94d41dcceb5d28 100755 --- a/Test/baseResults/spv.specConst.vert.out +++ b/Test/baseResults/spv.specConst.vert.out @@ -1,10 +1,6 @@ spv.specConst.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 27 diff --git a/Test/baseResults/spv.specConstant.comp.out b/Test/baseResults/spv.specConstant.comp.out index 2f16f04d4a7c1e355b987226b813c44f65f392ab..481ed68c3ac49337340b4583125d61f60d20ca4c 100644 --- a/Test/baseResults/spv.specConstant.comp.out +++ b/Test/baseResults/spv.specConstant.comp.out @@ -1,10 +1,6 @@ spv.specConstant.comp Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked compute stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 27 diff --git a/Test/baseResults/spv.specConstant.vert.out b/Test/baseResults/spv.specConstant.vert.out index edda4a7b582fb6b5f1d211b2d12c96aa42e51956..dc10e2387994344a6d680c57a21bf6447673bf19 100644 --- a/Test/baseResults/spv.specConstant.vert.out +++ b/Test/baseResults/spv.specConstant.vert.out @@ -1,10 +1,6 @@ spv.specConstant.vert Warning, version 400 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 81 diff --git a/Test/baseResults/spv.specConstantComposite.vert.out b/Test/baseResults/spv.specConstantComposite.vert.out index c4585e40da1f879ad1a29d3cc1fa2e73160bb82b..f8c556edcad1241b2320452a8eaf7fcadb38ca6a 100644 --- a/Test/baseResults/spv.specConstantComposite.vert.out +++ b/Test/baseResults/spv.specConstantComposite.vert.out @@ -1,10 +1,6 @@ spv.specConstantComposite.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 43 diff --git a/Test/baseResults/spv.specConstantOperations.vert.out b/Test/baseResults/spv.specConstantOperations.vert.out index ab425583896f8909b88208358a2c4914031ba64f..e2395c82b82476bae3d0793ce713a45441175233 100644 --- a/Test/baseResults/spv.specConstantOperations.vert.out +++ b/Test/baseResults/spv.specConstantOperations.vert.out @@ -1,10 +1,6 @@ spv.specConstantOperations.vert Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 135 diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out index abff683492cd2f78f69eac55aa940086b1f426e4..eb796f7c89c1ddb2b527ccbac3ecb7f16fbcf0c5 100755 --- a/Test/baseResults/spv.structAssignment.frag.out +++ b/Test/baseResults/spv.structAssignment.frag.out @@ -2,10 +2,6 @@ spv.structAssignment.frag WARNING: 0:6: '' : all default precisions are highp; use precision statements to quiet warning, e.g.: "precision mediump int; precision highp float;" - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 50 diff --git a/Test/baseResults/spv.structDeref.frag.out b/Test/baseResults/spv.structDeref.frag.out index 78ebdc635f1af64e53d66a063481f862813e9255..e60159f9952122916b9e90c3905e22957c71959b 100755 --- a/Test/baseResults/spv.structDeref.frag.out +++ b/Test/baseResults/spv.structDeref.frag.out @@ -1,8 +1,4 @@ spv.structDeref.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 123 diff --git a/Test/baseResults/spv.structure.frag.out b/Test/baseResults/spv.structure.frag.out index 8d91ed043af8b69e4ab3fb94efb97b89679f31e2..f7cb2d2a2588fc792624f7028349ddc4914c53b1 100755 --- a/Test/baseResults/spv.structure.frag.out +++ b/Test/baseResults/spv.structure.frag.out @@ -1,8 +1,4 @@ spv.structure.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 60 diff --git a/Test/baseResults/spv.subpass.frag.out b/Test/baseResults/spv.subpass.frag.out index 93d680c71ab26bbaac8112249d3ea3c72a49b076..c2421113881e52adad655eb8874881cedd73605d 100644 --- a/Test/baseResults/spv.subpass.frag.out +++ b/Test/baseResults/spv.subpass.frag.out @@ -1,10 +1,6 @@ spv.subpass.frag Warning, version 400 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 67 diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out index 87ea4c87ea7caf7895026d20b8254eb4fdf30eaf..86acb6c8eeabf2063d7b110227d1289c68befcf9 100755 --- a/Test/baseResults/spv.switch.frag.out +++ b/Test/baseResults/spv.switch.frag.out @@ -4,10 +4,6 @@ WARNING: 0:121: 'switch' : last case/default label not followed by statements WARNING: 0:134: 'switch' : last case/default label not followed by statements WARNING: 0:139: 'switch' : last case/default label not followed by statements - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 269 diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out index 471fed1128c7d7160aabcb6125d0af1f48f13ac5..46978f8c60c4b83da3f1b720a912a61dd089d7bf 100755 --- a/Test/baseResults/spv.swizzle.frag.out +++ b/Test/baseResults/spv.swizzle.frag.out @@ -1,8 +1,4 @@ spv.swizzle.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 108 diff --git a/Test/baseResults/spv.swizzleInversion.frag.out b/Test/baseResults/spv.swizzleInversion.frag.out index 6b922065d8845c063aa6eb331c63078fb704e255..bf0699a3cf7c83cfdac9ef425d3c1ba67379c405 100755 --- a/Test/baseResults/spv.swizzleInversion.frag.out +++ b/Test/baseResults/spv.swizzleInversion.frag.out @@ -1,10 +1,6 @@ spv.swizzleInversion.frag Warning, version 450 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 46 diff --git a/Test/baseResults/spv.test.frag.out b/Test/baseResults/spv.test.frag.out index 8f1c5260bbaf1915cb4088a3877a819c7554ccca..bf0135aebe65e9df0a87c5ee31f4274b1c4147a9 100644 --- a/Test/baseResults/spv.test.frag.out +++ b/Test/baseResults/spv.test.frag.out @@ -1,10 +1,6 @@ spv.test.frag Warning, version 400 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 55 diff --git a/Test/baseResults/spv.test.vert.out b/Test/baseResults/spv.test.vert.out index 697e468d4fdece5ca0e97f9344f0dc09dcda71e4..623d16ba679d9804919958145493a8df912926fd 100644 --- a/Test/baseResults/spv.test.vert.out +++ b/Test/baseResults/spv.test.vert.out @@ -1,10 +1,6 @@ spv.test.vert WARNING: 0:5: attribute deprecated in version 130; may be removed in future release - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 24 diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out index 30f3f281b409bccd7b4533aa4a9dd2e7e683c71f..467f25458964f64af8de59c33ec22073e33bd1c9 100755 --- a/Test/baseResults/spv.texture.frag.out +++ b/Test/baseResults/spv.texture.frag.out @@ -3,10 +3,6 @@ WARNING: 0:10: varying deprecated in version 130; may be removed in future relea WARNING: 0:11: varying deprecated in version 130; may be removed in future release WARNING: 0:12: varying deprecated in version 130; may be removed in future release - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 305 diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out index cc3d3daaf893bde0a73335c22ee069f48320174a..c361549952d01b2a36afdb5f681aca7755ec707c 100755 --- a/Test/baseResults/spv.texture.vert.out +++ b/Test/baseResults/spv.texture.vert.out @@ -1,8 +1,4 @@ spv.texture.vert - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 150 diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out index 4295370d385d8561f019194c2dc1bfb6ce767345..9a2d8e35f94f45ac3c6037fa015aeca11e70a540 100755 --- a/Test/baseResults/spv.types.frag.out +++ b/Test/baseResults/spv.types.frag.out @@ -1,8 +1,4 @@ spv.types.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 260 diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out index 6682e7c26a55e272395488076e928b0af93da8af..e9ba0ce263343f943df78e53b430a666458c0b8c 100755 --- a/Test/baseResults/spv.uint.frag.out +++ b/Test/baseResults/spv.uint.frag.out @@ -1,10 +1,6 @@ spv.uint.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 213 diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out index e66eda6b109ec04fe3e3ce1299347b39336baaab..447ad4fd4e32ae049903021a618a94b528180e64 100644 --- a/Test/baseResults/spv.uniformArray.frag.out +++ b/Test/baseResults/spv.uniformArray.frag.out @@ -1,8 +1,4 @@ spv.uniformArray.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 53 diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out index 1f8ee96ab25082321da1bce6ed53da06ade3bd91..b4d3fe01a4de9859db32e37da1388b7b5f2b7b76 100755 --- a/Test/baseResults/spv.variableArrayIndex.frag.out +++ b/Test/baseResults/spv.variableArrayIndex.frag.out @@ -1,10 +1,6 @@ spv.variableArrayIndex.frag Warning, version 400 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 93 diff --git a/Test/baseResults/spv.varyingArray.frag.out b/Test/baseResults/spv.varyingArray.frag.out index 4a7d2ee6268be8792a1b88ecea3a35161eb369c3..58833ea1b6729be0c180c4e8c39f9062c18cdfb3 100755 --- a/Test/baseResults/spv.varyingArray.frag.out +++ b/Test/baseResults/spv.varyingArray.frag.out @@ -1,8 +1,4 @@ spv.varyingArray.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 61 diff --git a/Test/baseResults/spv.varyingArrayIndirect.frag.out b/Test/baseResults/spv.varyingArrayIndirect.frag.out index 410fd3c46a16fb87502042cdbcc3590613006900..9c018406ab847fcab7b067356cb80a82e0646e0f 100755 --- a/Test/baseResults/spv.varyingArrayIndirect.frag.out +++ b/Test/baseResults/spv.varyingArrayIndirect.frag.out @@ -1,8 +1,4 @@ spv.varyingArrayIndirect.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 70 diff --git a/Test/baseResults/spv.voidFunction.frag.out b/Test/baseResults/spv.voidFunction.frag.out index 1d4b694b3fe5b00a5c7c9146f6267fe80747301b..44348616e805205546e3ba15c2e5d96984be168e 100755 --- a/Test/baseResults/spv.voidFunction.frag.out +++ b/Test/baseResults/spv.voidFunction.frag.out @@ -1,10 +1,6 @@ spv.voidFunction.frag Warning, version 400 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 43 diff --git a/Test/baseResults/spv.while-continue-break.vert.out b/Test/baseResults/spv.while-continue-break.vert.out index 2ec331024b040cf90a03ff0484d3e44c1ca2b65c..73dc35ced3845dc143d5033dc312b42e28104b27 100644 --- a/Test/baseResults/spv.while-continue-break.vert.out +++ b/Test/baseResults/spv.while-continue-break.vert.out @@ -1,10 +1,6 @@ spv.while-continue-break.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 41 diff --git a/Test/baseResults/spv.while-simple.vert.out b/Test/baseResults/spv.while-simple.vert.out index 0c1c822179fce39a1a28ea85a00972e832b0bcc5..82121dd00c05707d7a3e9ae4ba6f3983dd9b776c 100755 --- a/Test/baseResults/spv.while-simple.vert.out +++ b/Test/baseResults/spv.while-simple.vert.out @@ -1,10 +1,6 @@ spv.while-simple.vert Warning, version 310 is not yet complete; most version-specific features are present, but some are missing. - -Linked vertex stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 22 diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out index 8de5e956e0d3e3b47d0c1d52384f6790f926487b..ce1e195d0dcd87fa659a2f30aa89eb6939a369e1 100755 --- a/Test/baseResults/spv.whileLoop.frag.out +++ b/Test/baseResults/spv.whileLoop.frag.out @@ -1,8 +1,4 @@ spv.whileLoop.frag - -Linked fragment stage: - - // Module Version 10000 // Generated by (magic number): 80001 // Id's are bound by 35 diff --git a/Test/baseResults/tokenPaste.vert.out b/Test/baseResults/tokenPaste.vert.out new file mode 100755 index 0000000000000000000000000000000000000000..59971515a30225f11417bdeac030cb13a12de717 --- /dev/null +++ b/Test/baseResults/tokenPaste.vert.out @@ -0,0 +1,60 @@ +tokenPaste.vert +Warning, version 450 is not yet complete; most version-specific features are present, but some are missing. +ERROR: 0:38: '##' : unexpected location +ERROR: 0:40: '##' : unexpected location; end of replacement list +ERROR: 0:49: '##' : combined tokens are too long +ERROR: 0:52: '##' : only supported for preprocessing identifiers +ERROR: 4 compilation errors. No code generated. + + +Shader version: 450 +ERROR: node is still EOpNull! +0:52 Sequence +0:52 move second child to first child (temp int) +0:52 'a' (global int) +0:52 Constant: +0:52 11 (const int) +0:? Linker Objects +0:? 'SecondExpansion' (global int) +0:? 'PostPasteExpansion' (global int) +0:? 'foo27' (global float) +0:? 'foo155' (uniform float) +0:? 'foo719' (global float) +0:? 'barfoo' (uniform float) +0:? 'argless' (global float) +0:? 'dc1' (global float) +0:? 'dc2' (global float) +0:? 'foo875' (uniform float) +0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123451234' (global float) +0:? 'a' (global int) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + + +Linked vertex stage: + +ERROR: Linking vertex stage: Missing entry point: Each stage requires one entry point + +Shader version: 450 +ERROR: node is still EOpNull! +0:52 Sequence +0:52 move second child to first child (temp int) +0:52 'a' (global int) +0:52 Constant: +0:52 11 (const int) +0:? Linker Objects +0:? 'SecondExpansion' (global int) +0:? 'PostPasteExpansion' (global int) +0:? 'foo27' (global float) +0:? 'foo155' (uniform float) +0:? 'foo719' (global float) +0:? 'barfoo' (uniform float) +0:? 'argless' (global float) +0:? 'dc1' (global float) +0:? 'dc2' (global float) +0:? 'foo875' (uniform float) +0:? 'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123451234' (global float) +0:? 'a' (global int) +0:? 'gl_VertexID' (gl_VertexId int VertexId) +0:? 'gl_InstanceID' (gl_InstanceId int InstanceId) + diff --git a/Test/baseResults/varyingArray.frag.out b/Test/baseResults/varyingArray.frag.out index c6cf6bae2b4b44d203f4cd4824dfa845a9fc6166..1fd59b466729a45c400c316465c423231dd3958b 100644 --- a/Test/baseResults/varyingArray.frag.out +++ b/Test/baseResults/varyingArray.frag.out @@ -56,7 +56,6 @@ Shader version: 130 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) 0:? 'foo' (smooth in 3-element array of 4-component vector of float) @@ -115,6 +114,5 @@ Shader version: 130 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) 0:? 'foo' (smooth in 3-element array of 4-component vector of float) diff --git a/Test/baseResults/varyingArrayIndirect.frag.out b/Test/baseResults/varyingArrayIndirect.frag.out index 02a41f3f1dcad71b68da487757d59b35ff0c7bd7..73498129473146da27d8321bcd28de53f5067955 100644 --- a/Test/baseResults/varyingArrayIndirect.frag.out +++ b/Test/baseResults/varyingArrayIndirect.frag.out @@ -57,7 +57,6 @@ Shader version: 130 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) 0:? 'userIn' (smooth in 2-element array of 4-component vector of float) 0:? 'a' (uniform int) 0:? 'b' (uniform int) @@ -119,7 +118,6 @@ Shader version: 130 0:? 'color' (smooth in 4-component vector of float) 0:? 'alpha' (smooth in float) 0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) -0:? 'gl_TexCoord' (smooth in 6-element array of 4-component vector of float TexCoord) 0:? 'userIn' (smooth in 2-element array of 4-component vector of float) 0:? 'a' (uniform int) 0:? 'b' (uniform int) diff --git a/Test/baseResults/vulkan.comp.out b/Test/baseResults/vulkan.comp.out index 7f1fd18ac733e8595bd31f473ac6871f6638fc9f..5eb4c5b484ead795667adf7fb6ca6267501f351c 100644 --- a/Test/baseResults/vulkan.comp.out +++ b/Test/baseResults/vulkan.comp.out @@ -4,8 +4,4 @@ ERROR: 0:5: 'local_size' : cannot change previously set size ERROR: 1 compilation errors. No code generated. - -Linked compute stage: - - SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/vulkan.frag.out b/Test/baseResults/vulkan.frag.out index d4da9190632beea2f922214755101f527598704d..1df2c3eb5306a62f60be00abe7e3b5d5449b2d4d 100644 --- a/Test/baseResults/vulkan.frag.out +++ b/Test/baseResults/vulkan.frag.out @@ -43,9 +43,6 @@ ERROR: 0:94: 'call argument' : sampler constructor must appear at point of use ERROR: 38 compilation errors. No code generated. - -Linked fragment stage: - ERROR: Linking fragment stage: Only one push_constant block is allowed per stage SPIR-V is not generated for failed compile or link diff --git a/Test/baseResults/vulkan.vert.out b/Test/baseResults/vulkan.vert.out index 5aeaa74c3520caa4bf37d99dac8779436112d41b..7111a2dc2b6c5d44d2675d04211c6de4f37edf3d 100644 --- a/Test/baseResults/vulkan.vert.out +++ b/Test/baseResults/vulkan.vert.out @@ -26,8 +26,4 @@ ERROR: 0:39: 'set' : cannot be used with push_constant ERROR: 23 compilation errors. No code generated. - -Linked vertex stage: - - SPIR-V is not generated for failed compile or link diff --git a/Test/hlsl.amend.frag b/Test/hlsl.amend.frag new file mode 100755 index 0000000000000000000000000000000000000000..c9fd69bd3ef2e35d4afd5f6c8e86d1c69d07f478 --- /dev/null +++ b/Test/hlsl.amend.frag @@ -0,0 +1,28 @@ +float4 a; +float b; + +void f1() +{ + a * b; +} + +float3 c; + +void f2() +{ + a.x + b + c.x; +} + +void f3() +{ + c; +} + +int d; + +void f4() +{ + d * a; +} + +int e; \ No newline at end of file diff --git a/Test/hlsl.array.flatten.frag b/Test/hlsl.array.flatten.frag new file mode 100644 index 0000000000000000000000000000000000000000..987ce1bf32e87fd8a71f8db64e9f2fee77e4b878 --- /dev/null +++ b/Test/hlsl.array.flatten.frag @@ -0,0 +1,38 @@ + +// uniform Texture1D g_tex3[3][2]; // TODO: legal in HLSL, but we don't handle it yet. + +uniform Texture1D g_tex[3]; +uniform Texture1D g_tex_explicit[3] : register(t1); + +SamplerState g_samp[3]; +SamplerState g_samp_explicit[3] : register(s5); + +uniform float3x3 g_mats[4]; +uniform float3x3 g_mats_explicit[4] : register(b10); +uniform float g_floats[4]; + +// uniform float g_floats[4] = { 10, 11, 12, 13 }; // TODO: ... add when initializer lists can be flattened. + +float4 TestFn1() +{ + return g_tex[1].Sample(g_samp[1], 0.2); +} + +float4 TestFn2(Texture1D l_tex[3], SamplerState l_samp[3]) +{ + return l_tex[2].Sample(l_samp[2], 0.2); +} + +static int not_flattened_a[5] = { 1, 2, 3, 4, 5 }; + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +void main(out PS_OUTPUT ps_output) +{ + // test flattening for local assignment initialization + SamplerState local_sampler_array[3] = g_samp; + Texture1D local_texture_array[3] = g_tex; + float local_float_array[4] = g_floats; + + ps_output.color = TestFn1() + TestFn2(g_tex, g_samp); +} diff --git a/Test/hlsl.array.implicit-size.frag b/Test/hlsl.array.implicit-size.frag new file mode 100644 index 0000000000000000000000000000000000000000..e7a54f46624616070cf803d7bb6f0335d8d01584 --- /dev/null +++ b/Test/hlsl.array.implicit-size.frag @@ -0,0 +1,32 @@ + +// array size from initializer +static float g_array [ ] = { 1, 2, 3, 4, 5 }; + +// Unused: array size from initializer +static float g_array_unused [ ] = { 1, 2, 3, 4, 5, 6, 7 }; + +// Test initializer sizing for arrayed structs +static struct mystruct { + int i; + float f; +} g_mystruct[] = { + { 1, 2.0 }, + { 3, 4.0 }, +}; + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +// INVALID: implicit size requires an initializer expression. +// uniform float bad[]; + +// INVALID: function parameters cannot be implicitly sized +// void BadFunction(int a[]) { } + +void main(out PS_OUTPUT ps_output) +{ + // local array sized from initializers + float l_array[] = { 1, 2, 3 }; + int idx; + + ps_output.color = g_array[0] + g_array[4] + l_array[1] + g_mystruct[0].f + g_array[idx]; +} diff --git a/Test/hlsl.array.multidim.frag b/Test/hlsl.array.multidim.frag new file mode 100644 index 0000000000000000000000000000000000000000..524a8896e09faa576152a5f69496319a6227800d --- /dev/null +++ b/Test/hlsl.array.multidim.frag @@ -0,0 +1,20 @@ + +float float_array[5][4][3]; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float4 float4_array_1[2][3]; + float4 float4_array_2[5][3]; + + float4_array_1[1][2] = float_array[2][3][1]; + float4_array_2[1] = float4_array_1[0]; + + PS_OUTPUT psout; + psout.Color = float4_array_1[1][2]; + return psout; +} diff --git a/Test/hlsl.attribute.expression.comp b/Test/hlsl.attribute.expression.comp new file mode 100644 index 0000000000000000000000000000000000000000..535fbad42c8b758451d08d093a27f220713d2f38 --- /dev/null +++ b/Test/hlsl.attribute.expression.comp @@ -0,0 +1,15 @@ + +uniform int bound; + +#define FOO 3 +#define BAR 2 + +[numthreads(2+2, 2*3, (1+FOO)*BAR)] +float4 main() : SV_TARGET +{ + [unroll(5*2 + 1) ] + for (int x=0; x<bound; ++x) + ; + + return float4(0,0,0,0); +} diff --git a/Test/hlsl.basic.comp b/Test/hlsl.basic.comp new file mode 100644 index 0000000000000000000000000000000000000000..8a65a59616f20b32c64ae2e92c225ec16835daf4 --- /dev/null +++ b/Test/hlsl.basic.comp @@ -0,0 +1,6 @@ +groupshared float4 a[100]; + +void main(int dti : SV_DispatchThreadID) +{ + dti; +} diff --git a/Test/hlsl.basic.geom b/Test/hlsl.basic.geom new file mode 100644 index 0000000000000000000000000000000000000000..79b061ee0af1853b82c62201c50bbe3fc18815cf --- /dev/null +++ b/Test/hlsl.basic.geom @@ -0,0 +1,25 @@ +struct PSInput +{ + float myfloat : SOME_SEMANTIC; + int something : ANOTHER_SEMANTIC; +}; + +struct nametest { + int Append; // these are valid names even though they are also method names. + int RestartStrip; // ... +}; + +[maxvertexcount(4)] +void main(triangle in uint VertexID[3] : VertexID, + triangle uint test[3] : FOO, + inout LineStream<PSInput> OutputStream) +{ + PSInput Vert; + + Vert.myfloat = test[0] + test[1] + test[2]; + Vert.something = VertexID[0]; + + OutputStream.Append(Vert); + OutputStream.Append(Vert); + OutputStream.RestartStrip(); +} diff --git a/Test/hlsl.buffer.frag b/Test/hlsl.buffer.frag index 4e28043a86748e8516ba3c0f442ac79dc84e46b9..b93dcd3124cd44d57241eeb89cb20975edef05d9 100644 --- a/Test/hlsl.buffer.frag +++ b/Test/hlsl.buffer.frag @@ -20,6 +20,10 @@ tbuffer tbufName : register(b8) { float f5 : packoffset(c4.z); float f6 : packoffset(c); float f7; + float3x4 m1; + row_major float3x4 m2; + column_major float3x4 m3; + float3x4 m4; }; float4 PixelShaderFunction(float4 input) : COLOR0 diff --git a/Test/hlsl.comparison.vec.frag b/Test/hlsl.comparison.vec.frag new file mode 100644 index 0000000000000000000000000000000000000000..b8f93c9f94ff1c5c01d301f74e69d4c66f0ae2d8 --- /dev/null +++ b/Test/hlsl.comparison.vec.frag @@ -0,0 +1,34 @@ +uniform float4 uf4; + +void Bug1( float4 a ) +{ + float4 v04 = float4( 0.0, 0.0, 0.0, 0.0 ); + float v01 = 0.0; + + bool4 r00 = a == v04; + bool4 r01 = a != v04; + bool4 r02 = a < v04; + bool4 r03 = a > v04; + + bool4 r10 = a == v01; + bool4 r11 = a != v01; + bool4 r12 = a < v01; + bool4 r13 = a > v01; + + bool4 r20 = v01 == a; + bool4 r21 = v01 != a; + bool4 r22 = v01 < a; + bool4 r23 = v01 > a; +} + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/Test/hlsl.deadFunctionMissingBody.vert b/Test/hlsl.deadFunctionMissingBody.vert new file mode 100644 index 0000000000000000000000000000000000000000..a5f965abcbf79202bc85dd63d9b92baaa615f111 --- /dev/null +++ b/Test/hlsl.deadFunctionMissingBody.vert @@ -0,0 +1,8 @@ +float4 main(): SV_Target0 { return 0; } +struct Surface { float3 albedo; }; +Surface surfaceShader(float fade); +Surface surfaceShaderExec() +{ + float fade = 0; + return surfaceShader(0); +} diff --git a/Test/hlsl.doLoop.frag b/Test/hlsl.doLoop.frag index 546b2c2ca76e6e69271bc6893f958485120aa4d7..251a8c120638a2d7e051faa2cd19f70fc9fb5039 100644 --- a/Test/hlsl.doLoop.frag +++ b/Test/hlsl.doLoop.frag @@ -2,5 +2,5 @@ float4 PixelShaderFunction(float4 input) : COLOR0 { [unroll] do {} while (false); [unroll] do {;} while (false); - do { return input; } while (input == input); + do { return input; } while (all(input == input)); } diff --git a/Test/hlsl.entry-out.frag b/Test/hlsl.entry-out.frag index 14f0e45959b60f313bc77eb25aebba081c23f256..27b4dd6428cde5293d2a908eafab4c0510bc4bf6 100644 --- a/Test/hlsl.entry-out.frag +++ b/Test/hlsl.entry-out.frag @@ -3,6 +3,12 @@ struct OutParam { int2 i; }; +void fun(out OutParam op) +{ + op.v = float2(0.4); + op.i = int2(7); +} + float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2, out OutParam out3) : COLOR0 { out1 = input; @@ -11,7 +17,7 @@ float4 PixelShaderFunction(float4 input, out float4 out1, out OutParam out2, out OutParam local; local.v = 12.0; local.i = 13; - out3 = local; + fun(out3); return out1; } diff --git a/Test/hlsl.entry.rename.frag b/Test/hlsl.entry.rename.frag new file mode 100644 index 0000000000000000000000000000000000000000..188dfc58a7ddfbdda6cd9784262a192794d53f1b --- /dev/null +++ b/Test/hlsl.entry.rename.frag @@ -0,0 +1,15 @@ + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +void not_the_entry_point() { } +int also_not_the_entry_point; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/Test/hlsl.flatten.return.frag b/Test/hlsl.flatten.return.frag new file mode 100644 index 0000000000000000000000000000000000000000..c633e679882ee1e181ca28400267d20769ac1ffe --- /dev/null +++ b/Test/hlsl.flatten.return.frag @@ -0,0 +1,18 @@ + +struct PS_OUTPUT +{ + float4 color : SV_Target0; + float other_struct_member1; + float other_struct_member2; + float other_struct_member3; +}; + +PS_OUTPUT Func1() +{ + return PS_OUTPUT(float4(1), 2, 3, 4); +} + +PS_OUTPUT main() +{ + return Func1(); +} diff --git a/Test/hlsl.float1.frag b/Test/hlsl.float1.frag index 6247e77be86e5bde3d5707a7f50fc4c8a7787167..f9c0a6e0b4ac40166c4e5d5d55dee7c328264b5c 100644 --- a/Test/hlsl.float1.frag +++ b/Test/hlsl.float1.frag @@ -1,5 +1,5 @@ -float1 f1 = float1(1.0); -float scalar = 2.0; +static float1 f1 = float1(1.0); +static float scalar = 2.0; float1 ShaderFunction(float1 inFloat1 : COLOR, float inScalar) : COLOR0 { diff --git a/Test/hlsl.float4.frag b/Test/hlsl.float4.frag index 5ae70db064a7effb43cce99cd5930ca111d7bb79..b541f5d3252cddab9c29b6bcb264dd96fb42e5c6 100644 --- a/Test/hlsl.float4.frag +++ b/Test/hlsl.float4.frag @@ -1,9 +1,9 @@ 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, s0) ; -float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s1) <int bambam=30;> ; +float ff2 : packoffset(c1.y); +float4 ff3 : packoffset(c2) : register(ps_5_0, s0) ; +float4 ff4 : VPOS : packoffset(c3) : register(ps_5_0, s1) <int bambam=30;> ; float4 ShaderFunction(float4 input) : COLOR0 { diff --git a/Test/hlsl.forLoop.frag b/Test/hlsl.forLoop.frag index 2495e6e183c6af78c962d15e956c5af17184b5ca..937899670da0d23a56dea3811347fd484ef30363 100644 --- a/Test/hlsl.forLoop.frag +++ b/Test/hlsl.forLoop.frag @@ -2,9 +2,9 @@ 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; } + [unroll] for (; any(input != input); ) {} + for (; any(input != input); ) { return -input; } + for (--input; any(input != input); input += 2) { return -input; } for (;;) if (input.x > 2.0) break; for (;;) if (input.x > 2.0) continue; float ii; diff --git a/Test/hlsl.getdimensions.rw.dx10.frag b/Test/hlsl.getdimensions.rw.dx10.frag new file mode 100644 index 0000000000000000000000000000000000000000..957a80828001712472e1c73af3314f3ecd570334 --- /dev/null +++ b/Test/hlsl.getdimensions.rw.dx10.frag @@ -0,0 +1,96 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D <float4> g_tTex1df4 : register(t0); +RWTexture1D <int4> g_tTex1di4; +RWTexture1D <uint4> g_tTex1du4; + +RWTexture2D <float4> g_tTex2df4; +RWTexture2D <int4> g_tTex2di4; +RWTexture2D <uint4> g_tTex2du4; + +RWTexture3D <float4> g_tTex3df4; +RWTexture3D <int4> g_tTex3di4; +RWTexture3D <uint4> g_tTex3du4; + +RWTexture1DArray <float4> g_tTex1df4a; +RWTexture1DArray <int4> g_tTex1di4a; +RWTexture1DArray <uint4> g_tTex1du4a; + +RWTexture2DArray <float4> g_tTex2df4a; +RWTexture2DArray <int4> g_tTex2di4a; +RWTexture2DArray <uint4> g_tTex2du4a; + +RWBuffer <float4> g_tBuffF; +RWBuffer <int4> g_tBuffI; +RWBuffer <uint4> g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + uint MipLevel; + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + float WidthF; + float HeightF; + float ElementsF; + float DepthF; + float NumberOfLevelsF; + float NumberOfSamplesF; + + // 1D, float/int/uint, uint params + g_tTex1df4.GetDimensions(WidthU); + g_tTex1di4.GetDimensions(WidthU); + g_tTex1du4.GetDimensions(WidthU); + + // buffer, float/int/uint, uint params + g_tBuffF.GetDimensions(WidthU); + g_tBuffI.GetDimensions(WidthU); + g_tBuffU.GetDimensions(WidthU); + + // 1DArray, float/int/uint, uint params + g_tTex1df4a.GetDimensions(WidthU, ElementsU); + g_tTex1di4a.GetDimensions(WidthU, ElementsU); + g_tTex1du4a.GetDimensions(WidthU, ElementsU); + + // 2D, float/int/uint, uint params + g_tTex2df4.GetDimensions(WidthU, HeightU); + g_tTex2di4.GetDimensions(WidthU, HeightU); + g_tTex2du4.GetDimensions(WidthU, HeightU); + + // 2DArray, float/int/uint, uint params + g_tTex2df4a.GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2di4a.GetDimensions(WidthU, HeightU, ElementsU); + g_tTex2du4a.GetDimensions(WidthU, HeightU, ElementsU); + + // 3D, float/int/uint, uint params + g_tTex3df4.GetDimensions(WidthU, HeightU, DepthU); + g_tTex3di4.GetDimensions(WidthU, HeightU, DepthU); + g_tTex3du4.GetDimensions(WidthU, HeightU, DepthU); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.identifier.sample.frag b/Test/hlsl.identifier.sample.frag new file mode 100644 index 0000000000000000000000000000000000000000..d3f824272f390955b128b351590757ca20822093 --- /dev/null +++ b/Test/hlsl.identifier.sample.frag @@ -0,0 +1,18 @@ + +struct MyStruct { + sample float a; + noperspective float b; + linear float c; + centroid float d; +}; + +int sample(int x) { return x; } // HLSL allows this as an identifier as well. + +float4 main() : SV_Target0 +{ + // HLSL allows this as an identifier as well. + // However, this is not true of other qualifier keywords such as "linear". + float4 sample = float4(3,4,5,6); + + return sample.rgba; // 'sample' can participate in an expression. +} diff --git a/Test/hlsl.if.frag b/Test/hlsl.if.frag index 1f6dc4159658e3ff0dedba82dcacd4dda493ecc9..ba659e6d154f722ea65a8632feded236bcb34429 100644 --- a/Test/hlsl.if.frag +++ b/Test/hlsl.if.frag @@ -1,26 +1,26 @@ float4 PixelShaderFunction(float4 input) : COLOR0 { - if (input == input) + if (all(input == input)) return input; - if (input == input) + if (all(input == input)) return input; else return -input; - if (input == input) + if (all(input == input)) ; - if (input == input) + if (all(input == input)) ; else ; - [flatten] if (input == input) { + [flatten] if (all(input == input)) { return input; } - if (input == input) { + if (all(input == input)) { return input; } else { return -input; diff --git a/Test/hlsl.init.frag b/Test/hlsl.init.frag index c233d127d9f1de2464e3bec9c3be9d829fb1100e..a3f6f0e79d52779e03a4c85643019d7022bc9be8 100644 --- a/Test/hlsl.init.frag +++ b/Test/hlsl.init.frag @@ -1,21 +1,21 @@ -float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2); -float4 a1i = {1, 0.5, 0, 1}, b1i = {2.0, 2.5, 2.1, 2.2}; -float a2 = 0.2, b2; -float a3, b3 = 0.3; -float a4, b4 = 0.4, c4; -float a5 = 0.5, b5, c5 = 1.5; +static float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2); +static float4 a1i = {1, 0.5, 0, 1}, b1i = {2.0, 2.5, 2.1, 2.2}; +static float a2 = 0.2, b2; +static float a3, b3 = 0.3; +static float a4, b4 = 0.4, c4; +static float a5 = 0.5, b5, c5 = 1.5; struct Single1 { int f; }; -Single1 single1 = { 10 }; +static Single1 single1 = { 10 }; struct Single2 { uint2 v; }; -Single2 single2 = { { 1, 2 } }; +static Single2 single2 = { { 1, 2 } }; struct Single3 { Single1 s1; }; -Single3 single3 = { { 3 } }; +static Single3 single3 = { { 3 } }; struct Single4 { Single2 s1; }; -Single4 single4 = { { { 4u, 5u } } }; +static Single4 single4 = { { { 4u, 5u } } }; float4 ShaderFunction(float4 input) : COLOR0 { diff --git a/Test/hlsl.inoutquals.frag b/Test/hlsl.inoutquals.frag index 91798d5747fc3a8e1fb66921bed590553598cad2..32346882681d45b87bd07a0e058cb40ee4984b99 100644 --- a/Test/hlsl.inoutquals.frag +++ b/Test/hlsl.inoutquals.frag @@ -11,7 +11,7 @@ void MyFunc(in float x, out float y, inout float z) x = -1; // no effect since x = in param } -PS_OUTPUT main(noperspective in float4 inpos : SV_Position) +PS_OUTPUT main(noperspective in float4 inpos : SV_Position, out int sampleMask : SV_Coverage) { PS_OUTPUT psout; diff --git a/Test/hlsl.intrinsics.comp b/Test/hlsl.intrinsics.comp index 642a0fc609ad4d38fbda55e9b6d2621b2351f7db..bce2d27d814e07c0bec4bc2cc11f06d8b1516164 100644 --- a/Test/hlsl.intrinsics.comp +++ b/Test/hlsl.intrinsics.comp @@ -1,17 +1,17 @@ -#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; + +groupshared uint gs_ua; +groupshared uint gs_ub; +groupshared uint gs_uc; +groupshared uint2 gs_ua2; +groupshared uint2 gs_ub2; +groupshared uint2 gs_uc2; +groupshared uint3 gs_ua3; +groupshared uint3 gs_ub3; +groupshared uint3 gs_uc3; +groupshared uint4 gs_ua4; +groupshared uint4 gs_ub4; +groupshared uint4 gs_uc4; float ComputeShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) { diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag index c04acaeda9c04bdea037cdb0edb32f2f4fe9eda6..15db6376ca1a002a786689eec956f0e0103b4691 100644 --- a/Test/hlsl.intrinsics.frag +++ b/Test/hlsl.intrinsics.frag @@ -1,17 +1,17 @@ -#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; + +groupshared uint gs_ua; +groupshared uint gs_ub; +groupshared uint gs_uc; +groupshared uint2 gs_ua2; +groupshared uint2 gs_ub2; +groupshared uint2 gs_uc2; +groupshared uint3 gs_ua3; +groupshared uint3 gs_ub3; +groupshared uint3 gs_uc3; +groupshared uint4 gs_ua4; +groupshared uint4 gs_ub4; +groupshared uint4 gs_uc4; float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint inU1) { @@ -33,7 +33,7 @@ float PixelShaderFunctionS(float inF0, float inF1, float inF2, uint inU0, uint i clip(inF0); float r014 = cos(inF0); float r015 = cosh(inF0); - uint r016 = countbits(7); + int r016 = countbits(7); float r017 = ddx(inF0); float r018 = ddx_coarse(inF0); float r019 = ddx_fine(inF0); @@ -111,7 +111,7 @@ float2 PixelShaderFunction2(float2 inF0, float2 inF1, float2 inF2, uint2 inU0, u clip(inF0); float2 r013 = cos(inF0); float2 r015 = cosh(inF0); - uint2 r016 = countbits(int2(7,3)); + int2 r016 = countbits(int2(7,3)); float2 r017 = ddx(inF0); float2 r018 = ddx_coarse(inF0); float2 r019 = ddx_fine(inF0); diff --git a/Test/hlsl.intrinsics.negative.vert b/Test/hlsl.intrinsics.negative.vert index fcfb761a6e66952437c99375c1a9c21a91930961..6224b25e46ff6f28af1ee0afe78e0b9a24b1f33b 100644 --- a/Test/hlsl.intrinsics.negative.vert +++ b/Test/hlsl.intrinsics.negative.vert @@ -1,15 +1,15 @@ -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; +static uint gs_ua; +static uint gs_ub; +static uint gs_uc; +static uint2 gs_ua2; +static uint2 gs_ub2; +static uint2 gs_uc2; +static uint3 gs_ua3; +static uint3 gs_ub3; +static uint3 gs_uc3; +static uint4 gs_ua4; +static uint4 gs_ub4; +static uint4 gs_uc4; float VertexShaderFunctionS(float inF0, float inF1, float inF2, int inI0) { diff --git a/Test/hlsl.intrinsics.promote.down.frag b/Test/hlsl.intrinsics.promote.down.frag new file mode 100644 index 0000000000000000000000000000000000000000..5f4882b2624fd9cb198ea0b04398c3701bd2a3fe --- /dev/null +++ b/Test/hlsl.intrinsics.promote.down.frag @@ -0,0 +1,22 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +PS_OUTPUT main() +{ + uint r00 = countbits(f); + uint2 r01 = reversebits(f2); + + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/Test/hlsl.intrinsics.promote.frag b/Test/hlsl.intrinsics.promote.frag new file mode 100644 index 0000000000000000000000000000000000000000..89d3e680409b2dc3d88100fea05dc7f1b95e11ef --- /dev/null +++ b/Test/hlsl.intrinsics.promote.frag @@ -0,0 +1,79 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +Buffer <float> g_tTexbfs; +Texture1D <float4> g_tTex1df4; +uint upos; +float fpos; + +PS_OUTPUT main() +{ + // Same shapes: + + float r00 = max(b, f); + uint r01 = max(b, u); + int r02 = max(b, i); + float r03 = max(i, f); + float r04 = max(u, f); + + float2 r10 = max(b2, f2); + uint2 r11 = max(b2, u2); + int2 r12 = max(b2, i2); + float2 r13 = max(i2, f2); + float2 r14 = max(u2, f2); + + float2 r20 = clamp(i2, u2, f2); // 3 args, converts all to best type. + uint2 r21 = clamp(b2, u2, b2); + float2 r22 = clamp(b2, f2, b2); + + // Mixed shapes: + float2 r30 = max(b, f2); + uint2 r31 = max(b, u2); + int2 r32 = max(b, i2); + float2 r33 = max(i, f2); + float2 r34 = max(u, f2); + + float2 r40 = clamp(i, u2, f2); // 3 args, converts all to best type. + uint2 r41 = clamp(b2, u, b2); + float2 r42 = clamp(b2, f, b); + int2 r43 = clamp(i, i2, u2); + + float r50 = g_tTexbfs.Load(upos); + float r51 = g_tTexbfs.Load(fpos); + + int MipLevel; + + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + int WidthI; + int HeightI; + int ElementsI; + int DepthI; + int NumberOfLevelsI; + int NumberOfSamplesI; + + g_tTex1df4 . GetDimensions(WidthI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI); + + // max(i2, f2); + PS_OUTPUT ps_output; + ps_output.color = r00; + return ps_output; +}; diff --git a/Test/hlsl.intrinsics.promote.outputs.frag b/Test/hlsl.intrinsics.promote.outputs.frag new file mode 100644 index 0000000000000000000000000000000000000000..42fa3e806d9907259d61bda97f07786df37ffdc8 --- /dev/null +++ b/Test/hlsl.intrinsics.promote.outputs.frag @@ -0,0 +1,49 @@ + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +int i; +uint u; +float f; +bool b; + +int2 i2; +uint2 u2; +float2 f2; +bool2 b2; + +Buffer <float> g_tTexbfs; +Texture1D <float4> g_tTex1df4; +uint upos; +float fpos; + +PS_OUTPUT main() +{ + int MipLevel; + + uint WidthU; + uint HeightU; + uint ElementsU; + uint DepthU; + uint NumberOfLevelsU; + uint NumberOfSamplesU; + + int WidthI; + int HeightI; + int ElementsI; + int DepthI; + int NumberOfLevelsI; + int NumberOfSamplesI; + + saturate(fpos); + + // Test output promotions + g_tTex1df4 . GetDimensions(WidthI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsU); + g_tTex1df4 . GetDimensions(6, WidthU, NumberOfLevelsI); + g_tTex1df4 . GetDimensions(6, WidthI, NumberOfLevelsI); + + // max(i2, f2); + PS_OUTPUT ps_output; + ps_output.color = 0; + return ps_output; +}; diff --git a/Test/hlsl.load.buffer.float.dx10.frag b/Test/hlsl.load.buffer.float.dx10.frag new file mode 100644 index 0000000000000000000000000000000000000000..eeea9a63e2c855b92be8ec9d4f4c229525563a68 --- /dev/null +++ b/Test/hlsl.load.buffer.float.dx10.frag @@ -0,0 +1,38 @@ +uniform Buffer <float> g_tTexbfs_test : register(t0); + +Buffer <float> g_tTexbfs; +Buffer <int> g_tTexbis; +Buffer <uint> g_tTexbus; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // Buffer + float r00 = g_tTexbfs.Load(c1); + int r01 = g_tTexbis.Load(c1); + uint r02 = g_tTexbus.Load(c1); + + // TODO: other types that can be put in sampler buffers, like float2x2, and float3. + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.rwbuffer.dx10.frag b/Test/hlsl.load.rwbuffer.dx10.frag new file mode 100644 index 0000000000000000000000000000000000000000..accd5f0c1ef42362c6673704254181add6202125 --- /dev/null +++ b/Test/hlsl.load.rwbuffer.dx10.frag @@ -0,0 +1,32 @@ + +RWBuffer <float4> g_tBuffF; +RWBuffer <int4> g_tBuffI; +RWBuffer <uint4> g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + g_tBuffF.Load(c1); + g_tBuffU.Load(c1); + g_tBuffI.Load(c1); + + psout.Color = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.rwtexture.array.dx10.frag b/Test/hlsl.load.rwtexture.array.dx10.frag new file mode 100644 index 0000000000000000000000000000000000000000..38e290962b4a6ee9ba68c78a5c6d10e2ee576aef --- /dev/null +++ b/Test/hlsl.load.rwtexture.array.dx10.frag @@ -0,0 +1,57 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D <float4> g_tTex1df4 : register(t0); +RWTexture1D <int4> g_tTex1di4; +RWTexture1D <uint4> g_tTex1du4; + +RWTexture2D <float4> g_tTex2df4; +RWTexture2D <int4> g_tTex2di4; +RWTexture2D <uint4> g_tTex2du4; + +RWTexture3D <float4> g_tTex3df4; +RWTexture3D <int4> g_tTex3di4; +RWTexture3D <uint4> g_tTex3du4; + +RWTexture1DArray <float4> g_tTex1df4a; +RWTexture1DArray <int4> g_tTex1di4a; +RWTexture1DArray <uint4> g_tTex1du4a; + +RWTexture2DArray <float4> g_tTex2df4a; +RWTexture2DArray <int4> g_tTex2di4a; +RWTexture2DArray <uint4> g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4a.Load(c2); + g_tTex1di4a.Load(c2); + g_tTex1du4a.Load(c2); + + // 2D + g_tTex2df4a.Load(c3); + g_tTex2di4a.Load(c3); + g_tTex2du4a.Load(c3); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.load.rwtexture.dx10.frag b/Test/hlsl.load.rwtexture.dx10.frag new file mode 100644 index 0000000000000000000000000000000000000000..c09507766f27c965b7c0e15de1274d13f4204b8d --- /dev/null +++ b/Test/hlsl.load.rwtexture.dx10.frag @@ -0,0 +1,62 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D <float4> g_tTex1df4 : register(t0); +RWTexture1D <int4> g_tTex1di4; +RWTexture1D <uint4> g_tTex1du4; + +RWTexture2D <float4> g_tTex2df4; +RWTexture2D <int4> g_tTex2di4; +RWTexture2D <uint4> g_tTex2du4; + +RWTexture3D <float4> g_tTex3df4; +RWTexture3D <int4> g_tTex3di4; +RWTexture3D <uint4> g_tTex3du4; + +RWTexture1DArray <float4> g_tTex1df4a; +RWTexture1DArray <int4> g_tTex1di4a; +RWTexture1DArray <uint4> g_tTex1du4a; + +RWTexture2DArray <float4> g_tTex2df4a; +RWTexture2DArray <int4> g_tTex2di4a; +RWTexture2DArray <uint4> g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; + float Depth : SV_Depth; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4.Load(c1); + g_tTex1di4.Load(c1); + g_tTex1du4.Load(c1); + + // 2D + g_tTex2df4.Load(c2); + g_tTex2di4.Load(c2); + g_tTex2du4.Load(c2); + + // 3D + g_tTex3df4.Load(c3); + g_tTex3di4.Load(c3); + g_tTex3du4.Load(c3); + + psout.Color = 1.0; + psout.Depth = 1.0; + + return psout; +} diff --git a/Test/hlsl.logical.binary.frag b/Test/hlsl.logical.binary.frag new file mode 100644 index 0000000000000000000000000000000000000000..06bc9f2f05dd9a386afe4c39af1821ebcc9c02f7 --- /dev/null +++ b/Test/hlsl.logical.binary.frag @@ -0,0 +1,21 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + if (ival && fval); + if (ival || fval); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} + + diff --git a/Test/hlsl.logical.binary.vec.frag b/Test/hlsl.logical.binary.vec.frag new file mode 100644 index 0000000000000000000000000000000000000000..e94c8f5b0362be2a860184a0fd6c6ee2438f4d69 --- /dev/null +++ b/Test/hlsl.logical.binary.vec.frag @@ -0,0 +1,24 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform bool4 b4a, b4b; +uniform bool b1a, b1b; + +PS_OUTPUT main() +{ + bool4 r00 = !b4a; + bool4 r01 = b4a && b4b; // vec, vec + bool4 r02 = b4a || b4b; // vec, vec + + bool4 r10 = b1a && b4b; // scalar, vec + bool4 r11 = b1a || b4b; // scalar, vec + + bool4 r20 = b4a && b1b; // vec, scalar + bool4 r21 = b4a || b1b; // vec, scalar + + PS_OUTPUT psout; + psout.Color = r00 || r01 || r02 || r10 || r11 || r20 || r21; + return psout; +} diff --git a/Test/hlsl.logical.unary.frag b/Test/hlsl.logical.unary.frag new file mode 100644 index 0000000000000000000000000000000000000000..cbcb3bfc41aec30e94f2f32dc05725b33adcf019 --- /dev/null +++ b/Test/hlsl.logical.unary.frag @@ -0,0 +1,29 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + !ival; // scalar int + !ival4; // vector int + + !fval; // scalar float + !fval4; // vector float + + if (ival); + if (fval); + if (!ival); + if (!fval); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} + + diff --git a/Test/hlsl.matNx1.frag b/Test/hlsl.matNx1.frag new file mode 100644 index 0000000000000000000000000000000000000000..515bd47074b018d05c153f16c51fd1548172e5b5 --- /dev/null +++ b/Test/hlsl.matNx1.frag @@ -0,0 +1,31 @@ + +void TestMatNx1() +{ + float1x1 f1x1; + float2x1 f2x1; + float3x1 f3x1; + float4x1 f4x1; + + float1x2 f1x2; + float1x3 f1x3; + float1x4 f1x4; + + float1x1 r00 = transpose(f1x1); + float1x2 r01 = transpose(f2x1); + float1x3 r02 = transpose(f3x1); + float1x4 r03 = transpose(f4x1); + + float1x1 r10 = transpose(f1x1); + float2x1 r11 = transpose(f1x2); + float3x1 r12 = transpose(f1x3); + float4x1 r13 = transpose(f1x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = 1.0; + return ps_output; +}; diff --git a/Test/hlsl.matType.bool.frag b/Test/hlsl.matType.bool.frag new file mode 100644 index 0000000000000000000000000000000000000000..e4a62e36c65431fa2cf031c2b6f8baccbf877250 --- /dev/null +++ b/Test/hlsl.matType.bool.frag @@ -0,0 +1,53 @@ + +void TestBoolMatTypes() +{ + bool1x1 b1x1; + bool2x1 b2x1; + bool3x1 b3x1; + bool4x1 b4x1; + + bool1x2 b1x2; + bool2x2 b2x2; + bool3x2 b3x2; + bool4x2 b4x2; + + bool1x3 b1x3; + bool2x3 b2x3; + bool3x3 b3x3; + bool4x3 b4x3; + + bool1x4 b1x4; + bool2x4 b2x4; + bool3x4 b3x4; + bool4x4 b4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + bool1x1 r00 = transpose(b1x1); + bool1x2 r01 = transpose(b2x1); + bool1x3 r02 = transpose(b3x1); + bool1x4 r03 = transpose(b4x1); + + bool2x1 r10 = transpose(b1x2); + bool2x2 r11 = transpose(b2x2); + bool2x3 r12 = transpose(b3x2); + bool2x4 r13 = transpose(b4x2); + + bool3x1 r20 = transpose(b1x3); + bool3x2 r21 = transpose(b2x3); + bool3x3 r22 = transpose(b3x3); + bool3x4 r23 = transpose(b4x3); + + bool4x1 r30 = transpose(b1x4); + bool4x2 r31 = transpose(b2x4); + bool4x3 r32 = transpose(b3x4); + bool4x4 r33 = transpose(b4x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/Test/hlsl.matType.int.frag b/Test/hlsl.matType.int.frag new file mode 100644 index 0000000000000000000000000000000000000000..09e9f2ad5732ee8ca8ee153c6f982437a42ab1f8 --- /dev/null +++ b/Test/hlsl.matType.int.frag @@ -0,0 +1,97 @@ + +void TestIntMatTypes() +{ + int1x1 i1x1; + int2x1 i2x1; + int3x1 i3x1; + int4x1 i4x1; + + int1x2 i1x2; + int2x2 i2x2; + int3x2 i3x2; + int4x2 i4x2; + + int1x3 i1x3; + int2x3 i2x3; + int3x3 i3x3; + int4x3 i4x3; + + int1x4 i1x4; + int2x4 i2x4; + int3x4 i3x4; + int4x4 i4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + int1x1 r00 = transpose(i1x1); + int1x2 r01 = transpose(i2x1); + int1x3 r02 = transpose(i3x1); + int1x4 r03 = transpose(i4x1); + + int2x1 r10 = transpose(i1x2); + int2x2 r11 = transpose(i2x2); + int2x3 r12 = transpose(i3x2); + int2x4 r13 = transpose(i4x2); + + int3x1 r20 = transpose(i1x3); + int3x2 r21 = transpose(i2x3); + int3x3 r22 = transpose(i3x3); + int3x4 r23 = transpose(i4x3); + + int4x1 r30 = transpose(i1x4); + int4x2 r31 = transpose(i2x4); + int4x3 r32 = transpose(i3x4); + int4x4 r33 = transpose(i4x4); +} + +void TestUintMatTypes() +{ + uint1x1 u1x1; + uint2x1 u2x1; + uint3x1 u3x1; + uint4x1 u4x1; + + uint1x2 u1x2; + uint2x2 u2x2; + uint3x2 u3x2; + uint4x2 u4x2; + + uint1x3 u1x3; + uint2x3 u2x3; + uint3x3 u3x3; + uint4x3 u4x3; + + uint1x4 u1x4; + uint2x4 u2x4; + uint3x4 u3x4; + uint4x4 u4x4; + + // TODO: Currently SPIR-V disallows Nx1 or 1xN mats. + uint1x1 r00 = transpose(u1x1); + uint1x2 r01 = transpose(u2x1); + uint1x3 r02 = transpose(u3x1); + uint1x4 r03 = transpose(u4x1); + + uint2x1 r10 = transpose(u1x2); + uint2x2 r11 = transpose(u2x2); + uint2x3 r12 = transpose(u3x2); + uint2x4 r13 = transpose(u4x2); + + uint3x1 r20 = transpose(u1x3); + uint3x2 r21 = transpose(u2x3); + uint3x3 r22 = transpose(u3x3); + uint3x4 r23 = transpose(u4x3); + + uint4x1 r30 = transpose(u1x4); + uint4x2 r31 = transpose(u2x4); + uint4x3 r32 = transpose(u3x4); + uint4x4 r33 = transpose(u4x4); +} + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +PS_OUTPUT main() +{ + PS_OUTPUT ps_output; + ps_output.color = float4(0,0,0,0); + return ps_output; +}; diff --git a/Test/hlsl.mintypes.frag b/Test/hlsl.mintypes.frag new file mode 100644 index 0000000000000000000000000000000000000000..ad47e68e3bcbd25d00ab4e8c1292cebb73e2aa54 --- /dev/null +++ b/Test/hlsl.mintypes.frag @@ -0,0 +1,49 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform min16float b1a, b1b; + +PS_OUTPUT main() +{ + min16float mf16; + min16float1 mf16_1; + min16float2 mf16_2; + min16float3 mf16_3; + min16float4 mf16_4; + + min10float mf10; + min10float1 mf10_1; + min10float2 mf10_2; + min10float3 mf10_3; + min10float4 mf12_4; + + min16int mi16; + min16int1 mi16_1; + min16int2 mi16_2; + min16int3 mi16_3; + min16int4 mi16_4; + + min12int mi12; + min12int1 mi12_1; + min12int2 mi12_2; + min12int3 mi12_3; + min12int4 mi12_4; + + min16uint mu16; + min16uint1 mu16_1; + min16uint2 mu16_2; + min16uint3 mu16_3; + min16uint4 mu16_4; + + mf16_2 + mf16; + mf10_2 + mf10; + mi16_2 + mi16; + mi12_2 + mi12; + mu16_2 + mu16; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/Test/hlsl.multiReturn.frag b/Test/hlsl.multiReturn.frag new file mode 100755 index 0000000000000000000000000000000000000000..fdab772109e394796c53f29c7021ca3b3919fd23 --- /dev/null +++ b/Test/hlsl.multiReturn.frag @@ -0,0 +1,19 @@ +struct S { + float f; + float3 v; + float3x3 m; +}; + +cbuffer bufName { + S s; +}; + +S foo() +{ + return s; +} + +void main() +{ + foo(); +} diff --git a/Test/hlsl.numthreads.comp b/Test/hlsl.numthreads.comp new file mode 100644 index 0000000000000000000000000000000000000000..fcc97f37985b671f15c745e6aa48a06d5d74198d --- /dev/null +++ b/Test/hlsl.numthreads.comp @@ -0,0 +1,14 @@ + +[numthreads(8,8,1)] +void main(uint3 tid : SV_DispatchThreadID ) +{ +} + +[numTHreaDs(4,4,2)] // case insensitive +void main_aux1(uint3 tid : SV_DispatchThreadID ) +{ +} + +[numthreads(1,4,8)] +void main_aux2(uint3 tid : SV_DispatchThreadID ); + diff --git a/Test/hlsl.partialInit.frag b/Test/hlsl.partialInit.frag new file mode 100755 index 0000000000000000000000000000000000000000..59e8a529cad08fd25fa7f6de754ba0e4144742ac --- /dev/null +++ b/Test/hlsl.partialInit.frag @@ -0,0 +1,29 @@ +struct outs { + int a; + float b; + bool c; + float4 v; +}; + +static float4 gv = {0,0,1}; +static float gfa[3] = {0,0}; + +struct Nest { + float4x3 m; + outs os; + bool b; +}; + +outs PixelShaderFunction(float4 input) : COLOR0 +{ + outs o2 = { 3 }; + outs o4; + o4.v = gv * gfa[2]; + outs o1 = { }; + outs o3 = (outs)0; + o4 = (outs)0; + o4.c = o1.c; + Nest nest = (Nest)0; + + return o4; +} \ No newline at end of file diff --git a/Test/hlsl.precise.frag b/Test/hlsl.precise.frag index 7518de542a55a70168229b2164c720339be267f0..77454e0728b5a3e590e38c5d6ca140fbc8d03844 100644 --- a/Test/hlsl.precise.frag +++ b/Test/hlsl.precise.frag @@ -1,7 +1,7 @@ struct PS_OUTPUT { precise float4 color : SV_Target0; }; -precise float precisefloat; +static precise float precisefloat; void MyFunction(in precise float myfloat, out precise float3 myfloat3) { } diff --git a/Test/hlsl.promote.atomic.frag b/Test/hlsl.promote.atomic.frag new file mode 100644 index 0000000000000000000000000000000000000000..2b46225bc8a43b64d3f958b33c37bee1ca1f27dd --- /dev/null +++ b/Test/hlsl.promote.atomic.frag @@ -0,0 +1,17 @@ + +RWBuffer<uint> s_uintbuff; // UINT RWBuffer ... + +float4 main() : SV_Target +{ + int Loc; // ... with INT variables + int Inc; + int Orig; + + // This must select the uint flavor of SPIR-V atomic op, and promote + // the other arguments as required. The output value from the + // imageAtomicAdd AST will be converted to an int for 'Orig'. + InterlockedAdd(s_uintbuff[Loc], Inc, Orig); + + return float4(0,0,0,0); +} + diff --git a/Test/hlsl.promote.binary.frag b/Test/hlsl.promote.binary.frag new file mode 100644 index 0000000000000000000000000000000000000000..0203bed99bb45d12786a6c617d7fbbd7f7706897 --- /dev/null +++ b/Test/hlsl.promote.binary.frag @@ -0,0 +1,28 @@ +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform bool bval; +uniform bool4 bval4; +uniform int ival; +uniform int4 ival4; +uniform float fval; +uniform float4 fval4; + +PS_OUTPUT main() +{ + ival % fval; + ival4 % fval4; + + bval % fval; + bval4 % fval4; + + int l_int = 1; + l_int %= fval; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} + diff --git a/Test/hlsl.promote.vec1.frag b/Test/hlsl.promote.vec1.frag new file mode 100644 index 0000000000000000000000000000000000000000..a674ccbaa9066c44fb274ff5f36578018294d2a6 --- /dev/null +++ b/Test/hlsl.promote.vec1.frag @@ -0,0 +1,16 @@ + +float4 main() : SV_Target +{ + float f1a; + float1 f1b; + + f1a = f1b; // convert float1 to float + f1b = f1a; // convert float to float1 + + float3 f3; + step(0.0, f3); + + sin(f1b); // test 1-vectors in intrinsics + + return float4(0,0,0,0); +} diff --git a/Test/hlsl.reflection.binding.frag b/Test/hlsl.reflection.binding.frag new file mode 100644 index 0000000000000000000000000000000000000000..25b22c975dc6a51560ba2e684b5b07734ceb9095 --- /dev/null +++ b/Test/hlsl.reflection.binding.frag @@ -0,0 +1,34 @@ + +uniform float u1 : register(b2); + +uniform SamplerState s1 : register(s5); +uniform SamplerState s1a[3] : register(s6); + +uniform Texture1D t1 : register(t15); +uniform Texture1D t1a[3] : register(t16); + +cbuffer cbuff1 : register(b2) { + float4 c1_a; + int c1_b; + float c1_c; +}; + +cbuffer cbuff2 : register(b3) { + float4 c2_a; + int c2_b; + float c2_c; +}; + +struct PS_OUTPUT +{ + float4 Color : Sv_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = + t1.Sample(s1, 0.3) + + t1a[0].Sample(s1a[0], 0.3) + + c1_a + c1_b + c1_c + + c2_a + c2_b + c2_c; +} diff --git a/Test/hlsl.rw.atomics.frag b/Test/hlsl.rw.atomics.frag new file mode 100644 index 0000000000000000000000000000000000000000..930d6501279e72d91ed0498b4c12d58f15c31a8a --- /dev/null +++ b/Test/hlsl.rw.atomics.frag @@ -0,0 +1,244 @@ +SamplerState g_sSamp; + +RWTexture1D <float> g_tTex1df1; +RWTexture1D <int> g_tTex1di1; +RWTexture1D <uint> g_tTex1du1; + +RWTexture2D <float> g_tTex2df1; +RWTexture2D <int> g_tTex2di1; +RWTexture2D <uint> g_tTex2du1; + +RWTexture3D <float> g_tTex3df1; +RWTexture3D <int> g_tTex3di1; +RWTexture3D <uint> g_tTex3du1; + +RWTexture1DArray <float> g_tTex1df1a; +RWTexture1DArray <int> g_tTex1di1a; +RWTexture1DArray <uint> g_tTex1du1a; + +RWTexture2DArray <float> g_tTex2df1a; +RWTexture2DArray <int> g_tTex2di1a; +RWTexture2DArray <uint> g_tTex2du1a; + +RWBuffer <float> g_tBuffF; +RWBuffer <int> g_tBuffI; +RWBuffer <uint> g_tBuffU; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform uint u1; +uniform uint2 u2; +uniform uint3 u3; +uniform uint u1b; +uniform uint u1c; + +uniform int i1; +uniform int2 i2; +uniform int3 i3; +uniform int i1b; +uniform int i1c; + +PS_OUTPUT main() +{ + uint out_u1; + int out_i1; + + // 1D int + InterlockedAdd(g_tTex1di1[i1], i1b); + InterlockedAdd(g_tTex1di1[i1], i1, out_i1); + InterlockedAnd(g_tTex1di1[i1], i1b); + InterlockedAnd(g_tTex1di1[i1], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1[i1], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1[i1], i1, out_i1); + InterlockedMax(g_tTex1di1[i1], i1b); + InterlockedMax(g_tTex1di1[i1], i1, out_i1); + InterlockedMin(g_tTex1di1[i1], i1b); + InterlockedMin(g_tTex1di1[i1], i1, out_i1); + InterlockedOr(g_tTex1di1[i1], i1b); + InterlockedOr(g_tTex1di1[i1], i1, out_i1); + InterlockedXor(g_tTex1di1[i1], i1b); + InterlockedXor(g_tTex1di1[i1], i1, out_i1); + + // 1D uint + InterlockedAdd(g_tTex1du1[u1], u1); + InterlockedAdd(g_tTex1du1[u1], u1, out_u1); + InterlockedAnd(g_tTex1du1[u1], u1); + InterlockedAnd(g_tTex1du1[u1], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1[u1], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1[u1], u1, out_u1); + InterlockedMax(g_tTex1du1[u1], u1); + InterlockedMax(g_tTex1du1[u1], u1, out_u1); + InterlockedMin(g_tTex1du1[u1], u1); + InterlockedMin(g_tTex1du1[u1], u1, out_u1); + InterlockedOr(g_tTex1du1[u1], u1); + InterlockedOr(g_tTex1du1[u1], u1, out_u1); + InterlockedXor(g_tTex1du1[u1], u1); + InterlockedXor(g_tTex1du1[u1], u1, out_u1); + + // 2D int + InterlockedAdd(g_tTex2di1[i2], i1b); + InterlockedAdd(g_tTex2di1[i2], i1, out_i1); + InterlockedAnd(g_tTex2di1[i2], i1b); + InterlockedAnd(g_tTex2di1[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex2di1[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex2di1[i2], i1, out_i1); + InterlockedMax(g_tTex2di1[i2], i1b); + InterlockedMax(g_tTex2di1[i2], i1, out_i1); + InterlockedMin(g_tTex2di1[i2], i1b); + InterlockedMin(g_tTex2di1[i2], i1, out_i1); + InterlockedOr(g_tTex2di1[i2], i1b); + InterlockedOr(g_tTex2di1[i2], i1, out_i1); + InterlockedXor(g_tTex2di1[i2], i1b); + InterlockedXor(g_tTex2di1[i2], i1, out_i1); + + // 2D uint + InterlockedAdd(g_tTex2du1[u2], u1); + InterlockedAdd(g_tTex2du1[u2], u1, out_u1); + InterlockedAnd(g_tTex2du1[u2], u1); + InterlockedAnd(g_tTex2du1[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex2du1[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex2du1[u2], u1, out_u1); + InterlockedMax(g_tTex2du1[u2], u1); + InterlockedMax(g_tTex2du1[u2], u1, out_u1); + InterlockedMin(g_tTex2du1[u2], u1); + InterlockedMin(g_tTex2du1[u2], u1, out_u1); + InterlockedOr(g_tTex2du1[u2], u1); + InterlockedOr(g_tTex2du1[u2], u1, out_u1); + InterlockedXor(g_tTex2du1[u2], u1); + InterlockedXor(g_tTex2du1[u2], u1, out_u1); + + // 3D int + InterlockedAdd(g_tTex3di1[i3], i1b); + InterlockedAdd(g_tTex3di1[i3], i1, out_i1); + InterlockedAnd(g_tTex3di1[i3], i1b); + InterlockedAnd(g_tTex3di1[i3], i1, out_i1); + InterlockedCompareExchange(g_tTex3di1[i3], i1b, i1c, out_i1); + InterlockedExchange(g_tTex3di1[i3], i1, out_i1); + InterlockedMax(g_tTex3di1[i3], i1b); + InterlockedMax(g_tTex3di1[i3], i1, out_i1); + InterlockedMin(g_tTex3di1[i3], i1b); + InterlockedMin(g_tTex3di1[i3], i1, out_i1); + InterlockedOr(g_tTex3di1[i3], i1b); + InterlockedOr(g_tTex3di1[i3], i1, out_i1); + InterlockedXor(g_tTex3di1[i3], i1b); + InterlockedXor(g_tTex3di1[i3], i1, out_i1); + + // 3D uint + InterlockedAdd(g_tTex3du1[u3], u1); + InterlockedAdd(g_tTex3du1[u3], u1, out_u1); + InterlockedAnd(g_tTex3du1[u3], u1); + InterlockedAnd(g_tTex3du1[u3], u1, out_u1); + InterlockedCompareExchange(g_tTex3du1[u3], u1b, u1c, out_u1); + InterlockedExchange(g_tTex3du1[u3], u1, out_u1); + InterlockedMax(g_tTex3du1[u3], u1); + InterlockedMax(g_tTex3du1[u3], u1, out_u1); + InterlockedMin(g_tTex3du1[u3], u1); + InterlockedMin(g_tTex3du1[u3], u1, out_u1); + InterlockedOr(g_tTex3du1[u3], u1); + InterlockedOr(g_tTex3du1[u3], u1, out_u1); + InterlockedXor(g_tTex3du1[u3], u1); + InterlockedXor(g_tTex3du1[u3], u1, out_u1); + + // 1D array int + InterlockedAdd(g_tTex1di1a[i2], i1b); + InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); + InterlockedAnd(g_tTex1di1a[i2], i1b); + InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); + InterlockedMax(g_tTex1di1a[i2], i1b); + InterlockedMax(g_tTex1di1a[i2], i1, out_i1); + InterlockedMin(g_tTex1di1a[i2], i1b); + InterlockedMin(g_tTex1di1a[i2], i1, out_i1); + InterlockedOr(g_tTex1di1a[i2], i1b); + InterlockedOr(g_tTex1di1a[i2], i1, out_i1); + InterlockedXor(g_tTex1di1a[i2], i1b); + InterlockedXor(g_tTex1di1a[i2], i1, out_i1); + + // 1D array uint + InterlockedAdd(g_tTex1du1a[u2], u1); + InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); + InterlockedAnd(g_tTex1du1a[u2], u1); + InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); + InterlockedMax(g_tTex1du1a[u2], u1); + InterlockedMax(g_tTex1du1a[u2], u1, out_u1); + InterlockedMin(g_tTex1du1a[u2], u1); + InterlockedMin(g_tTex1du1a[u2], u1, out_u1); + InterlockedOr(g_tTex1du1a[u2], u1); + InterlockedOr(g_tTex1du1a[u2], u1, out_u1); + InterlockedXor(g_tTex1du1a[u2], u1); + InterlockedXor(g_tTex1du1a[u2], u1, out_u1); + + // 2D array int + InterlockedAdd(g_tTex1di1a[i2], i1b); + InterlockedAdd(g_tTex1di1a[i2], i1, out_i1); + InterlockedAnd(g_tTex1di1a[i2], i1b); + InterlockedAnd(g_tTex1di1a[i2], i1, out_i1); + InterlockedCompareExchange(g_tTex1di1a[i2], i1b, i1c, out_i1); + InterlockedExchange(g_tTex1di1a[i2], i1, out_i1); + InterlockedMax(g_tTex1di1a[i2], i1b); + InterlockedMax(g_tTex1di1a[i2], i1, out_i1); + InterlockedMin(g_tTex1di1a[i2], i1b); + InterlockedMin(g_tTex1di1a[i2], i1, out_i1); + InterlockedOr(g_tTex1di1a[i2], i1b); + InterlockedOr(g_tTex1di1a[i2], i1, out_i1); + InterlockedXor(g_tTex1di1a[i2], i1b); + InterlockedXor(g_tTex1di1a[i2], i1, out_i1); + + // 2D array uint + InterlockedAdd(g_tTex1du1a[u2], u1); + InterlockedAdd(g_tTex1du1a[u2], u1, out_u1); + InterlockedAnd(g_tTex1du1a[u2], u1); + InterlockedAnd(g_tTex1du1a[u2], u1, out_u1); + InterlockedCompareExchange(g_tTex1du1a[u2], u1b, u1c, out_u1); + InterlockedExchange(g_tTex1du1a[u2], u1, out_u1); + InterlockedMax(g_tTex1du1a[u2], u1); + InterlockedMax(g_tTex1du1a[u2], u1, out_u1); + InterlockedMin(g_tTex1du1a[u2], u1); + InterlockedMin(g_tTex1du1a[u2], u1, out_u1); + InterlockedOr(g_tTex1du1a[u2], u1); + InterlockedOr(g_tTex1du1a[u2], u1, out_u1); + InterlockedXor(g_tTex1du1a[u2], u1); + InterlockedXor(g_tTex1du1a[u2], u1, out_u1); + + // buffer int + InterlockedAdd(g_tBuffI[i1], i1b); + InterlockedAdd(g_tBuffI[i1], i1, out_i1); + InterlockedAnd(g_tBuffI[i1], i1b); + InterlockedAnd(g_tBuffI[i1], i1, out_i1); + InterlockedCompareExchange(g_tBuffI[i1], i1b, i1c, out_i1); + InterlockedExchange(g_tBuffI[i1], i1, out_i1); + InterlockedMax(g_tBuffI[i1], i1b); + InterlockedMax(g_tBuffI[i1], i1, out_i1); + InterlockedMin(g_tBuffI[i1], i1b); + InterlockedMin(g_tBuffI[i1], i1, out_i1); + InterlockedOr(g_tBuffI[i1], i1b); + InterlockedOr(g_tBuffI[i1], i1, out_i1); + InterlockedXor(g_tBuffI[i1], i1b); + InterlockedXor(g_tBuffI[i1], i1, out_i1); + + // buffer uint + InterlockedAdd(g_tBuffU[u1], u1); + InterlockedAdd(g_tBuffU[u1], u1, out_u1); + InterlockedAnd(g_tBuffU[u1], u1); + InterlockedAnd(g_tBuffU[u1], u1, out_u1); + InterlockedCompareExchange(g_tBuffU[u1], u1b, u1c, out_u1); + InterlockedExchange(g_tBuffU[u1], u1, out_u1); + InterlockedMax(g_tBuffU[u1], u1); + InterlockedMax(g_tBuffU[u1], u1, out_u1); + InterlockedMin(g_tBuffU[u1], u1); + InterlockedMin(g_tBuffU[u1], u1, out_u1); + InterlockedOr(g_tBuffU[u1], u1); + InterlockedOr(g_tBuffU[u1], u1, out_u1); + InterlockedXor(g_tBuffU[u1], u1); + InterlockedXor(g_tBuffU[u1], u1, out_u1); + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} diff --git a/Test/hlsl.rw.bracket.frag b/Test/hlsl.rw.bracket.frag new file mode 100644 index 0000000000000000000000000000000000000000..9390e8de10f2511a717f46bc185abde1045298e5 --- /dev/null +++ b/Test/hlsl.rw.bracket.frag @@ -0,0 +1,140 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D <float4> g_tTex1df4 : register(t0); +RWTexture1D <int4> g_tTex1di4; +RWTexture1D <uint4> g_tTex1du4; + +RWTexture2D <float4> g_tTex2df4; +RWTexture2D <int4> g_tTex2di4; +RWTexture2D <uint4> g_tTex2du4; + +RWTexture3D <float4> g_tTex3df4; +RWTexture3D <int4> g_tTex3di4; +RWTexture3D <uint4> g_tTex3du4; + +RWTexture1DArray <float4> g_tTex1df4a; +RWTexture1DArray <int4> g_tTex1di4a; +RWTexture1DArray <uint4> g_tTex1du4a; + +RWTexture2DArray <float4> g_tTex2df4a; +RWTexture2DArray <int4> g_tTex2di4a; +RWTexture2DArray <uint4> g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +uniform float4 uf4; +uniform int4 ui4; +uniform uint4 uu4; + +int4 Fn1(in int4 x) { return x; } +uint4 Fn1(in uint4 x) { return x; } +float4 Fn1(in float4 x) { return x; } + +void Fn2(out int4 x) { x = int4(0); } +void Fn2(out uint4 x) { x = uint4(0); } +void Fn2(out float4 x) { x = float4(0); } + +float4 SomeValue() { return c4; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4[c1]; + + float4 r00 = g_tTex1df4[c1]; + int4 r01 = g_tTex1di4[c1]; + uint4 r02 = g_tTex1du4[c1]; + + // 2D + float4 r10 = g_tTex2df4[c2]; + int4 r11 = g_tTex2di4[c2]; + uint4 r12 = g_tTex2du4[c2]; + + // 3D + float4 r20 = g_tTex3df4[c3]; + int4 r21 = g_tTex3di4[c3]; + uint4 r22 = g_tTex3du4[c3]; + + float4 lf4 = uf4; + + // Test as L-values + // 1D + g_tTex1df4[c1] = SomeValue(); // complex R-value + g_tTex1df4[c1] = lf4; + g_tTex1di4[c1] = int4(2,2,3,4); + g_tTex1du4[c1] = uint4(3,2,3,4); + + // Test some operator= things, which need to do both a load and a store. + float4 val1 = (g_tTex1df4[c1] *= 2.0); + g_tTex1df4[c1] -= 3.0; + g_tTex1df4[c1] += 4.0; + + g_tTex1di4[c1] /= 2; + g_tTex1di4[c1] %= 2; + g_tTex1di4[c1] &= 0xffff; + g_tTex1di4[c1] |= 0xf0f0; + g_tTex1di4[c1] <<= 2; + g_tTex1di4[c1] >>= 2; + + // 2D + g_tTex2df4[c2] = SomeValue(); // complex L-value + g_tTex2df4[c2] = lf4; + g_tTex2di4[c2] = int4(5,2,3,4); + g_tTex2du4[c2] = uint4(6,2,3,4); + + // 3D + g_tTex3df4[c3] = SomeValue(); // complex L-value + g_tTex3df4[c3] = lf4; + g_tTex3di4[c3] = int4(8,6,7,8); + g_tTex3du4[c3] = uint4(9,2,3,4); + + // Test function calling + Fn1(g_tTex1df4[c1]); // in + Fn1(g_tTex1di4[c1]); // in + Fn1(g_tTex1du4[c1]); // in + + Fn2(g_tTex1df4[c1]); // out + Fn2(g_tTex1di4[c1]); // out + Fn2(g_tTex1du4[c1]); // out + + // Test increment operators + // pre-ops + ++g_tTex1df4[c1]; + ++g_tTex1di4[c1]; + ++g_tTex1du4[c1]; + + --g_tTex1df4[c1]; + --g_tTex1di4[c1]; + --g_tTex1du4[c1]; + + // post-ops + g_tTex1df4[c1]++; + g_tTex1du4[c1]--; + g_tTex1di4[c1]++; + + g_tTex1df4[c1]--; + g_tTex1di4[c1]++; + g_tTex1du4[c1]--; + + // read and write + g_tTex1df4[1] = g_tTex2df4[int2(2,3)]; + + psout.Color = 1.0; + + return psout; +} diff --git a/Test/hlsl.rw.register.frag b/Test/hlsl.rw.register.frag new file mode 100644 index 0000000000000000000000000000000000000000..e82e419a089d2b45d4a0036277efe6857c998c8d --- /dev/null +++ b/Test/hlsl.rw.register.frag @@ -0,0 +1,18 @@ + +RWTexture1D <float> g_tTex1df1 : register(u2); +RWBuffer <uint> g_tBuf1du1 : register(U3); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float r00 = g_tTex1df1[0]; + uint r01 = g_tBuf1du1[0]; + + PS_OUTPUT psout; + psout.Color = 1.0; + return psout; +} diff --git a/Test/hlsl.rw.scalar.bracket.frag b/Test/hlsl.rw.scalar.bracket.frag new file mode 100644 index 0000000000000000000000000000000000000000..e185f05d17955ab112224bcfbe311c8be72b7993 --- /dev/null +++ b/Test/hlsl.rw.scalar.bracket.frag @@ -0,0 +1,140 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D <float> g_tTex1df1; +RWTexture1D <int> g_tTex1di1; +RWTexture1D <uint> g_tTex1du1; + +RWTexture2D <float> g_tTex2df1; +RWTexture2D <int> g_tTex2di1; +RWTexture2D <uint> g_tTex2du1; + +RWTexture3D <float> g_tTex3df1; +RWTexture3D <int> g_tTex3di1; +RWTexture3D <uint> g_tTex3du1; + +RWTexture1DArray <float> g_tTex1df1a; +RWTexture1DArray <int> g_tTex1di1a; +RWTexture1DArray <uint> g_tTex1du1a; + +RWTexture2DArray <float> g_tTex2df1a; +RWTexture2DArray <int> g_tTex2di1a; +RWTexture2DArray <uint> g_tTex2du1a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +uniform float uf1; +uniform int ui1; +uniform uint uu1; + +int Fn1(in int x) { return x; } +uint Fn1(in uint x) { return x; } +float Fn1(in float x) { return x; } + +void Fn2(out int x) { x = int(0); } +void Fn2(out uint x) { x = uint(0); } +void Fn2(out float x) { x = float(0); } + +float SomeValue() { return c1; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df1[c1]; + + float r00 = g_tTex1df1[c1]; + int r01 = g_tTex1di1[c1]; + uint r02 = g_tTex1du1[c1]; + + // 2D + float r10 = g_tTex2df1[c2]; + int r11 = g_tTex2di1[c2]; + uint r12 = g_tTex2du1[c2]; + + // 3D + float r20 = g_tTex3df1[c3]; + int r21 = g_tTex3di1[c3]; + uint r22 = g_tTex3du1[c3]; + + float lf1 = uf1; + + // Test as L-values + // 1D + g_tTex1df1[c1] = SomeValue(); // complex R-value + g_tTex1df1[c1] = lf1; + g_tTex1di1[c1] = int(2); + g_tTex1du1[c1] = uint(3); + + // Test some operator= things, which need to do both a load and a store. + float val1 = (g_tTex1df1[c1] *= 2.0); + g_tTex1df1[c1] -= 3.0; + g_tTex1df1[c1] += 4.0; + + g_tTex1di1[c1] /= 2; + g_tTex1di1[c1] %= 2; + g_tTex1di1[c1] &= 0xffff; + g_tTex1di1[c1] |= 0xf0f0; + g_tTex1di1[c1] <<= 2; + g_tTex1di1[c1] >>= 2; + + // 2D + g_tTex2df1[c2] = SomeValue(); // complex L-value + g_tTex2df1[c2] = lf1; + g_tTex2di1[c2] = int(5); + g_tTex2du1[c2] = uint(6); + + // 3D + g_tTex3df1[c3] = SomeValue(); // complex L-value + g_tTex3df1[c3] = lf1; + g_tTex3di1[c3] = int(8); + g_tTex3du1[c3] = uint(9); + + // Test function calling + Fn1(g_tTex1df1[c1]); // in + Fn1(g_tTex1di1[c1]); // in + Fn1(g_tTex1du1[c1]); // in + + Fn2(g_tTex1df1[c1]); // out + Fn2(g_tTex1di1[c1]); // out + Fn2(g_tTex1du1[c1]); // out + + // Test increment operators + // pre-ops + ++g_tTex1df1[c1]; + ++g_tTex1di1[c1]; + ++g_tTex1du1[c1]; + + --g_tTex1df1[c1]; + --g_tTex1di1[c1]; + --g_tTex1du1[c1]; + + // post-ops + g_tTex1df1[c1]++; + g_tTex1du1[c1]--; + g_tTex1di1[c1]++; + + g_tTex1df1[c1]--; + g_tTex1di1[c1]++; + g_tTex1du1[c1]--; + + // read and write + g_tTex1df1[1] = g_tTex2df1[int2(2, 3)]; + + psout.Color = 1.0; + + return psout; +} diff --git a/Test/hlsl.rw.vec2.bracket.frag b/Test/hlsl.rw.vec2.bracket.frag new file mode 100644 index 0000000000000000000000000000000000000000..7b4a10a8a6a02969b9dba06f94cf41819a7ad6a8 --- /dev/null +++ b/Test/hlsl.rw.vec2.bracket.frag @@ -0,0 +1,140 @@ +SamplerState g_sSamp : register(s0); + +RWTexture1D <float2> g_tTex1df2; +RWTexture1D <int2> g_tTex1di2; +RWTexture1D <uint2> g_tTex1du2; + +RWTexture2D <float2> g_tTex2df2; +RWTexture2D <int2> g_tTex2di2; +RWTexture2D <uint2> g_tTex2du2; + +RWTexture3D <float2> g_tTex3df2; +RWTexture3D <int2> g_tTex3di2; +RWTexture3D <uint2> g_tTex3du2; + +RWTexture1DArray <float2> g_tTex1df2a; +RWTexture1DArray <int2> g_tTex1di2a; +RWTexture1DArray <uint2> g_tTex1du2a; + +RWTexture2DArray <float2> g_tTex2df2a; +RWTexture2DArray <int2> g_tTex2di2a; +RWTexture2DArray <uint2> g_tTex2du2a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +uniform float2 uf2; +uniform int2 ui2; +uniform uint2 uu2; + +int2 Fn1(in int2 x) { return x; } +uint2 Fn1(in uint2 x) { return x; } +float2 Fn1(in float2 x) { return x; } + +void Fn2(out int2 x) { x = int2(0,0); } +void Fn2(out uint2 x) { x = uint2(0,0); } +void Fn2(out float2 x) { x = float2(0,0); } + +float2 SomeValue() { return c2; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df2[c1]; + + float2 r00 = g_tTex1df2[c1]; + int2 r01 = g_tTex1di2[c1]; + uint2 r02 = g_tTex1du2[c1]; + + // 2D + float2 r10 = g_tTex2df2[c2]; + int2 r11 = g_tTex2di2[c2]; + uint2 r12 = g_tTex2du2[c2]; + + // 3D + float2 r20 = g_tTex3df2[c3]; + int2 r21 = g_tTex3di2[c3]; + uint2 r22 = g_tTex3du2[c3]; + + float2 lf2 = uf2; + + // Test as L-values + // 1D + g_tTex1df2[c1] = SomeValue(); // complex R-value + g_tTex1df2[c1] = lf2; + g_tTex1di2[c1] = int2(2,2); + g_tTex1du2[c1] = uint2(3,2); + + // Test some operator= things, which need to do both a load and a store. + float2 val1 = (g_tTex1df2[c1] *= 2.0); + g_tTex1df2[c1] -= 3.0; + g_tTex1df2[c1] += 4.0; + + g_tTex1di2[c1] /= 2; + g_tTex1di2[c1] %= 2; + g_tTex1di2[c1] &= 0xffff; + g_tTex1di2[c1] |= 0xf0f0; + g_tTex1di2[c1] <<= 2; + g_tTex1di2[c1] >>= 2; + + // 2D + g_tTex2df2[c2] = SomeValue(); // complex L-value + g_tTex2df2[c2] = lf2; + g_tTex2di2[c2] = int2(5,2); + g_tTex2du2[c2] = uint2(6,2); + + // 3D + g_tTex3df2[c3] = SomeValue(); // complex L-value + g_tTex3df2[c3] = lf2; + g_tTex3di2[c3] = int2(8,6); + g_tTex3du2[c3] = uint2(9,2); + + // Test function calling + Fn1(g_tTex1df2[c1]); // in + Fn1(g_tTex1di2[c1]); // in + Fn1(g_tTex1du2[c1]); // in + + Fn2(g_tTex1df2[c1]); // out + Fn2(g_tTex1di2[c1]); // out + Fn2(g_tTex1du2[c1]); // out + + // Test increment operators + // pre-ops + ++g_tTex1df2[c1]; + ++g_tTex1di2[c1]; + ++g_tTex1du2[c1]; + + --g_tTex1df2[c1]; + --g_tTex1di2[c1]; + --g_tTex1du2[c1]; + + // post-ops + g_tTex1df2[c1]++; + g_tTex1du2[c1]--; + g_tTex1di2[c1]++; + + g_tTex1df2[c1]--; + g_tTex1di2[c1]++; + g_tTex1du2[c1]--; + + // read and write + g_tTex1df2[1] = g_tTex2df2[int2(2,3)]; + + psout.Color = 1.0; + + return psout; +} diff --git a/Test/hlsl.sample.sub-vec4.dx10.frag b/Test/hlsl.sample.sub-vec4.dx10.frag new file mode 100644 index 0000000000000000000000000000000000000000..991d976a1d60cd40ccd1823ceed5601321c6348c --- /dev/null +++ b/Test/hlsl.sample.sub-vec4.dx10.frag @@ -0,0 +1,24 @@ +SamplerState g_sSamp : register(s0); + +Texture1D <float> g_tTex1df1; +Texture1D <float2> g_tTex1df2; +Texture1D <float3> g_tTex1df3; +Texture1D <float4> g_tTex1df4; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + float txval10 = g_tTex1df1 . Sample(g_sSamp, 0.1); + float2 txval11 = g_tTex1df2 . Sample(g_sSamp, 0.2); + float3 txval12 = g_tTex1df3 . Sample(g_sSamp, 0.2); + float4 txval13 = g_tTex1df4 . Sample(g_sSamp, 0.2); + + psout.Color = 1.0; + return psout; +} diff --git a/Test/hlsl.shapeConv.frag b/Test/hlsl.shapeConv.frag index 0485b4a577bbca18838bfeb8ffdcbb0860501704..adb170eab35d4740791693048ab28a8be489f139 100644 --- a/Test/hlsl.shapeConv.frag +++ b/Test/hlsl.shapeConv.frag @@ -18,8 +18,8 @@ float4 PixelShaderFunction(float4 input, float f) : COLOR0 6.0 < foo; 7.0 <= foo; - v.x == v; - f != v; + all(v.x == v); + any(f != v); float1 f1; diff --git a/Test/hlsl.shapeConvRet.frag b/Test/hlsl.shapeConvRet.frag new file mode 100755 index 0000000000000000000000000000000000000000..7d7755821ab8bdd9271907276eaff52cdc395cf4 --- /dev/null +++ b/Test/hlsl.shapeConvRet.frag @@ -0,0 +1,9 @@ +int3 foo() +{ + return 13; +} + +float4 main(float f) +{ + return f; +} diff --git a/Test/hlsl.struct.frag b/Test/hlsl.struct.frag index 58cd524be5bb66634e5a124ff6187b91399fb937..e602c9ed5163390336bde3bd227763e073db60de 100644 --- a/Test/hlsl.struct.frag +++ b/Test/hlsl.struct.frag @@ -12,7 +12,7 @@ struct myS { myS s1; -struct { +static struct { float4 i; } s2; @@ -27,8 +27,8 @@ struct IN_S { float4 ff4 : VPOS : packoffset(c0.y) : register(ps_5_0, s0) <int bambam=30;> ; }; -float3 ff5 : packoffset(c1.y) : register(ps_5_0, s[5]); -float3 ff6 : packoffset(c2.y) : register(s3[5]); +float ff5 : packoffset(c101.y) : register(ps_5_0, s[5]); +float ff6 : packoffset(c102.y) : register(s3[5]); float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 { @@ -40,4 +40,4 @@ float4 PixelShaderFunction(float4 input, IN_S s) : COLOR0 s2.i = s.ff4; return input; -} \ No newline at end of file +} diff --git a/Test/hlsl.structarray.flatten.frag b/Test/hlsl.structarray.flatten.frag new file mode 100644 index 0000000000000000000000000000000000000000..eedb931da67582dbd5344dcb5ae24aa5c3a154cf --- /dev/null +++ b/Test/hlsl.structarray.flatten.frag @@ -0,0 +1,28 @@ +SamplerState g_samp; +Texture1D g_tex; + +struct tex_t { + SamplerState samp; + Texture1D tex; + int nonopaque_thing; +}; + +struct tex_with_arrays_t { + SamplerState samp[2]; + Texture1D tex[2]; + int nonopaque_thing; +}; + +uniform tex_t g_texdata; +uniform tex_t g_texdata_array[3]; +uniform tex_with_arrays_t g_texdata_array2[3]; + +struct PS_OUTPUT { float4 color : SV_Target0; }; + +void main(out PS_OUTPUT ps_output) +{ + ps_output.color = + g_texdata.tex.Sample(g_texdata.samp, 0.5) + + g_texdata_array[1].tex.Sample(g_texdata_array[1].samp, 0.4) + + g_texdata_array2[1].tex[0].Sample(g_texdata_array2[1].samp[0], 0.3); +} diff --git a/Test/hlsl.structarray.flatten.geom b/Test/hlsl.structarray.flatten.geom new file mode 100644 index 0000000000000000000000000000000000000000..1b05dc11d280594c55a9f2b7a1d74aa847801fd2 --- /dev/null +++ b/Test/hlsl.structarray.flatten.geom @@ -0,0 +1,17 @@ + +struct VertexData { + float4 position : POSITION; + float4 color : COLOR0; + float2 uv : TEXCOORD0; +}; + +[maxvertexcount(4)] +void main(line VertexData vin[2], inout TriangleStream<VertexData> outStream) +{ + VertexData vout; + + vout.color = vin[0].color; + vout.uv = vin[0].uv; + vout.position = vin[0].position; + outStream.Append(vout); +} diff --git a/Test/hlsl.structin.vert b/Test/hlsl.structin.vert index 7eba552d54350635101c2ae80a492eb7cd8a197a..43d0cfd0bbdf5d62e17680a0b4838667a14b11e8 100644 --- a/Test/hlsl.structin.vert +++ b/Test/hlsl.structin.vert @@ -11,4 +11,4 @@ VI main(float4 d, VI vi, float4 e) : SV_POSITION local.b = vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e; return local; -} \ No newline at end of file +} diff --git a/Test/hlsl.swizzle.frag b/Test/hlsl.swizzle.frag index 231430a91958e29106245e967e2196e8c024a877..9e87c6d77356a45331ed2325d5c9050ea1aabf29 100644 --- a/Test/hlsl.swizzle.frag +++ b/Test/hlsl.swizzle.frag @@ -1,4 +1,4 @@ -float4 AmbientColor = float4(1, 0.5, 0, 1); +static float4 AmbientColor = float4(1, 0.5, 0, 1); float4 ShaderFunction(float4 input) : COLOR0 { diff --git a/Test/hlsl.tx.bracket.frag b/Test/hlsl.tx.bracket.frag new file mode 100644 index 0000000000000000000000000000000000000000..0d3d81f82c1b1322a2268e1a22c6e75b14aee99d --- /dev/null +++ b/Test/hlsl.tx.bracket.frag @@ -0,0 +1,73 @@ +SamplerState g_sSamp : register(s0); + +Texture1D <float4> g_tTex1df4 : register(t0); +Texture1D <int4> g_tTex1di4; +Texture1D <uint4> g_tTex1du4; + +Texture2D <float4> g_tTex2df4; +Texture2D <int4> g_tTex2di4; +Texture2D <uint4> g_tTex2du4; + +Texture3D <float4> g_tTex3df4; +Texture3D <int4> g_tTex3di4; +Texture3D <uint4> g_tTex3du4; + +Texture1DArray <float4> g_tTex1df4a; +Texture1DArray <int4> g_tTex1di4a; +Texture1DArray <uint4> g_tTex1du4a; + +Texture2DArray <float4> g_tTex2df4a; +Texture2DArray <int4> g_tTex2di4a; +Texture2DArray <uint4> g_tTex2du4a; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform int c1; +uniform int2 c2; +uniform int3 c3; +uniform int4 c4; + +uniform int o1; +uniform int2 o2; +uniform int3 o3; +uniform int4 o4; + +int4 Fn1(in int4 x) { return x; } +uint4 Fn1(in uint4 x) { return x; } +float4 Fn1(in float4 x) { return x; } + +float4 SomeValue() { return c4; } + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + + // 1D + g_tTex1df4[c1]; + + float4 r00 = g_tTex1df4[c1]; + int4 r01 = g_tTex1di4[c1]; + uint4 r02 = g_tTex1du4[c1]; + + // 2D + float4 r10 = g_tTex2df4[c2]; + int4 r11 = g_tTex2di4[c2]; + uint4 r12 = g_tTex2du4[c2]; + + // 3D + float4 r20 = g_tTex3df4[c3]; + int4 r21 = g_tTex3di4[c3]; + uint4 r22 = g_tTex3du4[c3]; + + // Test function calling + Fn1(g_tTex1df4[c1]); // in + Fn1(g_tTex1di4[c1]); // in + Fn1(g_tTex1du4[c1]); // in + + psout.Color = 1.0; + + return psout; +} diff --git a/Test/hlsl.whileLoop.frag b/Test/hlsl.whileLoop.frag index f282375ddd55848d245c81f79fe62d2e374acba2..e4084ae7eb361010cb526233daeda7b1b4f75ed5 100644 --- a/Test/hlsl.whileLoop.frag +++ b/Test/hlsl.whileLoop.frag @@ -1,6 +1,6 @@ float4 PixelShaderFunction(float4 input) : COLOR0 { - while (input != input) { return input; } + while (any(input != input)) { return input; } while (false) ; [unroll] while (false) { } while ((false)) { } diff --git a/Test/missingBodies.vert b/Test/missingBodies.vert new file mode 100644 index 0000000000000000000000000000000000000000..04b7181549847032a5155b0aca9c7a291ba908ed --- /dev/null +++ b/Test/missingBodies.vert @@ -0,0 +1,24 @@ +#version 450 + +void bar(); +void foo() { bar(); } + +void B(); +void C(int); +void C(int, int) { } +void C(bool); +void A() { B(); C(1); C(true); C(1, 2); } + +void main() +{ + foo(); + C(true); +} + +int ret1(); + +int f1 = ret1(); + +int ret2() { return 3; } + +int f2 = ret2(); diff --git a/Test/remap.hlsl.templatetypes.everything.frag b/Test/remap.hlsl.templatetypes.everything.frag index bacd6f56d9b5327e050f0d07be0e944b94253d42..f48c98a74b1302ce3dd9972e8a56f3a89daf6157 100644 --- a/Test/remap.hlsl.templatetypes.everything.frag +++ b/Test/remap.hlsl.templatetypes.everything.frag @@ -1,5 +1,5 @@ -float4 main(float4 input) : COLOR0 +float main(float4 input) : COLOR0 { vector r00 = float4(1,2,3,4); // vector means float4 float4 r01 = vector(2,3,4,5); // vector means float4 diff --git a/Test/remap.hlsl.templatetypes.none.frag b/Test/remap.hlsl.templatetypes.none.frag index bacd6f56d9b5327e050f0d07be0e944b94253d42..f48c98a74b1302ce3dd9972e8a56f3a89daf6157 100644 --- a/Test/remap.hlsl.templatetypes.none.frag +++ b/Test/remap.hlsl.templatetypes.none.frag @@ -1,5 +1,5 @@ -float4 main(float4 input) : COLOR0 +float main(float4 input) : COLOR0 { vector r00 = float4(1,2,3,4); // vector means float4 float4 r01 = vector(2,3,4,5); // vector means float4 diff --git a/Test/runtests b/Test/runtests index 18513380841180cef5419e07e1d9643a6540ffae..a17848b74caf60d12e242e490a85c6a65ece51ef 100755 --- a/Test/runtests +++ b/Test/runtests @@ -33,6 +33,9 @@ $EXE -l -q -C reflection.vert > $TARGETDIR/reflection.vert.out diff -b $BASEDIR/reflection.vert.out $TARGETDIR/reflection.vert.out || HASERROR=1 $EXE -D -e flizv -l -q -C -V hlsl.reflection.vert > $TARGETDIR/hlsl.reflection.vert.out diff -b $BASEDIR/hlsl.reflection.vert.out $TARGETDIR/hlsl.reflection.vert.out || HASERROR=1 +$EXE -D -e main -l -q -C -V hlsl.reflection.binding.frag > $TARGETDIR/hlsl.reflection.binding.frag.out +diff -b $BASEDIR/hlsl.reflection.binding.frag.out $TARGETDIR/hlsl.reflection.binding.frag.out || HASERROR=1 + # # multi-threaded test @@ -42,6 +45,20 @@ $EXE -i -C *.vert *.geom *.frag *.tes* *.comp > singleThread.out $EXE -i -C *.vert *.geom *.frag *.tes* *.comp -t > multiThread.out diff singleThread.out multiThread.out || HASERROR=1 +# +# entry point renaming tests +# +echo Running entry-point renaming tests +$EXE -i -H -V -D -e main_in_spv --ku --source-entrypoint main hlsl.entry.rename.frag > $TARGETDIR/hlsl.entry.rename.frag.out +diff -b $BASEDIR/hlsl.entry.rename.frag.out $TARGETDIR/hlsl.entry.rename.frag.out || HASERROR=1 + +# +# Testing ill-defined uncalled function +# +echo Running ill-defined uncalled function +$EXE -D -e main -H hlsl.deadFunctionMissingBody.vert > $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out +diff -b $BASEDIR/hlsl.deadFunctionMissingBody.vert.out $TARGETDIR/hlsl.deadFunctionMissingBody.vert.out || HASERROR=1 + if [ $HASERROR -eq 0 ] then echo Tests Succeeded. diff --git a/Test/spv.400.frag b/Test/spv.400.frag index 05b4370bcc60d4a4d8473319a5ab18d2e0a980aa..d64c4700ebba2607c9abfdf3990e4d8fc313a117 100644 --- a/Test/spv.400.frag +++ b/Test/spv.400.frag @@ -259,5 +259,7 @@ void main() uo = u % i; foo23(); doubles(); + + int id = gl_PrimitiveID; } diff --git a/Test/spv.buffer.autoassign.frag b/Test/spv.buffer.autoassign.frag new file mode 100644 index 0000000000000000000000000000000000000000..464426095d8a8a24db794a8f50fd5a617879a695 --- /dev/null +++ b/Test/spv.buffer.autoassign.frag @@ -0,0 +1,28 @@ + +cbuffer MyUB1 : register(b5) // explicitly assigned & offsetted +{ + float g_a; + int g_b; +}; + +cbuffer MyUB2 // implicitly assigned +{ + float g_c; +}; + +cbuffer MyUB3 // implicitly assigned +{ + float g_d; +}; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + PS_OUTPUT psout; + psout.Color = g_a + g_b + g_c + g_d; + return psout; +} diff --git a/Test/spv.float16.frag b/Test/spv.float16.frag new file mode 100644 index 0000000000000000000000000000000000000000..7c94a5151b0cc946f4d3ba18d9874627d0acc51e --- /dev/null +++ b/Test/spv.float16.frag @@ -0,0 +1,306 @@ +#version 450 core + +#extension GL_AMD_gpu_shader_half_float: enable +#extension GL_ARB_gpu_shader_int64: enable + +void main() +{ +} + +// Half float literals +void literal() +{ + const float16_t f16c = 0.000001hf; + const f16vec2 f16cv = f16vec2(-0.25HF, 0.03HF); + + f16vec2 f16v; + f16v.x = f16c; + f16v += f16cv; +} + +// Block memory layout +struct S +{ + float16_t x; // rule 1: align = 2, takes offsets 0-1 + f16vec2 y; // rule 2: align = 4, takes offsets 4-7 + f16vec3 z; // rule 3: align = 8, takes offsets 8-13 +}; + +layout(column_major, std140) uniform B1 +{ + float16_t a; // rule 1: align = 2, takes offsets 0-1 + f16vec2 b; // rule 2: align = 4, takes offsets 4-7 + f16vec3 c; // rule 3: align = 8, takes offsets 8-15 + float16_t d[2]; // rule 4: align = 16, array stride = 16, + // takes offsets 16-47 + f16mat2x3 e; // rule 5: align = 16, matrix stride = 16, + // takes offsets 48-79 + f16mat2x3 f[2]; // rule 6: align = 16, matrix stride = 16, + // array stride = 32, f[0] takes + // offsets 80-111, f[1] takes offsets + // 112-143 + S g; // rule 9: align = 16, g.x takes offsets + // 144-145, g.y takes offsets 148-151, + // g.z takes offsets 152-159 + S h[2]; // rule 10: align = 16, array stride = 16, h[0] + // takes offsets 160-175, h[1] takes + // offsets 176-191 +}; + +layout(row_major, std430) buffer B2 +{ + float16_t o; // rule 1: align = 2, takes offsets 0-1 + f16vec2 p; // rule 2: align = 4, takes offsets 4-7 + f16vec3 q; // rule 3: align = 8, takes offsets 8-13 + float16_t r[2]; // rule 4: align = 2, array stride = 2, takes + // offsets 14-17 + f16mat2x3 s; // rule 7: align = 4, matrix stride = 4, takes + // offsets 20-31 + f16mat2x3 t[2]; // rule 8: align = 4, matrix stride = 4, array + // stride = 12, t[0] takes offsets + // 32-43, t[1] takes offsets 44-55 + S u; // rule 9: align = 8, u.x takes offsets + // 56-57, u.y takes offsets 60-63, u.z + // takes offsets 64-69 + S v[2]; // rule 10: align = 8, array stride = 16, v[0] + // takes offsets 72-87, v[1] takes + // offsets 88-103 +}; + +// Specialization constant +layout(constant_id = 100) const float16_t sf16 = 0.125hf; +layout(constant_id = 101) const float sf = 0.25; +layout(constant_id = 102) const double sd = 0.5lf; + +const float f16_to_f = float(sf16); +const double f16_to_d = float(sf16); + +const float16_t f_to_f16 = float16_t(sf); +const float16_t d_to_f16 = float16_t(sd); + +void operators() +{ + float16_t f16; + f16vec2 f16v; + f16mat2x2 f16m; + bool b; + + // Arithmetic + f16v += f16v; + f16v -= f16v; + f16v *= f16v; + f16v /= f16v; + f16v++; + f16v--; + ++f16m; + --f16m; + f16v = -f16v; + f16m = -f16m; + + f16 = f16v.x + f16v.y; + f16 = f16v.x - f16v.y; + f16 = f16v.x * f16v.y; + f16 = f16v.x / f16v.y; + + // Relational + b = (f16v.x != f16); + b = (f16v.y == f16); + b = (f16v.x > f16); + b = (f16v.y < f16); + b = (f16v.x >= f16); + b = (f16v.y <= f16); + + // Vector/matrix operations + f16v = f16v * f16; + f16m = f16m * f16; + f16v = f16m * f16v; + f16v = f16v * f16m; + f16m = f16m * f16m; +} + +void typeCast() +{ + bvec3 bv; + vec3 fv; + dvec3 dv; + ivec3 iv; + uvec3 uv; + i64vec3 i64v; + u64vec3 u64v; + + f16vec3 f16v; + + f16v = f16vec3(bv); // bool -> float16 + bv = bvec3(f16v); // float16 -> bool + + f16v = f16vec3(fv); // float -> float16 + fv = vec3(f16v); // float16 -> float + + f16v = f16vec3(dv); // double -> float16 + dv = dvec3(dv); // float16 -> double + + f16v = f16vec3(iv); // int -> float16 + iv = ivec3(f16v); // float16 -> int + + f16v = f16vec3(uv); // uint -> float16 + uv = uvec3(f16v); // float16 -> uint + + f16v = f16vec3(i64v); // int64 -> float16 + i64v = i64vec3(f16v); // float16 -> int64 + + f16v = f16vec3(u64v); // uint64 -> float16 + u64v = u64vec3(f16v); // float16 -> uint64 +} + +void builtinAngleTrigFuncs() +{ + f16vec4 f16v1, f16v2; + + f16v2 = radians(f16v1); + f16v2 = degrees(f16v1); + f16v2 = sin(f16v1); + f16v2 = cos(f16v1); + f16v2 = tan(f16v1); + f16v2 = asin(f16v1); + f16v2 = acos(f16v1); + f16v2 = atan(f16v1, f16v2); + f16v2 = atan(f16v1); + f16v2 = sinh(f16v1); + f16v2 = cosh(f16v1); + f16v2 = tanh(f16v1); + f16v2 = asinh(f16v1); + f16v2 = acosh(f16v1); + f16v2 = atanh(f16v1); +} + +void builtinExpFuncs() +{ + f16vec2 f16v1, f16v2; + + f16v2 = pow(f16v1, f16v2); + f16v2 = exp(f16v1); + f16v2 = log(f16v1); + f16v2 = exp2(f16v1); + f16v2 = log2(f16v1); + f16v2 = sqrt(f16v1); + f16v2 = inversesqrt(f16v1); +} + +void builtinCommonFuncs() +{ + f16vec3 f16v1, f16v2, f16v3; + float16_t f16; + bool b; + bvec3 bv; + ivec3 iv; + + f16v2 = abs(f16v1); + f16v2 = sign(f16v1); + f16v2 = floor(f16v1); + f16v2 = trunc(f16v1); + f16v2 = round(f16v1); + f16v2 = roundEven(f16v1); + f16v2 = ceil(f16v1); + f16v2 = fract(f16v1); + f16v2 = mod(f16v1, f16v2); + f16v2 = mod(f16v1, f16); + f16v3 = modf(f16v1, f16v2); + f16v3 = min(f16v1, f16v2); + f16v3 = min(f16v1, f16); + f16v3 = max(f16v1, f16v2); + f16v3 = max(f16v1, f16); + f16v3 = clamp(f16v1, f16, f16v2.x); + f16v3 = clamp(f16v1, f16v2, f16vec3(f16)); + f16v3 = mix(f16v1, f16v2, f16); + f16v3 = mix(f16v1, f16v2, f16v3); + f16v3 = mix(f16v1, f16v2, bv); + f16v3 = step(f16v1, f16v2); + f16v3 = step(f16, f16v3); + f16v3 = smoothstep(f16v1, f16v2, f16v3); + f16v3 = smoothstep(f16, f16v1.x, f16v2); + b = isnan(f16); + bv = isinf(f16v1); + f16v3 = fma(f16v1, f16v2, f16v3); + f16v2 = frexp(f16v1, iv); + f16v2 = ldexp(f16v1, iv); +} + +void builtinPackUnpackFuncs() +{ + uint u; + f16vec2 f16v; + + u = packFloat2x16(f16v); + f16v = unpackFloat2x16(u); +} + +void builtinGeometryFuncs() +{ + float16_t f16; + f16vec3 f16v1, f16v2, f16v3; + + f16 = length(f16v1); + f16 = distance(f16v1, f16v2); + f16 = dot(f16v1, f16v2); + f16v3 = cross(f16v1, f16v2); + f16v2 = normalize(f16v1); + f16v3 = faceforward(f16v1, f16v2, f16v3); + f16v3 = reflect(f16v1, f16v2); + f16v3 = refract(f16v1, f16v2, f16); +} + +void builtinMatrixFuncs() +{ + f16mat2x3 f16m1, f16m2, f16m3; + f16mat3x2 f16m4; + f16mat3 f16m5; + f16mat4 f16m6, f16m7; + + f16vec3 f16v1; + f16vec2 f16v2; + + float16_t f16; + + f16m3 = matrixCompMult(f16m1, f16m2); + f16m1 = outerProduct(f16v1, f16v2); + f16m4 = transpose(f16m1); + f16 = determinant(f16m5); + f16m6 = inverse(f16m7); +} + +void builtinVecRelFuncs() +{ + f16vec3 f16v1, f16v2; + bvec3 bv; + + bv = lessThan(f16v1, f16v2); + bv = lessThanEqual(f16v1, f16v2); + bv = greaterThan(f16v1, f16v2); + bv = greaterThanEqual(f16v1, f16v2); + bv = equal(f16v1, f16v2); + bv = notEqual(f16v1, f16v2); +} + +in f16vec3 if16v; + +void builtinFragProcFuncs() +{ + f16vec3 f16v; + + // Derivative + f16v.x = dFdx(if16v.x); + f16v.y = dFdy(if16v.y); + f16v.xy = dFdxFine(if16v.xy); + f16v.xy = dFdyFine(if16v.xy); + f16v = dFdxCoarse(if16v); + f16v = dFdxCoarse(if16v); + + f16v.x = fwidth(if16v.x); + f16v.xy = fwidthFine(if16v.xy); + f16v = fwidthCoarse(if16v); + + // Interpolation + f16v.x = interpolateAtCentroid(if16v.x); + f16v.xy = interpolateAtSample(if16v.xy, 1); + f16v = interpolateAtOffset(if16v, f16vec2(0.5hf)); +} diff --git a/Test/spv.glsl.register.autoassign.frag b/Test/spv.glsl.register.autoassign.frag new file mode 100644 index 0000000000000000000000000000000000000000..f754d8aad92c7b81c906472e1ce9922e963d9f19 --- /dev/null +++ b/Test/spv.glsl.register.autoassign.frag @@ -0,0 +1,68 @@ +#version 450 + +uniform layout(binding=0) sampler g_sSamp1; +uniform sampler g_sSamp2; +uniform layout(binding=2) sampler g_sSamp3[2]; +uniform sampler g_sSamp4[3]; +uniform sampler g_sSamp5; + +uniform sampler g_sSamp_unused1; +uniform sampler g_sSamp_unused2; + +uniform layout(binding=1) texture1D g_tTex1; +uniform texture1D g_tTex2; +uniform layout(binding=3) texture1D g_tTex3[2]; +uniform texture1D g_tTex4[3]; +uniform texture1D g_tTex5; + +uniform layout(binding=0) texture1D g_tTex_unused1; +uniform layout(binding=2) texture1D g_tTex_unused2; +uniform texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + vec3 c; +}; + +uniform layout(binding=4) myblock { + MyStruct_t mystruct; + vec4 myvec4_a; + vec4 myvec4_b; + ivec4 myint4_a; +}; + +vec4 Func1() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex2, g_sSamp2), 0.2) + + texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) + + texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) + + texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) + + texture(sampler1D(g_tTex5, g_sSamp5), 0.5) + + mystruct.c[1]; +} + +vec4 Func2() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3); +} + +// Not called from entry point: +vec4 Func2_unused() +{ + return + texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) + + texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2); +} + +out vec4 FragColor; + +void main() +{ + FragColor = Func1() + Func2(); +} diff --git a/Test/spv.glsl.register.noautoassign.frag b/Test/spv.glsl.register.noautoassign.frag new file mode 100644 index 0000000000000000000000000000000000000000..f754d8aad92c7b81c906472e1ce9922e963d9f19 --- /dev/null +++ b/Test/spv.glsl.register.noautoassign.frag @@ -0,0 +1,68 @@ +#version 450 + +uniform layout(binding=0) sampler g_sSamp1; +uniform sampler g_sSamp2; +uniform layout(binding=2) sampler g_sSamp3[2]; +uniform sampler g_sSamp4[3]; +uniform sampler g_sSamp5; + +uniform sampler g_sSamp_unused1; +uniform sampler g_sSamp_unused2; + +uniform layout(binding=1) texture1D g_tTex1; +uniform texture1D g_tTex2; +uniform layout(binding=3) texture1D g_tTex3[2]; +uniform texture1D g_tTex4[3]; +uniform texture1D g_tTex5; + +uniform layout(binding=0) texture1D g_tTex_unused1; +uniform layout(binding=2) texture1D g_tTex_unused2; +uniform texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + vec3 c; +}; + +uniform layout(binding=4) myblock { + MyStruct_t mystruct; + vec4 myvec4_a; + vec4 myvec4_b; + ivec4 myint4_a; +}; + +vec4 Func1() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex2, g_sSamp2), 0.2) + + texture(sampler1D(g_tTex3[0], g_sSamp3[0]), 0.3) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3) + + texture(sampler1D(g_tTex4[1], g_sSamp4[1]), 0.4) + + texture(sampler1D(g_tTex4[2], g_sSamp4[2]), 0.4) + + texture(sampler1D(g_tTex5, g_sSamp5), 0.5) + + mystruct.c[1]; +} + +vec4 Func2() +{ + return + texture(sampler1D(g_tTex1, g_sSamp1), 0.1) + + texture(sampler1D(g_tTex3[1], g_sSamp3[1]), 0.3); +} + +// Not called from entry point: +vec4 Func2_unused() +{ + return + texture(sampler1D(g_tTex_unused1, g_sSamp_unused1), 1.1) + + texture(sampler1D(g_tTex_unused2, g_sSamp_unused2), 1.2); +} + +out vec4 FragColor; + +void main() +{ + FragColor = Func1() + Func2(); +} diff --git a/Test/spv.noWorkgroup.comp b/Test/spv.noWorkgroup.comp new file mode 100644 index 0000000000000000000000000000000000000000..0c77f278fcd0c1f7d6058213c5c3538fbe57ba54 --- /dev/null +++ b/Test/spv.noWorkgroup.comp @@ -0,0 +1,7 @@ +#version 450 + +layout(local_size_x_id = 18, local_size_y_id=10,local_size_z_id = 19) in; + +void main() +{ +} diff --git a/Test/spv.offsets.frag b/Test/spv.offsets.frag new file mode 100755 index 0000000000000000000000000000000000000000..0a1c008c926e02207a3b5cc58f65c11d46211c96 --- /dev/null +++ b/Test/spv.offsets.frag @@ -0,0 +1,17 @@ +#version 450 + +layout(set = 0, binding = 0, std140) uniform n1 { + layout(offset = 8) int a; + layout(offset = 4) int b; + layout(offset = 0) int c; + layout(offset = 12) int d; +} i1; + +layout(set = 0, binding = 1, std430) buffer n2 { + layout(offset = 32) vec3 e; + vec3 f; + layout(offset = 16) vec3 g; + layout(offset = 0) vec3 h; +} i2; + +void main() {} \ No newline at end of file diff --git a/Test/spv.register.autoassign-2.frag b/Test/spv.register.autoassign-2.frag new file mode 100644 index 0000000000000000000000000000000000000000..05c49250ee89f1ca1ccc60480a357c3adc3e68a8 --- /dev/null +++ b/Test/spv.register.autoassign-2.frag @@ -0,0 +1,15 @@ + +SamplerState g_tSamp : register(s0); + +Texture2D g_tScene[2] : register(t0); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3,0.4)) + + g_tScene[1].Sample(g_tSamp, float2(0.3,0.4)); +} diff --git a/Test/spv.register.autoassign.frag b/Test/spv.register.autoassign.frag new file mode 100644 index 0000000000000000000000000000000000000000..0d6f0b2d5becfa10bb34db73229696fd1f6a6dcb --- /dev/null +++ b/Test/spv.register.autoassign.frag @@ -0,0 +1,71 @@ + +SamplerState g_sSamp1 : register(s0); +SamplerState g_sSamp2; +SamplerState g_sSamp3[2] : register(s2); +SamplerState g_sSamp4[3]; +SamplerState g_sSamp5; + +SamplerState g_sSamp_unused1; +SamplerState g_sSamp_unused2; + +Texture1D g_tTex1 : register(t1); +const uniform Texture1D g_tTex2; +Texture1D g_tTex3[2] : register(t3); +Texture1D g_tTex4[3]; +Texture1D g_tTex5; + +Texture1D g_tTex_unused1 : register(t0); +Texture1D g_tTex_unused2 : register(t2); +Texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + float3 c; +}; + +uniform MyStruct_t mystruct : register(b4); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform float4 myfloat4_a; +uniform float4 myfloat4_b; +uniform int4 myint4_a; + +float4 Func1() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex2 . Sample(g_sSamp2, 0.2) + + g_tTex3[0] . Sample(g_sSamp3[0], 0.3) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3) + + g_tTex4[1] . Sample(g_sSamp4[1], 0.4) + + g_tTex4[2] . Sample(g_sSamp4[2], 0.4) + + g_tTex5 . Sample(g_sSamp5, 0.5) + + mystruct.c[1]; +} + +float4 Func2() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3); +} + +// Not called from entry point: +float4 Func2_unused() +{ + return + g_tTex_unused1 . Sample(g_sSamp_unused1, 1.1) + + g_tTex_unused2 . Sample(g_sSamp_unused2, 1.2); +} + +PS_OUTPUT main_ep() +{ + PS_OUTPUT psout; + psout.Color = Func1() + Func2(); + return psout; +} diff --git a/Test/spv.register.autoassign.rangetest.frag b/Test/spv.register.autoassign.rangetest.frag new file mode 100644 index 0000000000000000000000000000000000000000..314c8e96cd36eae560185c1eb3cef8f4cfe6f118 --- /dev/null +++ b/Test/spv.register.autoassign.rangetest.frag @@ -0,0 +1,15 @@ + +SamplerState g_tSamp : register(s5); + +Texture2D g_tScene[2] : register(t5); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +void main(out PS_OUTPUT psout) +{ + psout.Color = g_tScene[0].Sample(g_tSamp, float2(0.3, 0.3)) + + g_tScene[1].Sample(g_tSamp, float2(0.3, 0.3)); +} diff --git a/Test/spv.register.noautoassign.frag b/Test/spv.register.noautoassign.frag new file mode 100644 index 0000000000000000000000000000000000000000..0d6f0b2d5becfa10bb34db73229696fd1f6a6dcb --- /dev/null +++ b/Test/spv.register.noautoassign.frag @@ -0,0 +1,71 @@ + +SamplerState g_sSamp1 : register(s0); +SamplerState g_sSamp2; +SamplerState g_sSamp3[2] : register(s2); +SamplerState g_sSamp4[3]; +SamplerState g_sSamp5; + +SamplerState g_sSamp_unused1; +SamplerState g_sSamp_unused2; + +Texture1D g_tTex1 : register(t1); +const uniform Texture1D g_tTex2; +Texture1D g_tTex3[2] : register(t3); +Texture1D g_tTex4[3]; +Texture1D g_tTex5; + +Texture1D g_tTex_unused1 : register(t0); +Texture1D g_tTex_unused2 : register(t2); +Texture1D g_tTex_unused3; + +struct MyStruct_t { + int a; + float b; + float3 c; +}; + +uniform MyStruct_t mystruct : register(b4); + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +uniform float4 myfloat4_a; +uniform float4 myfloat4_b; +uniform int4 myint4_a; + +float4 Func1() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex2 . Sample(g_sSamp2, 0.2) + + g_tTex3[0] . Sample(g_sSamp3[0], 0.3) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3) + + g_tTex4[1] . Sample(g_sSamp4[1], 0.4) + + g_tTex4[2] . Sample(g_sSamp4[2], 0.4) + + g_tTex5 . Sample(g_sSamp5, 0.5) + + mystruct.c[1]; +} + +float4 Func2() +{ + return + g_tTex1 . Sample(g_sSamp1, 0.1) + + g_tTex3[1] . Sample(g_sSamp3[1], 0.3); +} + +// Not called from entry point: +float4 Func2_unused() +{ + return + g_tTex_unused1 . Sample(g_sSamp_unused1, 1.1) + + g_tTex_unused2 . Sample(g_sSamp_unused2, 1.2); +} + +PS_OUTPUT main_ep() +{ + PS_OUTPUT psout; + psout.Color = Func1() + Func2(); + return psout; +} diff --git a/Test/spv.rw.autoassign.frag b/Test/spv.rw.autoassign.frag new file mode 100644 index 0000000000000000000000000000000000000000..5c7d0d3f5ba93f300e7fb29a2b05be695af77646 --- /dev/null +++ b/Test/spv.rw.autoassign.frag @@ -0,0 +1,18 @@ + +RWTexture1D <float> g_tTex1df1; +RWBuffer <uint> g_tBuf1du1; + +struct PS_OUTPUT +{ + float4 Color : SV_Target0; +}; + +PS_OUTPUT main() +{ + float r00 = g_tTex1df1[0]; + uint r01 = g_tBuf1du1[0]; + + PS_OUTPUT psout; + psout.Color = 0; + return psout; +} diff --git a/Test/spv.shaderDrawParams.vert b/Test/spv.shaderDrawParams.vert new file mode 100644 index 0000000000000000000000000000000000000000..15ae2953a1646f875fda0f4dd205d1d0d2d93d19 --- /dev/null +++ b/Test/spv.shaderDrawParams.vert @@ -0,0 +1,16 @@ +#version 450 core + +#extension GL_ARB_shader_draw_parameters: enable + +layout(binding = 0) uniform Block +{ + vec4 pos[2][4]; +} block; + +void main() +{ + if ((gl_BaseVertexARB > 0) || (gl_BaseInstanceARB > 0)) + gl_Position = block.pos[0][gl_DrawIDARB % 4]; + else + gl_Position = block.pos[1][gl_DrawIDARB % 4]; +} diff --git a/Test/tokenPaste.vert b/Test/tokenPaste.vert new file mode 100644 index 0000000000000000000000000000000000000000..6d6212cc8623d3082396ebe879f7cbe839a93c77 --- /dev/null +++ b/Test/tokenPaste.vert @@ -0,0 +1,52 @@ +#version 450 + +// side test verifies multiple rounds of argument expansion +#define bear SecondExpansion +#define mmmB bear +#define mmmA(a) a +int mmmA(mmmB); // mmmB -> bear, and then in mmmA(), bear -> SecondExpansion + +// pasting skips the first round of expansion +#define mmcatmmdog PostPasteExpansion +#define mmcat cat +#define mmdog dog +#define mmp(a,b) a## b +int mmp(mmcat, mmdog); // mmcat/mmdog not expanded, mmcatmmdog -> PostPasteExpansion + +// multi-token pre +#define mmtokpastepre(a) a##27 +mmtokpastepre(float foo); // should declare "float foo27;" + +// multi-token post +#define mmtokpastepost(a) uni ##a +mmtokpastepost(form float foo155); // should declare "uniform float foo155;" + +// non-first argument +#define foo ShouldntExpandToThis +#define semi ; +#define bothpaste(a,b) a##b +float bothpaste(foo, 719); // should declare "float foo719;" +#define secpaste(a,b) a bar ## b +secpaste(uniform float, foo semi) // should declare "uniform float barfoo;" + +// no args +#define noArg fl##oat +noArg argless; + +// bad location +#define bad1 ## float +bad1 dc1; +#define bad2 float ## +bad2 dc2; + +// multiple ## +#define multiPaste(a, b, c) a##or##b flo##at foo##c +multiPaste(unif, m, 875); + +// too long +#define simplePaste(a,b) a##b +// 1020 + 5 characters +float simplePaste(ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF012345, 12345); + +// non-identifiers +int a = simplePaste(11,12); diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt index 6325fd4aee05db7bab10c6e37aee7070b13054f8..95d4bdd8fcd74edcfa8e9c66a5f550ec36424e9d 100644 --- a/glslang/CMakeLists.txt +++ b/glslang/CMakeLists.txt @@ -10,6 +10,7 @@ set(SOURCES MachineIndependent/glslang.y MachineIndependent/glslang_tab.cpp MachineIndependent/Constant.cpp + MachineIndependent/iomapper.cpp MachineIndependent/InfoSink.cpp MachineIndependent/Initialize.cpp MachineIndependent/IntermTraverse.cpp @@ -55,6 +56,7 @@ set(HEADERS MachineIndependent/glslang_tab.cpp.h MachineIndependent/gl_types.h MachineIndependent/Initialize.h + MachineIndependent/iomapper.h MachineIndependent/LiveTraverser.h MachineIndependent/localintermediate.h MachineIndependent/ParseHelper.h diff --git a/glslang/Include/BaseTypes.h b/glslang/Include/BaseTypes.h index 64ef80c923aff7899a553b35345f1695df911656..f70744067215939f8e3c6254713662b18bc5d80a 100644 --- a/glslang/Include/BaseTypes.h +++ b/glslang/Include/BaseTypes.h @@ -46,6 +46,9 @@ enum TBasicType { EbtVoid, EbtFloat, EbtDouble, +#ifdef AMD_EXTENSIONS + EbtFloat16, +#endif EbtInt, EbtUint, EbtInt64, diff --git a/glslang/Include/Common.h b/glslang/Include/Common.h index 636645e79f905f9f4a3821df7a441d2e5d23c591..e082356cc74b4ea8a29ce8a800d7745d13df3a8c 100644 --- a/glslang/Include/Common.h +++ b/glslang/Include/Common.h @@ -68,6 +68,10 @@ inline long long int strtoll (const char* str, char** endptr, int base) { return _strtoi64(str, endptr, base); } +inline unsigned long long int strtoull (const char* str, char** endptr, int base) +{ + return _strtoui64(str, endptr, base); +} inline long long int atoll (const char* str) { return strtoll(str, NULL, 10); diff --git a/glslang/Include/ConstantUnion.h b/glslang/Include/ConstantUnion.h index 8ee2c84ccf29d060e4866420db399427bb827c19..ec6aff1171be29f811523f5a6567155efacaf392 100644 --- a/glslang/Include/ConstantUnion.h +++ b/glslang/Include/ConstantUnion.h @@ -538,7 +538,7 @@ private: }; // Encapsulate having a pointer to an array of TConstUnion, -// which only needs to be allocated if it's size is going to be +// which only needs to be allocated if its size is going to be // bigger than 0. // // One convenience is being able to use [] to go inside the array, instead diff --git a/glslang/Include/InfoSink.h b/glslang/Include/InfoSink.h index aa02f914a55b7edfc9f67793de11b4228ad8be37..0cbd99bdaae5d09bd2cbf8db131b7a6ce3b25dbe 100644 --- a/glslang/Include/InfoSink.h +++ b/glslang/Include/InfoSink.h @@ -74,7 +74,6 @@ public: TInfoSinkBase& operator<<(const char* s) { append(s); return *this; } TInfoSinkBase& operator<<(int n) { append(String(n)); return *this; } TInfoSinkBase& operator<<(unsigned int n) { append(String(n)); return *this; } - TInfoSinkBase& operator<<(long unsigned int n) { append(String(n)); return *this; } TInfoSinkBase& operator<<(float n) { const int size = 40; char buf[size]; snprintf(buf, size, (fabs(n) > 1e-8 && fabs(n) < 1e8) || n == 0.0f ? "%f" : "%g", n); append(buf); diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 6c2ded8e043952ae133178eccd7d716daeea4cf3..8745c7a9422c62d3dcf90244e2b2723175eb25c2 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -78,6 +78,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, bool combined : 1; // true means texture is combined with a sampler, false means texture with no sampler bool sampler : 1; // true means a pure sampler, other fields should be clear() bool external : 1; // GL_OES_EGL_image_external + unsigned int vectorSize : 3; // return vector size. TODO: support arbitrary types. bool isImage() const { return image && dim != EsdSubpass; } bool isSubpass() const { return dim == EsdSubpass; } @@ -99,6 +100,7 @@ struct TSampler { // misnomer now; includes images, textures without sampler, combined = false; sampler = false; external = false; + vectorSize = 4; } // make a combined sampler and texture @@ -164,7 +166,8 @@ struct TSampler { // misnomer now; includes images, textures without sampler, image == right.image && combined == right.combined && sampler == right.sampler && - external == right.external; + external == right.external && + vectorSize == right.vectorSize; } bool operator!=(const TSampler& right) const @@ -185,8 +188,6 @@ struct TSampler { // misnomer now; includes images, textures without sampler, case EbtFloat: break; case EbtInt: s.append("i"); break; case EbtUint: s.append("u"); break; - case EbtInt64: s.append("i64"); break; - case EbtUint64: s.append("u64"); break; default: break; // some compilers want this } if (image) { @@ -623,8 +624,8 @@ public: unsigned int layoutSet : 7; static const unsigned int layoutSetEnd = 0x3F; - unsigned int layoutBinding : 8; - static const unsigned int layoutBindingEnd = 0xFF; + unsigned int layoutBinding : 16; + static const unsigned int layoutBindingEnd = 0xFFFF; unsigned int layoutIndex : 8; static const unsigned int layoutIndexEnd = 0xFF; @@ -1204,7 +1205,7 @@ public: typeName = NewPoolTString(copyOf.typeName->c_str()); } - TType* clone() + TType* clone() const { TType *newType = new TType(); newType->deepCopy(*this); @@ -1270,6 +1271,7 @@ public: virtual TArraySizes& getArraySizes() { assert(arraySizes != nullptr); return *arraySizes; } virtual bool isScalar() const { return ! isVector() && ! isMatrix() && ! isStruct() && ! isArray(); } + virtual bool isScalarOrVec1() const { return isScalar() || vector1; } virtual bool isVector() const { return vectorSize > 1 || vector1; } virtual bool isMatrix() const { return matrixCols ? true : false; } virtual bool isArray() const { return arraySizes != nullptr; } @@ -1277,7 +1279,11 @@ public: virtual bool isImplicitlySizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage != EvqBuffer; } virtual bool isRuntimeSizedArray() const { return isArray() && getOuterArraySize() == UnsizedArraySize && qualifier.storage == EvqBuffer; } virtual bool isStruct() const { return structure != nullptr; } +#ifdef AMD_EXTENSIONS + virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble || basicType == EbtFloat16; } +#else virtual bool isFloatingDomain() const { return basicType == EbtFloat || basicType == EbtDouble; } +#endif virtual bool isOpaque() const { return basicType == EbtSampler || basicType == EbtAtomicUint; } @@ -1359,6 +1365,9 @@ public: case EbtVoid: case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif case EbtInt: case EbtUint: case EbtInt64: @@ -1451,6 +1460,9 @@ public: case EbtVoid: return "void"; case EbtFloat: return "float"; case EbtDouble: return "double"; +#ifdef AMD_EXTENSIONS + case EbtFloat16: return "float16_t"; +#endif case EbtInt: return "int"; case EbtUint: return "uint"; case EbtInt64: return "int64_t"; diff --git a/glslang/Include/intermediate.h b/glslang/Include/intermediate.h index 5166e3d51bc90dd1d6c345c0d4cb59eb0414e93e..8f7ffcc0daa308cc9dc3c25bf421cd91e1e4900b 100644 --- a/glslang/Include/intermediate.h +++ b/glslang/Include/intermediate.h @@ -46,12 +46,19 @@ #ifndef __INTERMEDIATE_H #define __INTERMEDIATE_H +#if _MSC_VER >= 1900 + #pragma warning(disable : 4464) // relative include path contains '..' + #pragma warning(disable : 5026) // 'glslang::TIntermUnary': move constructor was implicitly defined as deleted +#endif + #include "../Include/Common.h" #include "../Include/Types.h" #include "../Include/ConstantUnion.h" namespace glslang { +class TIntermediate; + // // Operators used by the high-level (parse tree) representation. // @@ -119,6 +126,22 @@ enum TOperator { EOpConvFloatToUint64, EOpConvDoubleToUint64, EOpConvInt64ToUint64, +#ifdef AMD_EXTENSIONS + EOpConvBoolToFloat16, + EOpConvIntToFloat16, + EOpConvUintToFloat16, + EOpConvFloatToFloat16, + EOpConvDoubleToFloat16, + EOpConvInt64ToFloat16, + EOpConvUint64ToFloat16, + EOpConvFloat16ToBool, + EOpConvFloat16ToInt, + EOpConvFloat16ToUint, + EOpConvFloat16ToFloat, + EOpConvFloat16ToDouble, + EOpConvFloat16ToInt64, + EOpConvFloat16ToUint64, +#endif // // binary operations @@ -236,6 +259,10 @@ enum TOperator { EOpUnpackInt2x32, EOpPackUint2x32, EOpUnpackUint2x32, +#ifdef AMD_EXTENSIONS + EOpPackFloat2x16, + EOpUnpackFloat2x16, +#endif EOpLength, EOpDistance, @@ -396,6 +423,21 @@ enum TOperator { EOpConstructDMat4x2, EOpConstructDMat4x3, EOpConstructDMat4x4, +#ifdef AMD_EXTENSIONS + EOpConstructFloat16, + EOpConstructF16Vec2, + EOpConstructF16Vec3, + EOpConstructF16Vec4, + EOpConstructF16Mat2x2, + EOpConstructF16Mat2x3, + EOpConstructF16Mat2x4, + EOpConstructF16Mat3x2, + EOpConstructF16Mat3x3, + EOpConstructF16Mat3x4, + EOpConstructF16Mat4x2, + EOpConstructF16Mat4x3, + EOpConstructF16Mat4x4, +#endif EOpConstructStruct, EOpConstructTextureSampler, EOpConstructGuardEnd, @@ -579,6 +621,10 @@ enum TOperator { EOpMethodGatherCmpGreen, // ... EOpMethodGatherCmpBlue, // ... EOpMethodGatherCmpAlpha, // ... + + // geometry methods + EOpMethodAppend, // Geometry shader methods + EOpMethodRestartStrip, // ... }; class TIntermTraverser; @@ -810,7 +856,7 @@ public: virtual TIntermOperator* getAsOperator() { return this; } virtual const TIntermOperator* getAsOperator() const { return this; } TOperator getOp() const { return op; } - virtual bool promote() { return true; } + void setOp(TOperator newOp) { op = newOp; } bool modifiesState() const; bool isConstructor() const; bool isTexture() const { return op > EOpTextureGuardBegin && op < EOpTextureGuardEnd; } @@ -989,7 +1035,6 @@ public: virtual TIntermTyped* getRight() const { return right; } virtual TIntermBinary* getAsBinaryNode() { return this; } virtual const TIntermBinary* getAsBinaryNode() const { return this; } - virtual bool promote(); virtual void updatePrecision(); protected: TIntermTyped* left; @@ -1009,7 +1054,6 @@ public: virtual const TIntermTyped* getOperand() const { return operand; } virtual TIntermUnary* getAsUnaryNode() { return this; } virtual const TIntermUnary* getAsUnaryNode() const { return this; } - virtual bool promote(); virtual void updatePrecision(); protected: TIntermTyped* operand; diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h index 6850d6fcd4c7a4716b028a85a863be9a02c01ec7..3cbc006a73b7a703c9d4662b4cf6e33e22dd72fe 100644 --- a/glslang/Include/revision.h +++ b/glslang/Include/revision.h @@ -2,5 +2,5 @@ // For the version, it uses the latest git tag followed by the number of commits. // For the date, it uses the current date (when then script is run). -#define GLSLANG_REVISION "Overload400-PrecQual.1503" -#define GLSLANG_DATE "20-Sep-2016" +#define GLSLANG_REVISION "Overload400-PrecQual.1704" +#define GLSLANG_DATE "19-Dec-2016" diff --git a/glslang/MachineIndependent/Constant.cpp b/glslang/MachineIndependent/Constant.cpp index 4adfd4704ef8d05aff25388a8730bb364e325da5..61b6f67e794e0813a1d893ae5534da5a8d8acdc9 100644 --- a/glslang/MachineIndependent/Constant.cpp +++ b/glslang/MachineIndependent/Constant.cpp @@ -57,7 +57,7 @@ bool isNan(double x) u.d = x; int bitPatternL = u.i[0]; int bitPatternH = u.i[1]; - return (bitPatternH & 0x7ff80000) == 0x7ff80000 && + return (bitPatternH & 0x7ff80000) == 0x7ff80000 && ((bitPatternH & 0xFFFFF) != 0 || bitPatternL != 0); } @@ -68,7 +68,7 @@ bool isInf(double x) u.d = x; int bitPatternL = u.i[0]; int bitPatternH = u.i[1]; - return (bitPatternH & 0x7ff00000) == 0x7ff00000 && + return (bitPatternH & 0x7ff00000) == 0x7ff00000 && (bitPatternH & 0xFFFFF) == 0 && bitPatternL == 0; } @@ -131,7 +131,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right TConstUnionArray smearedArray(newComps, rightNode->getConstArray()[0]); rightUnionArray = smearedArray; } else if (constComps > 1 && newComps == 1) { - // for a case like vec4 f = 1.2 + vec4(2,3,4,5); + // for a case like vec4 f = 1.2 + vec4(2,3,4,5); newComps = constComps; rightUnionArray = rightNode->getConstArray(); TConstUnionArray smearedArray(newComps, getConstArray()[0]); @@ -176,6 +176,9 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TIntermTyped* right switch (getType().getBasicType()) { case EbtDouble: case EbtFloat: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif newConstArray[i].setDConst(leftUnionArray[i].getDConst() / rightUnionArray[i].getDConst()); break; @@ -450,6 +453,9 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) case EOpNegative: switch (getType().getBasicType()) { case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif case EbtFloat: newConstArray[i].setDConst(-unionArray[i].getDConst()); break; case EbtInt: newConstArray[i].setIConst(-unionArray[i].getIConst()); break; case EbtUint: newConstArray[i].setUConst(static_cast<unsigned int>(-static_cast<int>(unionArray[i].getUConst()))); break; @@ -620,7 +626,7 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType) // // Do constant folding for an aggregate node that has all its children // as constants and an operator that requires constant folding. -// +// TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) { if (! areAllChildConst(aggrNode)) @@ -688,6 +694,9 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) // Second, do the actual folding bool isFloatingPoint = children[0]->getAsTyped()->getBasicType() == EbtFloat || +#ifdef AMD_EXTENSIONS + children[0]->getAsTyped()->getBasicType() == EbtFloat16 || +#endif children[0]->getAsTyped()->getBasicType() == EbtDouble; bool isSigned = children[0]->getAsTyped()->getBasicType() == EbtInt || children[0]->getAsTyped()->getBasicType() == EbtInt64; @@ -793,7 +802,7 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) break; case EOpSmoothStep: { - double t = (childConstUnions[2][arg2comp].getDConst() - childConstUnions[0][arg0comp].getDConst()) / + double t = (childConstUnions[2][arg2comp].getDConst() - childConstUnions[0][arg0comp].getDConst()) / (childConstUnions[1][arg1comp].getDConst() - childConstUnions[0][arg0comp].getDConst()); if (t < 0.0) t = 0.0; @@ -832,7 +841,7 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode) newConstArray[2] = childConstUnions[0][0] * childConstUnions[1][1] - childConstUnions[0][1] * childConstUnions[1][0]; break; case EOpFaceForward: - // If dot(Nref, I) < 0 return N, otherwise return –N: Arguments are (N, I, Nref). + // If dot(Nref, I) < 0 return N, otherwise return -N: Arguments are (N, I, Nref). dot = childConstUnions[1].dot(childConstUnions[2]); for (int comp = 0; comp < numComps; ++comp) { if (dot < 0.0) @@ -959,7 +968,7 @@ TIntermTyped* TIntermediate::foldDereference(TIntermTyped* node, int index, cons } // -// Make a constant vector node or constant scalar node, representing a given +// Make a constant vector node or constant scalar node, representing a given // constant vector and constant swizzle into it. // TIntermTyped* TIntermediate::foldSwizzle(TIntermTyped* node, TVectorFields& fields, const TSourceLoc& loc) diff --git a/glslang/MachineIndependent/Initialize.cpp b/glslang/MachineIndependent/Initialize.cpp index 6d2e9c076d76b3db5a6e23c62b3f1e20529c4cad..c8739535e7bdd5cca930822d6f948b9a83ddeec3 100644 --- a/glslang/MachineIndependent/Initialize.cpp +++ b/glslang/MachineIndependent/Initialize.cpp @@ -85,8 +85,6 @@ TBuiltIns::TBuiltIns() prefixes[EbtFloat] = ""; prefixes[EbtInt] = "i"; prefixes[EbtUint] = "u"; - prefixes[EbtInt64] = "i64"; - prefixes[EbtUint64] = "u64"; postfixes[2] = "2"; postfixes[3] = "3"; postfixes[4] = "4"; @@ -875,6 +873,21 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 mid3(uvec3, uvec3, uvec3);" "uvec4 mid3(uvec4, uvec4, uvec4);" + "float16_t min3(float16_t, float16_t, float16_t);" + "f16vec2 min3(f16vec2, f16vec2, f16vec2);" + "f16vec3 min3(f16vec3, f16vec3, f16vec3);" + "f16vec4 min3(f16vec4, f16vec4, f16vec4);" + + "float16_t max3(float16_t, float16_t, float16_t);" + "f16vec2 max3(f16vec2, f16vec2, f16vec2);" + "f16vec3 max3(f16vec3, f16vec3, f16vec3);" + "f16vec4 max3(f16vec4, f16vec4, f16vec4);" + + "float16_t mid3(float16_t, float16_t, float16_t);" + "f16vec2 mid3(f16vec2, f16vec2, f16vec2);" + "f16vec3 mid3(f16vec3, f16vec3, f16vec3);" + "f16vec4 mid3(f16vec4, f16vec4, f16vec4);" + "\n" ); } @@ -1709,6 +1722,354 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "\n"); } + + // GL_AMD_gpu_shader_half_float + if (profile != EEsProfile && version >= 450) { + commonBuiltins.append( + "float16_t radians(float16_t);" + "f16vec2 radians(f16vec2);" + "f16vec3 radians(f16vec3);" + "f16vec4 radians(f16vec4);" + + "float16_t degrees(float16_t);" + "f16vec2 degrees(f16vec2);" + "f16vec3 degrees(f16vec3);" + "f16vec4 degrees(f16vec4);" + + "float16_t sin(float16_t);" + "f16vec2 sin(f16vec2);" + "f16vec3 sin(f16vec3);" + "f16vec4 sin(f16vec4);" + + "float16_t cos(float16_t);" + "f16vec2 cos(f16vec2);" + "f16vec3 cos(f16vec3);" + "f16vec4 cos(f16vec4);" + + "float16_t tan(float16_t);" + "f16vec2 tan(f16vec2);" + "f16vec3 tan(f16vec3);" + "f16vec4 tan(f16vec4);" + + "float16_t asin(float16_t);" + "f16vec2 asin(f16vec2);" + "f16vec3 asin(f16vec3);" + "f16vec4 asin(f16vec4);" + + "float16_t acos(float16_t);" + "f16vec2 acos(f16vec2);" + "f16vec3 acos(f16vec3);" + "f16vec4 acos(f16vec4);" + + "float16_t atan(float16_t, float16_t);" + "f16vec2 atan(f16vec2, f16vec2);" + "f16vec3 atan(f16vec3, f16vec3);" + "f16vec4 atan(f16vec4, f16vec4);" + + "float16_t atan(float16_t);" + "f16vec2 atan(f16vec2);" + "f16vec3 atan(f16vec3);" + "f16vec4 atan(f16vec4);" + + "float16_t sinh(float16_t);" + "f16vec2 sinh(f16vec2);" + "f16vec3 sinh(f16vec3);" + "f16vec4 sinh(f16vec4);" + + "float16_t cosh(float16_t);" + "f16vec2 cosh(f16vec2);" + "f16vec3 cosh(f16vec3);" + "f16vec4 cosh(f16vec4);" + + "float16_t tanh(float16_t);" + "f16vec2 tanh(f16vec2);" + "f16vec3 tanh(f16vec3);" + "f16vec4 tanh(f16vec4);" + + "float16_t asinh(float16_t);" + "f16vec2 asinh(f16vec2);" + "f16vec3 asinh(f16vec3);" + "f16vec4 asinh(f16vec4);" + + "float16_t acosh(float16_t);" + "f16vec2 acosh(f16vec2);" + "f16vec3 acosh(f16vec3);" + "f16vec4 acosh(f16vec4);" + + "float16_t atanh(float16_t);" + "f16vec2 atanh(f16vec2);" + "f16vec3 atanh(f16vec3);" + "f16vec4 atanh(f16vec4);" + + "float16_t pow(float16_t, float16_t);" + "f16vec2 pow(f16vec2, f16vec2);" + "f16vec3 pow(f16vec3, f16vec3);" + "f16vec4 pow(f16vec4, f16vec4);" + + "float16_t exp(float16_t);" + "f16vec2 exp(f16vec2);" + "f16vec3 exp(f16vec3);" + "f16vec4 exp(f16vec4);" + + "float16_t log(float16_t);" + "f16vec2 log(f16vec2);" + "f16vec3 log(f16vec3);" + "f16vec4 log(f16vec4);" + + "float16_t exp2(float16_t);" + "f16vec2 exp2(f16vec2);" + "f16vec3 exp2(f16vec3);" + "f16vec4 exp2(f16vec4);" + + "float16_t log2(float16_t);" + "f16vec2 log2(f16vec2);" + "f16vec3 log2(f16vec3);" + "f16vec4 log2(f16vec4);" + + "float16_t sqrt(float16_t);" + "f16vec2 sqrt(f16vec2);" + "f16vec3 sqrt(f16vec3);" + "f16vec4 sqrt(f16vec4);" + + "float16_t inversesqrt(float16_t);" + "f16vec2 inversesqrt(f16vec2);" + "f16vec3 inversesqrt(f16vec3);" + "f16vec4 inversesqrt(f16vec4);" + + "float16_t abs(float16_t);" + "f16vec2 abs(f16vec2);" + "f16vec3 abs(f16vec3);" + "f16vec4 abs(f16vec4);" + + "float16_t sign(float16_t);" + "f16vec2 sign(f16vec2);" + "f16vec3 sign(f16vec3);" + "f16vec4 sign(f16vec4);" + + "float16_t floor(float16_t);" + "f16vec2 floor(f16vec2);" + "f16vec3 floor(f16vec3);" + "f16vec4 floor(f16vec4);" + + "float16_t trunc(float16_t);" + "f16vec2 trunc(f16vec2);" + "f16vec3 trunc(f16vec3);" + "f16vec4 trunc(f16vec4);" + + "float16_t round(float16_t);" + "f16vec2 round(f16vec2);" + "f16vec3 round(f16vec3);" + "f16vec4 round(f16vec4);" + + "float16_t roundEven(float16_t);" + "f16vec2 roundEven(f16vec2);" + "f16vec3 roundEven(f16vec3);" + "f16vec4 roundEven(f16vec4);" + + "float16_t ceil(float16_t);" + "f16vec2 ceil(f16vec2);" + "f16vec3 ceil(f16vec3);" + "f16vec4 ceil(f16vec4);" + + "float16_t fract(float16_t);" + "f16vec2 fract(f16vec2);" + "f16vec3 fract(f16vec3);" + "f16vec4 fract(f16vec4);" + + "float16_t mod(float16_t, float16_t);" + "f16vec2 mod(f16vec2, float16_t);" + "f16vec3 mod(f16vec3, float16_t);" + "f16vec4 mod(f16vec4, float16_t);" + "f16vec2 mod(f16vec2, f16vec2);" + "f16vec3 mod(f16vec3, f16vec3);" + "f16vec4 mod(f16vec4, f16vec4);" + + "float16_t modf(float16_t, out float16_t);" + "f16vec2 modf(f16vec2, out f16vec2);" + "f16vec3 modf(f16vec3, out f16vec3);" + "f16vec4 modf(f16vec4, out f16vec4);" + + "float16_t min(float16_t, float16_t);" + "f16vec2 min(f16vec2, float16_t);" + "f16vec3 min(f16vec3, float16_t);" + "f16vec4 min(f16vec4, float16_t);" + "f16vec2 min(f16vec2, f16vec2);" + "f16vec3 min(f16vec3, f16vec3);" + "f16vec4 min(f16vec4, f16vec4);" + + "float16_t max(float16_t, float16_t);" + "f16vec2 max(f16vec2, float16_t);" + "f16vec3 max(f16vec3, float16_t);" + "f16vec4 max(f16vec4, float16_t);" + "f16vec2 max(f16vec2, f16vec2);" + "f16vec3 max(f16vec3, f16vec3);" + "f16vec4 max(f16vec4, f16vec4);" + + "float16_t clamp(float16_t, float16_t, float16_t);" + "f16vec2 clamp(f16vec2, float16_t, float16_t);" + "f16vec3 clamp(f16vec3, float16_t, float16_t);" + "f16vec4 clamp(f16vec4, float16_t, float16_t);" + "f16vec2 clamp(f16vec2, f16vec2, f16vec2);" + "f16vec3 clamp(f16vec3, f16vec3, f16vec3);" + "f16vec4 clamp(f16vec4, f16vec4, f16vec4);" + + "float16_t mix(float16_t, float16_t, float16_t);" + "f16vec2 mix(f16vec2, f16vec2, float16_t);" + "f16vec3 mix(f16vec3, f16vec3, float16_t);" + "f16vec4 mix(f16vec4, f16vec4, float16_t);" + "f16vec2 mix(f16vec2, f16vec2, f16vec2);" + "f16vec3 mix(f16vec3, f16vec3, f16vec3);" + "f16vec4 mix(f16vec4, f16vec4, f16vec4);" + "float16_t mix(float16_t, float16_t, bool);" + "f16vec2 mix(f16vec2, f16vec2, bvec2);" + "f16vec3 mix(f16vec3, f16vec3, bvec3);" + "f16vec4 mix(f16vec4, f16vec4, bvec4);" + + "float16_t step(float16_t, float16_t);" + "f16vec2 step(f16vec2, f16vec2);" + "f16vec3 step(f16vec3, f16vec3);" + "f16vec4 step(f16vec4, f16vec4);" + "f16vec2 step(float16_t, f16vec2);" + "f16vec3 step(float16_t, f16vec3);" + "f16vec4 step(float16_t, f16vec4);" + + "float16_t smoothstep(float16_t, float16_t, float16_t);" + "f16vec2 smoothstep(f16vec2, f16vec2, f16vec2);" + "f16vec3 smoothstep(f16vec3, f16vec3, f16vec3);" + "f16vec4 smoothstep(f16vec4, f16vec4, f16vec4);" + "f16vec2 smoothstep(float16_t, float16_t, f16vec2);" + "f16vec3 smoothstep(float16_t, float16_t, f16vec3);" + "f16vec4 smoothstep(float16_t, float16_t, f16vec4);" + + "bool isnan(float16_t);" + "bvec2 isnan(f16vec2);" + "bvec3 isnan(f16vec3);" + "bvec4 isnan(f16vec4);" + + "bool isinf(float16_t);" + "bvec2 isinf(f16vec2);" + "bvec3 isinf(f16vec3);" + "bvec4 isinf(f16vec4);" + + "float16_t fma(float16_t, float16_t, float16_t);" + "f16vec2 fma(f16vec2, f16vec2, f16vec2);" + "f16vec3 fma(f16vec3, f16vec3, f16vec3);" + "f16vec4 fma(f16vec4, f16vec4, f16vec4);" + + "float16_t frexp(float16_t, out int);" + "f16vec2 frexp(f16vec2, out ivec2);" + "f16vec3 frexp(f16vec3, out ivec3);" + "f16vec4 frexp(f16vec4, out ivec4);" + + "float16_t ldexp(float16_t, in int);" + "f16vec2 ldexp(f16vec2, in ivec2);" + "f16vec3 ldexp(f16vec3, in ivec3);" + "f16vec4 ldexp(f16vec4, in ivec4);" + + "uint packFloat2x16(f16vec2);" + "f16vec2 unpackFloat2x16(uint);" + + "float16_t length(float16_t);" + "float16_t length(f16vec2);" + "float16_t length(f16vec3);" + "float16_t length(f16vec4);" + + "float16_t distance(float16_t, float16_t);" + "float16_t distance(f16vec2, f16vec2);" + "float16_t distance(f16vec3, f16vec3);" + "float16_t distance(f16vec4, f16vec4);" + + "float16_t dot(float16_t, float16_t);" + "float16_t dot(f16vec2, f16vec2);" + "float16_t dot(f16vec3, f16vec3);" + "float16_t dot(f16vec4, f16vec4);" + + "f16vec3 cross(f16vec3, f16vec3);" + + "float16_t normalize(float16_t);" + "f16vec2 normalize(f16vec2);" + "f16vec3 normalize(f16vec3);" + "f16vec4 normalize(f16vec4);" + + "float16_t faceforward(float16_t, float16_t, float16_t);" + "f16vec2 faceforward(f16vec2, f16vec2, f16vec2);" + "f16vec3 faceforward(f16vec3, f16vec3, f16vec3);" + "f16vec4 faceforward(f16vec4, f16vec4, f16vec4);" + + "float16_t reflect(float16_t, float16_t);" + "f16vec2 reflect(f16vec2, f16vec2);" + "f16vec3 reflect(f16vec3, f16vec3);" + "f16vec4 reflect(f16vec4, f16vec4);" + + "float16_t refract(float16_t, float16_t, float16_t);" + "f16vec2 refract(f16vec2, f16vec2, float16_t);" + "f16vec3 refract(f16vec3, f16vec3, float16_t);" + "f16vec4 refract(f16vec4, f16vec4, float16_t);" + + "f16mat2 matrixCompMult(f16mat2, f16mat2);" + "f16mat3 matrixCompMult(f16mat3, f16mat3);" + "f16mat4 matrixCompMult(f16mat4, f16mat4);" + "f16mat2x3 matrixCompMult(f16mat2x3, f16mat2x3);" + "f16mat2x4 matrixCompMult(f16mat2x4, f16mat2x4);" + "f16mat3x2 matrixCompMult(f16mat3x2, f16mat3x2);" + "f16mat3x4 matrixCompMult(f16mat3x4, f16mat3x4);" + "f16mat4x2 matrixCompMult(f16mat4x2, f16mat4x2);" + "f16mat4x3 matrixCompMult(f16mat4x3, f16mat4x3);" + + "f16mat2 outerProduct(f16vec2, f16vec2);" + "f16mat3 outerProduct(f16vec3, f16vec3);" + "f16mat4 outerProduct(f16vec4, f16vec4);" + "f16mat2x3 outerProduct(f16vec3, f16vec2);" + "f16mat3x2 outerProduct(f16vec2, f16vec3);" + "f16mat2x4 outerProduct(f16vec4, f16vec2);" + "f16mat4x2 outerProduct(f16vec2, f16vec4);" + "f16mat3x4 outerProduct(f16vec4, f16vec3);" + "f16mat4x3 outerProduct(f16vec3, f16vec4);" + + "f16mat2 transpose(f16mat2);" + "f16mat3 transpose(f16mat3);" + "f16mat4 transpose(f16mat4);" + "f16mat2x3 transpose(f16mat3x2);" + "f16mat3x2 transpose(f16mat2x3);" + "f16mat2x4 transpose(f16mat4x2);" + "f16mat4x2 transpose(f16mat2x4);" + "f16mat3x4 transpose(f16mat4x3);" + "f16mat4x3 transpose(f16mat3x4);" + + "float16_t determinant(f16mat2);" + "float16_t determinant(f16mat3);" + "float16_t determinant(f16mat4);" + + "f16mat2 inverse(f16mat2);" + "f16mat3 inverse(f16mat3);" + "f16mat4 inverse(f16mat4);" + + "bvec2 lessThan(f16vec2, f16vec2);" + "bvec3 lessThan(f16vec3, f16vec3);" + "bvec4 lessThan(f16vec4, f16vec4);" + + "bvec2 lessThanEqual(f16vec2, f16vec2);" + "bvec3 lessThanEqual(f16vec3, f16vec3);" + "bvec4 lessThanEqual(f16vec4, f16vec4);" + + "bvec2 greaterThan(f16vec2, f16vec2);" + "bvec3 greaterThan(f16vec3, f16vec3);" + "bvec4 greaterThan(f16vec4, f16vec4);" + + "bvec2 greaterThanEqual(f16vec2, f16vec2);" + "bvec3 greaterThanEqual(f16vec3, f16vec3);" + "bvec4 greaterThanEqual(f16vec4, f16vec4);" + + "bvec2 equal(f16vec2, f16vec2);" + "bvec3 equal(f16vec3, f16vec3);" + "bvec4 equal(f16vec4, f16vec4);" + + "bvec2 notEqual(f16vec2, f16vec2);" + "bvec3 notEqual(f16vec3, f16vec3);" + "bvec4 notEqual(f16vec4, f16vec4);" + + "\n"); + } #endif //============================================================================ @@ -1975,6 +2336,77 @@ void TBuiltIns::initialize(int version, EProfile profile, const SpvVersion& spvV "uvec3 interpolateAtVertexAMD(uvec3, uint);" "uvec4 interpolateAtVertexAMD(uvec4, uint);" + "float16_t interpolateAtVertexAMD(float16_t, uint);" + "f16vec2 interpolateAtVertexAMD(f16vec2, uint);" + "f16vec3 interpolateAtVertexAMD(f16vec3, uint);" + "f16vec4 interpolateAtVertexAMD(f16vec4, uint);" + + "\n"); + } + + // GL_AMD_gpu_shader_half_float + if (profile != EEsProfile && version >= 450) { + stageBuiltins[EShLangFragment].append( + "float16_t dFdx(float16_t);" + "f16vec2 dFdx(f16vec2);" + "f16vec3 dFdx(f16vec3);" + "f16vec4 dFdx(f16vec4);" + + "float16_t dFdy(float16_t);" + "f16vec2 dFdy(f16vec2);" + "f16vec3 dFdy(f16vec3);" + "f16vec4 dFdy(f16vec4);" + + "float16_t dFdxFine(float16_t);" + "f16vec2 dFdxFine(f16vec2);" + "f16vec3 dFdxFine(f16vec3);" + "f16vec4 dFdxFine(f16vec4);" + + "float16_t dFdyFine(float16_t);" + "f16vec2 dFdyFine(f16vec2);" + "f16vec3 dFdyFine(f16vec3);" + "f16vec4 dFdyFine(f16vec4);" + + "float16_t dFdxCoarse(float16_t);" + "f16vec2 dFdxCoarse(f16vec2);" + "f16vec3 dFdxCoarse(f16vec3);" + "f16vec4 dFdxCoarse(f16vec4);" + + "float16_t dFdyCoarse(float16_t);" + "f16vec2 dFdyCoarse(f16vec2);" + "f16vec3 dFdyCoarse(f16vec3);" + "f16vec4 dFdyCoarse(f16vec4);" + + "float16_t fwidth(float16_t);" + "f16vec2 fwidth(f16vec2);" + "f16vec3 fwidth(f16vec3);" + "f16vec4 fwidth(f16vec4);" + + "float16_t fwidthFine(float16_t);" + "f16vec2 fwidthFine(f16vec2);" + "f16vec3 fwidthFine(f16vec3);" + "f16vec4 fwidthFine(f16vec4);" + + "float16_t fwidthCoarse(float16_t);" + "f16vec2 fwidthCoarse(f16vec2);" + "f16vec3 fwidthCoarse(f16vec3);" + "f16vec4 fwidthCoarse(f16vec4);" + + "float16_t interpolateAtCentroid(float16_t);" + "f16vec2 interpolateAtCentroid(f16vec2);" + "f16vec3 interpolateAtCentroid(f16vec3);" + "f16vec4 interpolateAtCentroid(f16vec4);" + + "float16_t interpolateAtSample(float16_t, int);" + "f16vec2 interpolateAtSample(f16vec2, int);" + "f16vec3 interpolateAtSample(f16vec3, int);" + "f16vec4 interpolateAtSample(f16vec4, int);" + + "float16_t interpolateAtOffset(float16_t, f16vec2);" + "f16vec2 interpolateAtOffset(f16vec2, f16vec2);" + "f16vec3 interpolateAtOffset(f16vec3, f16vec2);" + "f16vec4 interpolateAtOffset(f16vec4, f16vec2);" + "\n"); } #endif @@ -3862,7 +4294,6 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.setFunctionExtensions("readInvocationARB", 1, &E_GL_ARB_shader_ballot); symbolTable.setFunctionExtensions("readFirstInvocationARB", 1, &E_GL_ARB_shader_ballot); - BuiltInVariable("gl_SubGroupSizeARB", EbvSubGroupSize, symbolTable); BuiltInVariable("gl_SubGroupInvocationARB", EbvSubGroupInvocation, symbolTable); BuiltInVariable("gl_SubGroupEqMaskARB", EbvSubGroupEqMask, symbolTable); BuiltInVariable("gl_SubGroupGeMaskARB", EbvSubGroupGeMask, symbolTable); @@ -3870,6 +4301,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion BuiltInVariable("gl_SubGroupLeMaskARB", EbvSubGroupLeMask, symbolTable); BuiltInVariable("gl_SubGroupLtMaskARB", EbvSubGroupLtMask, symbolTable); + if (spvVersion.vulkan >= 100) + // Treat "gl_SubGroupSizeARB" as shader input instead of uniform for Vulkan + SpecialQualifier("gl_SubGroupSizeARB", EvqVaryingIn, EbvSubGroupSize, symbolTable); + symbolTable.setFunctionExtensions("anyInvocationARB", 1, &E_GL_ARB_shader_group_vote); symbolTable.setFunctionExtensions("allInvocationsARB", 1, &E_GL_ARB_shader_group_vote); symbolTable.setFunctionExtensions("allInvocationsEqualARB", 1, &E_GL_ARB_shader_group_vote); @@ -4366,6 +4801,11 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion symbolTable.relateToOperator("packUint2x32", EOpPackUint2x32); symbolTable.relateToOperator("unpackUint2x32", EOpUnpackUint2x32); +#ifdef AMD_EXTENSIONS + symbolTable.relateToOperator("packFloat2x16", EOpPackFloat2x16); + symbolTable.relateToOperator("unpackFloat2x16", EOpUnpackFloat2x16); +#endif + symbolTable.relateToOperator("length", EOpLength); symbolTable.relateToOperator("distance", EOpDistance); symbolTable.relateToOperator("dot", EOpDot); diff --git a/glslang/MachineIndependent/Intermediate.cpp b/glslang/MachineIndependent/Intermediate.cpp index 677cef39535ea0744abf4560ad239b6e3bd7c8b5..999fd5d8a92e91c50ca723311fd89b729591bc0e 100644 --- a/glslang/MachineIndependent/Intermediate.cpp +++ b/glslang/MachineIndependent/Intermediate.cpp @@ -45,6 +45,7 @@ #include "propagateNoContraction.h" #include <cfloat> +#include <utility> namespace glslang { @@ -73,6 +74,16 @@ TIntermSymbol* TIntermediate::addSymbol(int id, const TString& name, const TType return node; } +TIntermSymbol* TIntermediate::addSymbol(const TIntermSymbol& intermSymbol) +{ + return addSymbol(intermSymbol.getId(), + intermSymbol.getName(), + intermSymbol.getType(), + intermSymbol.getConstArray(), + intermSymbol.getConstSubtree(), + intermSymbol.getLoc()); +} + TIntermSymbol* TIntermediate::addSymbol(const TVariable& variable) { glslang::TSourceLoc loc; // just a null location @@ -104,7 +115,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn { // No operations work on blocks if (left->getType().getBasicType() == EbtBlock || right->getType().getBasicType() == EbtBlock) - return 0; + return nullptr; // Try converting the children's base types to compatible types. TIntermTyped* child = addConversion(op, left->getType(), right); @@ -115,7 +126,7 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn if (child) left = child; else - return 0; + return nullptr; } // Convert the children's type shape to be compatible. @@ -126,15 +137,9 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn // Need a new node holding things together. Make // one and promote it to the right type. // - TIntermBinary* node = new TIntermBinary(op); - if (loc.line == 0) - loc = right->getLoc(); - node->setLoc(loc); - - node->setLeft(left); - node->setRight(right); - if (! node->promote()) - return 0; + TIntermBinary* node = addBinaryNode(op, left, right, loc); + if (! promote(node)) + return nullptr; node->updatePrecision(); @@ -162,6 +167,56 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn return node; } +// +// Low level: add binary node (no promotions or other argument modifications) +// +TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc) const +{ + // build the node + TIntermBinary* node = new TIntermBinary(op); + if (loc.line == 0) + loc = left->getLoc(); + node->setLoc(loc); + node->setLeft(left); + node->setRight(right); + + return node; +} + +// +// like non-type form, but sets node's type. +// +TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc loc, const TType& type) const +{ + TIntermBinary* node = addBinaryNode(op, left, right, loc); + node->setType(type); + return node; +} + +// +// Low level: add unary node (no promotions or other argument modifications) +// +TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc) const +{ + TIntermUnary* node = new TIntermUnary(op); + if (loc.line == 0) + loc = child->getLoc(); + node->setLoc(loc); + node->setOperand(child); + + return node; +} + +// +// like non-type form, but sets node's type. +// +TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc loc, const TType& type) const +{ + TIntermUnary* node = addUnaryNode(op, child, loc); + node->setType(type); + return node; +} + // // Connect two nodes through an assignment. // @@ -190,14 +245,9 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm right = addShapeConversion(op, left->getType(), right); // build the node - TIntermBinary* node = new TIntermBinary(op); - if (loc.line == 0) - loc = left->getLoc(); - node->setLoc(loc); - node->setLeft(left); - node->setRight(right); + TIntermBinary* node = addBinaryNode(op, left, right, loc); - if (! node->promote()) + if (! promote(node)) return nullptr; node->updatePrecision(); @@ -214,16 +264,8 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm // TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermTyped* index, TSourceLoc loc) { - TIntermBinary* node = new TIntermBinary(op); - if (loc.line == 0) - loc = index->getLoc(); - node->setLoc(loc); - node->setLeft(base); - node->setRight(index); - // caller should set the type - - return node; + return addBinaryNode(op, base, index, loc); } // @@ -234,15 +276,19 @@ TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermT TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSourceLoc loc) { if (child == 0) - return 0; + return nullptr; if (child->getType().getBasicType() == EbtBlock) - return 0; + return nullptr; switch (op) { case EOpLogicalNot: + if (source == EShSourceHlsl) { + break; // HLSL can promote logical not + } + if (child->getType().getBasicType() != EbtBool || child->getType().isMatrix() || child->getType().isArray() || child->getType().isVector()) { - return 0; + return nullptr; } break; @@ -252,7 +298,7 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpPreDecrement: case EOpNegative: if (child->getType().getBasicType() == EbtStruct || child->getType().isArray()) - return 0; + return nullptr; default: break; // some compilers want this } @@ -268,6 +314,9 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpConstructBool: newType = EbtBool; break; case EOpConstructFloat: newType = EbtFloat; break; case EOpConstructDouble: newType = EbtDouble; break; +#ifdef AMD_EXTENSIONS + case EOpConstructFloat16: newType = EbtFloat16; break; +#endif default: break; // some compilers want this } @@ -277,8 +326,8 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo child->getMatrixRows(), child->isVector()), child); - if (child == 0) - return 0; + if (child == nullptr) + return nullptr; } // @@ -293,6 +342,9 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo case EOpConstructBool: case EOpConstructFloat: case EOpConstructDouble: +#ifdef AMD_EXTENSIONS + case EOpConstructFloat16: +#endif return child; default: break; // some compilers want this } @@ -300,14 +352,10 @@ TIntermTyped* TIntermediate::addUnaryMath(TOperator op, TIntermTyped* child, TSo // // Make a new node for the operator. // - TIntermUnary* node = new TIntermUnary(op); - if (loc.line == 0) - loc = child->getLoc(); - node->setLoc(loc); - node->setOperand(child); + TIntermUnary* node = addUnaryNode(op, child, loc); - if (! node->promote()) - return 0; + if (! promote(node)) + return nullptr; node->updatePrecision(); @@ -332,8 +380,8 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOper // including constness (which would differ from the prototype). // TIntermTyped* child = childNode->getAsTyped(); - if (child == 0) - return 0; + if (child == nullptr) + return nullptr; if (child->getAsConstantUnion()) { TIntermTyped* folded = child->getAsConstantUnion()->fold(op, returnType); @@ -341,12 +389,7 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOper return folded; } - TIntermUnary* node = new TIntermUnary(op); - node->setLoc(child->getLoc()); - node->setOperand(child); - node->setType(returnType); - - return node; + return addUnaryNode(op, child, child->getLoc(), returnType); } else { // setAggregateOperater() calls fold() for constant folding TIntermTyped* node = setAggregateOperator(childNode, op, returnType, loc); @@ -374,7 +417,7 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o // if (node) { aggNode = node->getAsAggregate(); - if (aggNode == 0 || aggNode->getOp() != EOpNull) { + if (aggNode == nullptr || aggNode->getOp() != EOpNull) { // // Make an aggregate containing this node. // @@ -409,7 +452,7 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o // Generally, this is focused on basic type conversion, not shape conversion. // See addShapeConversion(). // -// Return 0 if a conversion can't be done. +// Return nullptr if a conversion can't be done. // TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TIntermTyped* node) const { @@ -418,12 +461,17 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // switch (node->getBasicType()) { case EbtVoid: - return 0; + return nullptr; case EbtAtomicUint: case EbtSampler: // opaque types can be passed to functions if (op == EOpFunction) break; + + // HLSL can assign samplers directly (no constructor) + if (source == EShSourceHlsl && node->getBasicType() == EbtSampler) + break; + // samplers can get assigned via a sampler constructor // (well, not yet, but code in the rest of this function is ready for it) if (node->getBasicType() == EbtSampler && op == EOpAssign && @@ -431,7 +479,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt break; // otherwise, opaque types can't even be operated on, let alone converted - return 0; + return nullptr; default: break; } @@ -442,11 +490,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // If one's a structure, then no conversions. if (type.isStruct() || node->isStruct()) - return 0; + return nullptr; // If one's an array, then no conversions. if (type.isArray() || node->getType().isArray()) - return 0; + return nullptr; // Note: callers are responsible for other aspects of shape, // like vector and matrix sizes. @@ -466,6 +514,11 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpConstructDouble: promoteTo = EbtDouble; break; +#ifdef AMD_EXTENSIONS + case EOpConstructFloat16: + promoteTo = EbtFloat16; + break; +#endif case EOpConstructInt: promoteTo = EbtInt; break; @@ -507,6 +560,10 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + case EOpLogicalNot: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: case EOpFunctionCall: case EOpReturn: @@ -519,6 +576,27 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EOpDivAssign: case EOpModAssign: + case EOpAtan: + case EOpClamp: + case EOpCross: + case EOpDistance: + case EOpDot: + case EOpDst: + case EOpFaceForward: + case EOpFma: + case EOpFrexp: + case EOpLdexp: + case EOpMix: + case EOpLit: + case EOpMax: + case EOpMin: + case EOpModf: + case EOpPow: + case EOpReflect: + case EOpRefract: + case EOpSmoothStep: + case EOpStep: + case EOpSequence: case EOpConstructStruct: @@ -528,7 +606,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt if (canImplicitlyPromote(node->getType().getBasicType(), type.getBasicType(), op)) promoteTo = type.getBasicType(); else - return 0; + return nullptr; break; @@ -550,7 +628,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt return node; else - return 0; + return nullptr; default: // default is to require a match; all exceptions should have case statements above @@ -558,7 +636,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt if (type.getBasicType() == node->getType().getBasicType()) return node; else - return 0; + return nullptr; } if (node->getAsConstantUnion()) @@ -567,7 +645,7 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt // // Add a new newNode for the conversion. // - TIntermUnary* newNode = 0; + TIntermUnary* newNode = nullptr; TOperator newOp = EOpNull; @@ -580,10 +658,13 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtUint: newOp = EOpConvUintToDouble; break; case EbtBool: newOp = EOpConvBoolToDouble; break; case EbtFloat: newOp = EOpConvFloatToDouble; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToDouble; break; +#endif case EbtInt64: newOp = EOpConvInt64ToDouble; break; case EbtUint64: newOp = EOpConvUint64ToDouble; break; default: - return 0; + return nullptr; } break; case EbtFloat: @@ -592,22 +673,43 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtUint: newOp = EOpConvUintToFloat; break; case EbtBool: newOp = EOpConvBoolToFloat; break; case EbtDouble: newOp = EOpConvDoubleToFloat; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToFloat; break; +#endif case EbtInt64: newOp = EOpConvInt64ToFloat; break; case EbtUint64: newOp = EOpConvUint64ToFloat; break; default: - return 0; + return nullptr; } break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: + switch (node->getBasicType()) { + case EbtInt: newOp = EOpConvIntToFloat16; break; + case EbtUint: newOp = EOpConvUintToFloat16; break; + case EbtBool: newOp = EOpConvBoolToFloat16; break; + case EbtFloat: newOp = EOpConvFloatToFloat16; break; + case EbtDouble: newOp = EOpConvDoubleToFloat16; break; + case EbtInt64: newOp = EOpConvInt64ToFloat16; break; + case EbtUint64: newOp = EOpConvUint64ToFloat16; break; + default: + return nullptr; + } + break; +#endif case EbtBool: switch (node->getBasicType()) { case EbtInt: newOp = EOpConvIntToBool; break; case EbtUint: newOp = EOpConvUintToBool; break; case EbtFloat: newOp = EOpConvFloatToBool; break; case EbtDouble: newOp = EOpConvDoubleToBool; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToBool; break; +#endif case EbtInt64: newOp = EOpConvInt64ToBool; break; case EbtUint64: newOp = EOpConvUint64ToBool; break; default: - return 0; + return nullptr; } break; case EbtInt: @@ -616,10 +718,13 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtBool: newOp = EOpConvBoolToInt; break; case EbtFloat: newOp = EOpConvFloatToInt; break; case EbtDouble: newOp = EOpConvDoubleToInt; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToInt; break; +#endif case EbtInt64: newOp = EOpConvInt64ToInt; break; case EbtUint64: newOp = EOpConvUint64ToInt; break; default: - return 0; + return nullptr; } break; case EbtUint: @@ -628,10 +733,13 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtBool: newOp = EOpConvBoolToUint; break; case EbtFloat: newOp = EOpConvFloatToUint; break; case EbtDouble: newOp = EOpConvDoubleToUint; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToUint; break; +#endif case EbtInt64: newOp = EOpConvInt64ToUint; break; case EbtUint64: newOp = EOpConvUint64ToUint; break; default: - return 0; + return nullptr; } break; case EbtInt64: @@ -641,9 +749,12 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtBool: newOp = EOpConvBoolToInt64; break; case EbtFloat: newOp = EOpConvFloatToInt64; break; case EbtDouble: newOp = EOpConvDoubleToInt64; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToInt64; break; +#endif case EbtUint64: newOp = EOpConvUint64ToInt64; break; default: - return 0; + return nullptr; } break; case EbtUint64: @@ -653,19 +764,20 @@ TIntermTyped* TIntermediate::addConversion(TOperator op, const TType& type, TInt case EbtBool: newOp = EOpConvBoolToUint64; break; case EbtFloat: newOp = EOpConvFloatToUint64; break; case EbtDouble: newOp = EOpConvDoubleToUint64; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: newOp = EOpConvFloat16ToUint64; break; +#endif case EbtInt64: newOp = EOpConvInt64ToUint64; break; default: - return 0; + return nullptr; } break; default: - return 0; + return nullptr; } TType newType(promoteTo, EvqTemporary, node->getVectorSize(), node->getMatrixCols(), node->getMatrixRows()); - newNode = new TIntermUnary(newOp, newType); - newNode->setLoc(node->getLoc()); - newNode->setOperand(node); + newNode = addUnaryNode(newOp, node, node->getLoc(), newType); // TODO: it seems that some unary folding operations should occur here, but are not @@ -706,6 +818,10 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, case EOpEqual: case EOpNotEqual: case EOpFunctionCall: + case EOpReturn: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: break; default: return node; @@ -720,8 +836,10 @@ TIntermTyped* TIntermediate::addShapeConversion(TOperator op, const TType& type, TOperator constructorOp = mapTypeToConstructorOp(type); // scalar -> smeared -> vector, or + // vec1 -> scalar, or // bigger vector -> smaller vector or scalar if ((type.isVector() && node->getType().isScalar()) || + (node->getType().isVector() && node->getVectorSize() == 1 && type.isScalar()) || (node->getVectorSize() > type.getVectorSize() && type.isVector())) return setAggregateOperator(makeAggregate(node), constructorOp, type, node->getLoc()); @@ -737,6 +855,9 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat if (profile == EEsProfile || version == 110) return false; + if (from == to) + return true; + // TODO: Move more policies into language-specific handlers. // Some languages allow more general (or potentially, more specific) conversions under some conditions. if (source == EShSourceHlsl) { @@ -758,6 +879,11 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EOpModAssign: // ... case EOpReturn: // function returns can also perform arbitrary conversions case EOpFunctionCall: // conversion of a calling parameter + case EOpLogicalNot: + case EOpLogicalAnd: + case EOpLogicalOr: + case EOpLogicalXor: + case EOpConstructStruct: return true; default: break; @@ -774,6 +900,9 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtUint64: case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif return true; default: return false; @@ -783,7 +912,12 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat case EbtInt: case EbtUint: case EbtFloat: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif return true; + case EbtBool: + return (source == EShSourceHlsl); default: return false; } @@ -793,6 +927,8 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat return version >= 400; case EbtUint: return true; + case EbtBool: + return (source == EShSourceHlsl); default: return false; } @@ -800,6 +936,8 @@ bool TIntermediate::canImplicitlyPromote(TBasicType from, TBasicType to, TOperat switch (from) { case EbtInt: return true; + case EbtBool: + return (source == EShSourceHlsl); default: return false; } @@ -918,6 +1056,47 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const } } break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: + if (type.getMatrixCols()) { + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructF16Mat2x2; break; + case 3: op = EOpConstructF16Mat2x3; break; + case 4: op = EOpConstructF16Mat2x4; break; + default: break; // some compilers want this + } + break; + case 3: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructF16Mat3x2; break; + case 3: op = EOpConstructF16Mat3x3; break; + case 4: op = EOpConstructF16Mat3x4; break; + default: break; // some compilers want this + } + break; + case 4: + switch (type.getMatrixRows()) { + case 2: op = EOpConstructF16Mat4x2; break; + case 3: op = EOpConstructF16Mat4x3; break; + case 4: op = EOpConstructF16Mat4x4; break; + default: break; // some compilers want this + } + break; + } + } + else { + switch (type.getVectorSize()) { + case 1: op = EOpConstructFloat16; break; + case 2: op = EOpConstructF16Vec2; break; + case 3: op = EOpConstructF16Vec3; break; + case 4: op = EOpConstructF16Vec4; break; + default: break; // some compilers want this + } + } + break; +#endif case EbtInt: switch(type.getVectorSize()) { case 1: op = EOpConstructInt; break; @@ -974,15 +1153,15 @@ TOperator TIntermediate::mapTypeToConstructorOp(const TType& type) const // Safe way to combine two nodes into an aggregate. Works with null pointers, // a node that's not a aggregate yet, etc. // -// Returns the resulting aggregate, unless 0 was passed in for +// Returns the resulting aggregate, unless nullptr was passed in for // both existing nodes. // TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* right) { - if (left == 0 && right == 0) - return 0; + if (left == nullptr && right == nullptr) + return nullptr; - TIntermAggregate* aggNode = 0; + TIntermAggregate* aggNode = nullptr; if (left) aggNode = left->getAsAggregate(); if (! aggNode || aggNode->getOp() != EOpNull) { @@ -1009,12 +1188,12 @@ TIntermAggregate* TIntermediate::growAggregate(TIntermNode* left, TIntermNode* r // // Turn an existing node into an aggregate. // -// Returns an aggregate, unless 0 was passed in for the existing node. +// Returns an aggregate, unless nullptr was passed in for the existing node. // TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node) { - if (node == 0) - return 0; + if (node == nullptr) + return nullptr; TIntermAggregate* aggNode = new TIntermAggregate; aggNode->getSequence().push_back(node); @@ -1025,8 +1204,8 @@ TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node) TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node, const TSourceLoc& loc) { - if (node == 0) - return 0; + if (node == nullptr) + return nullptr; TIntermAggregate* aggNode = new TIntermAggregate; aggNode->getSequence().push_back(node); @@ -1035,6 +1214,17 @@ TIntermAggregate* TIntermediate::makeAggregate(TIntermNode* node, const TSourceL return aggNode; } +// +// Make an aggregate with an empty sequence. +// +TIntermAggregate* TIntermediate::makeAggregate(const TSourceLoc& loc) +{ + TIntermAggregate* aggNode = new TIntermAggregate; + aggNode->setLoc(loc); + + return aggNode; +} + // // For "if" test nodes. There are three children; a condition, // a true path, and a false path. The two paths are in the @@ -1088,7 +1278,7 @@ TIntermTyped* TIntermediate::addMethod(TIntermTyped* object, const TType& type, // a true path, and a false path. The two paths are specified // as separate parameters. // -// Returns the selection node created, or 0 if one could not be. +// Returns the selection node created, or nullptr if one could not be. // TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, const TSourceLoc& loc) { @@ -1103,12 +1293,12 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true if (child) trueBlock = child; else - return 0; + return nullptr; } // After conversion, types have to match. if (falseBlock->getType() != trueBlock->getType()) - return 0; + return nullptr; // // See if all the operands are constant, then fold it otherwise not. @@ -1191,7 +1381,11 @@ TIntermConstantUnion* TIntermediate::addConstantUnion(bool b, const TSourceLoc& TIntermConstantUnion* TIntermediate::addConstantUnion(double d, TBasicType baseType, const TSourceLoc& loc, bool literal) const { +#ifdef AMD_EXTENSIONS + assert(baseType == EbtFloat || baseType == EbtDouble || baseType == EbtFloat16); +#else assert(baseType == EbtFloat || baseType == EbtDouble); +#endif TConstUnionArray unionArray(1); unionArray[0].setDConst(d); @@ -1278,7 +1472,7 @@ TIntermAggregate* TIntermediate::addForLoop(TIntermNode* body, TIntermNode* init // TIntermBranch* TIntermediate::addBranch(TOperator branchOp, const TSourceLoc& loc) { - return addBranch(branchOp, 0, loc); + return addBranch(branchOp, nullptr, loc); } TIntermBranch* TIntermediate::addBranch(TOperator branchOp, TIntermTyped* expression, const TSourceLoc& loc) @@ -1295,7 +1489,7 @@ TIntermBranch* TIntermediate::addBranch(TOperator branchOp, TIntermTyped* expres // bool TIntermediate::postProcess(TIntermNode* root, EShLanguage /*language*/) { - if (root == 0) + if (root == nullptr) return true; // Finish off the top-level sequence @@ -1446,6 +1640,12 @@ bool TIntermediate::isSpecializationOperation(const TIntermOperator& node) const case EOpVectorSwizzle: case EOpConvFloatToDouble: case EOpConvDoubleToFloat: +#ifdef AMD_EXTENSIONS + case EOpConvFloat16ToFloat: + case EOpConvFloatToFloat16: + case EOpConvFloat16ToDouble: + case EOpConvDoubleToFloat16: +#endif return true; default: return false; @@ -1571,18 +1771,49 @@ bool TIntermOperator::isConstructor() const } // -// Make sure the type of a unary operator is appropriate for its -// combination of operation and operand type. +// Make sure the type of an operator is appropriate for its +// combination of operation and operand type. This will invoke +// promoteUnary, promoteBinary, etc as needed. // -// Returns false in nothing makes sense. +// Returns false if nothing makes sense. // -bool TIntermUnary::promote() +bool TIntermediate::promote(TIntermOperator* node) { + if (node == nullptr) + return false; + + if (node->getAsUnaryNode()) + return promoteUnary(*node->getAsUnaryNode()); + + if (node->getAsBinaryNode()) + return promoteBinary(*node->getAsBinaryNode()); + + if (node->getAsAggregate()) + return promoteAggregate(*node->getAsAggregate()); + + return false; +} + +// +// See TIntermediate::promote +// +bool TIntermediate::promoteUnary(TIntermUnary& node) +{ + const TOperator op = node.getOp(); + TIntermTyped* operand = node.getOperand(); + switch (op) { case EOpLogicalNot: - if (operand->getBasicType() != EbtBool) + // Convert operand to a boolean type + if (operand->getBasicType() != EbtBool) { + // Add constructor to boolean type. If that fails, we can't do it, so return false. + TIntermTyped* converted = convertToBasicType(op, EbtBool, operand); + if (converted == nullptr) + return false; - return false; + // Use the result of converting the node to a bool. + node.setOperand(operand = converted); // also updates stack variable + } break; case EOpBitwiseNot: if (operand->getBasicType() != EbtInt && @@ -1602,6 +1833,9 @@ bool TIntermUnary::promote() operand->getBasicType() != EbtInt64 && operand->getBasicType() != EbtUint64 && operand->getBasicType() != EbtFloat && +#ifdef AMD_EXTENSIONS + operand->getBasicType() != EbtFloat16 && +#endif operand->getBasicType() != EbtDouble) return false; @@ -1613,28 +1847,51 @@ bool TIntermUnary::promote() return false; } - setType(operand->getType()); - getWritableType().getQualifier().makeTemporary(); + node.setType(operand->getType()); + node.getWritableType().getQualifier().makeTemporary(); return true; } void TIntermUnary::updatePrecision() { +#ifdef AMD_EXTENSIONS + if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { +#else if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat) { +#endif if (operand->getQualifier().precision > getQualifier().precision) getQualifier().precision = operand->getQualifier().precision; } } +// If it is not already, convert this node to the given basic type. +TIntermTyped* TIntermediate::convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const +{ + if (node == nullptr) + return nullptr; + + // It's already this basic type: nothing needs to be done, so use the node directly. + if (node->getBasicType() == basicType) + return node; + + const TType& type = node->getType(); + const TType newType(basicType, type.getQualifier().storage, + type.getVectorSize(), type.getMatrixCols(), type.getMatrixRows(), type.isVector()); + + // Add constructor to the right vectorness of the right type. If that fails, we can't do it, so return nullptr. + return addConversion(op, newType, node); +} + // -// Establishes the type of the resultant operation, as well as -// makes the operator the correct one for the operands. -// -// Returns false if operator can't work on operands. +// See TIntermediate::promote // -bool TIntermBinary::promote() +bool TIntermediate::promoteBinary(TIntermBinary& node) { + TOperator op = node.getOp(); + TIntermTyped* left = node.getLeft(); + TIntermTyped* right = node.getRight(); + // Arrays and structures have to be exact matches. if ((left->isArray() || right->isArray() || left->getBasicType() == EbtStruct || right->getBasicType() == EbtStruct) && left->getType() != right->getType()) @@ -1642,8 +1899,8 @@ bool TIntermBinary::promote() // Base assumption: just make the type the same as the left // operand. Only deviations from this will be coded. - setType(left->getType()); - type.getQualifier().clear(); + node.setType(left->getType()); + node.getWritableType().getQualifier().clear(); // Composite and opaque types don't having pending operator changes, e.g., // array, structure, and samplers. Just establish final type and correctness. @@ -1656,7 +1913,7 @@ bool TIntermBinary::promote() return false; } else { // Promote to conditional - setType(TType(EbtBool)); + node.setType(TType(EbtBool)); } return true; @@ -1684,23 +1941,46 @@ bool TIntermBinary::promote() // Relational comparisons need numeric types and will promote to scalar Boolean. if (left->getBasicType() == EbtBool) return false; - setType(TType(EbtBool)); + + node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize())); break; case EOpEqual: case EOpNotEqual: - // All the above comparisons result in a bool (but not the vector compares) - setType(TType(EbtBool)); + if (getSource() == EShSourceHlsl) { + const int resultWidth = std::max(left->getVectorSize(), right->getVectorSize()); + + // In HLSL, == or != on vectors means component-wise comparison. + if (resultWidth > 1) { + op = (op == EOpEqual) ? EOpVectorEqual : EOpVectorNotEqual; + node.setOp(op); + } + + node.setType(TType(EbtBool, EvqTemporary, resultWidth)); + } else { + // All the above comparisons result in a bool (but not the vector compares) + node.setType(TType(EbtBool)); + } break; case EOpLogicalAnd: case EOpLogicalOr: case EOpLogicalXor: - // logical ops operate only on scalar Booleans and will promote to scalar Boolean. - if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) - return false; + if (getSource() == EShSourceHlsl) { + TIntermTyped* convertedL = convertToBasicType(op, EbtBool, left); + TIntermTyped* convertedR = convertToBasicType(op, EbtBool, right); + if (convertedL == nullptr || convertedR == nullptr) + return false; + node.setLeft(left = convertedL); // also updates stack variable + node.setRight(right = convertedR); // also updates stack variable + } else { + // logical ops operate only on scalar Booleans and will promote to scalar Boolean. + if (left->getBasicType() != EbtBool || left->isVector() || left->isMatrix()) + return false; + } + + node.setType(TType(EbtBool, EvqTemporary, left->getVectorSize())); - setType(TType(EbtBool)); break; case EOpRightShift: @@ -1717,6 +1997,9 @@ bool TIntermBinary::promote() case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + if (getSource() == EShSourceHlsl) + break; + // Check for integer-only operands. if ((left->getBasicType() != EbtInt && left->getBasicType() != EbtUint && left->getBasicType() != EbtInt64 && left->getBasicType() != EbtUint64) || @@ -1753,6 +2036,8 @@ bool TIntermBinary::promote() case EOpEqual: case EOpNotEqual: + case EOpVectorEqual: + case EOpVectorNotEqual: case EOpLogicalAnd: case EOpLogicalOr: @@ -1813,33 +2098,33 @@ bool TIntermBinary::promote() if (left->isVector()) { if (left->getVectorSize() != right->getMatrixRows()) return false; - op = EOpVectorTimesMatrix; - setType(TType(basicType, EvqTemporary, right->getMatrixCols())); + node.setOp(op = EOpVectorTimesMatrix); + node.setType(TType(basicType, EvqTemporary, right->getMatrixCols())); } else { - op = EOpMatrixTimesScalar; - setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows())); + node.setOp(op = EOpMatrixTimesScalar); + node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), right->getMatrixRows())); } } else if (left->isMatrix() && !right->isMatrix()) { if (right->isVector()) { if (left->getMatrixCols() != right->getVectorSize()) return false; - op = EOpMatrixTimesVector; - setType(TType(basicType, EvqTemporary, left->getMatrixRows())); + node.setOp(op = EOpMatrixTimesVector); + node.setType(TType(basicType, EvqTemporary, left->getMatrixRows())); } else { - op = EOpMatrixTimesScalar; + node.setOp(op = EOpMatrixTimesScalar); } } else if (left->isMatrix() && right->isMatrix()) { if (left->getMatrixCols() != right->getMatrixRows()) return false; - op = EOpMatrixTimesMatrix; - setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows())); + node.setOp(op = EOpMatrixTimesMatrix); + node.setType(TType(basicType, EvqTemporary, 0, right->getMatrixCols(), left->getMatrixRows())); } else if (! left->isMatrix() && ! right->isMatrix()) { if (left->isVector() && right->isVector()) { ; // leave as component product } else if (left->isVector() || right->isVector()) { - op = EOpVectorTimesScalar; + node.setOp(op = EOpVectorTimesScalar); if (right->isVector()) - setType(TType(basicType, EvqTemporary, right->getVectorSize())); + node.setType(TType(basicType, EvqTemporary, right->getVectorSize())); } } else { return false; @@ -1850,7 +2135,7 @@ bool TIntermBinary::promote() if (left->isVector()) { if (left->getVectorSize() != right->getMatrixRows() || left->getVectorSize() != right->getMatrixCols()) return false; - op = EOpVectorTimesMatrixAssign; + node.setOp(op = EOpVectorTimesMatrixAssign); } else { return false; } @@ -1858,19 +2143,19 @@ bool TIntermBinary::promote() if (right->isVector()) { return false; } else { - op = EOpMatrixTimesScalarAssign; + node.setOp(op = EOpMatrixTimesScalarAssign); } } else if (left->isMatrix() && right->isMatrix()) { if (left->getMatrixCols() != left->getMatrixRows() || left->getMatrixCols() != right->getMatrixCols() || left->getMatrixCols() != right->getMatrixRows()) return false; - op = EOpMatrixTimesMatrixAssign; + node.setOp(op = EOpMatrixTimesMatrixAssign); } else if (!left->isMatrix() && !right->isMatrix()) { if (left->isVector() && right->isVector()) { // leave as component product } else if (left->isVector() || right->isVector()) { if (! left->isVector()) return false; - op = EOpVectorTimesScalarAssign; + node.setOp(op = EOpVectorTimesScalarAssign); } } else { return false; @@ -1904,6 +2189,7 @@ bool TIntermBinary::promote() case EOpAndAssign: case EOpInclusiveOrAssign: case EOpExclusiveOrAssign: + if ((left->isMatrix() && right->isVector()) || (left->isVector() && right->isMatrix()) || left->getBasicType() != right->getBasicType()) @@ -1913,8 +2199,8 @@ bool TIntermBinary::promote() if (left->isVector() && right->isVector() && left->getVectorSize() != right->getVectorSize()) return false; if (right->isVector() || right->isMatrix()) { - type.shallowCopy(right->getType()); - type.getQualifier().makeTemporary(); + node.getWritableType().shallowCopy(right->getType()); + node.getWritableType().getQualifier().makeTemporary(); } break; @@ -1938,7 +2224,7 @@ bool TIntermBinary::promote() case EOpExclusiveOrAssign: case EOpLeftShiftAssign: case EOpRightShiftAssign: - if (getType() != left->getType()) + if (node.getType() != left->getType()) return false; break; default: @@ -1948,9 +2234,84 @@ bool TIntermBinary::promote() return true; } +// +// See TIntermediate::promote +// +bool TIntermediate::promoteAggregate(TIntermAggregate& node) +{ + TOperator op = node.getOp(); + TIntermSequence& args = node.getSequence(); + const int numArgs = static_cast<int>(args.size()); + + // Presently, only hlsl does intrinsic promotions. + if (getSource() != EShSourceHlsl) + return true; + + // set of opcodes that can be promoted in this manner. + switch (op) { + case EOpAtan: + case EOpClamp: + case EOpCross: + case EOpDistance: + case EOpDot: + case EOpDst: + case EOpFaceForward: + // case EOpFindMSB: TODO: ?? + // case EOpFindLSB: TODO: ?? + case EOpFma: + case EOpMod: + case EOpFrexp: + case EOpLdexp: + case EOpMix: + case EOpLit: + case EOpMax: + case EOpMin: + case EOpModf: + // case EOpGenMul: TODO: ?? + case EOpPow: + case EOpReflect: + case EOpRefract: + // case EOpSinCos: TODO: ?? + case EOpSmoothStep: + case EOpStep: + break; + default: + return true; + } + + // TODO: array and struct behavior + + // Try converting all nodes to the given node's type + TIntermSequence convertedArgs(numArgs, nullptr); + + // Try to convert all types to the nonConvArg type. + for (int nonConvArg = 0; nonConvArg < numArgs; ++nonConvArg) { + // Try converting all args to this arg's type + for (int convArg = 0; convArg < numArgs; ++convArg) { + convertedArgs[convArg] = addConversion(op, args[nonConvArg]->getAsTyped()->getType(), + args[convArg]->getAsTyped()); + } + + // If we successfully converted all the args, use the result. + if (std::all_of(convertedArgs.begin(), convertedArgs.end(), + [](const TIntermNode* node) { return node != nullptr; })) { + + std::swap(args, convertedArgs); + return true; + } + } + + return false; +} + + void TIntermBinary::updatePrecision() { +#ifdef AMD_EXTENSIONS + if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat || getBasicType() == EbtFloat16) { +#else if (getBasicType() == EbtInt || getBasicType() == EbtUint || getBasicType() == EbtFloat) { +#endif getQualifier().precision = std::max(right->getQualifier().precision, left->getQualifier().precision); if (getQualifier().precision != EpqNone) { left->propagatePrecision(getQualifier().precision); @@ -1961,7 +2322,11 @@ void TIntermBinary::updatePrecision() void TIntermTyped::propagatePrecision(TPrecisionQualifier newPrecision) { +#ifdef AMD_EXTENSIONS + if (getQualifier().precision != EpqNone || (getBasicType() != EbtInt && getBasicType() != EbtUint && getBasicType() != EbtFloat && getBasicType() != EbtFloat16)) +#else if (getQualifier().precision != EpqNone || (getBasicType() != EbtInt && getBasicType() != EbtUint && getBasicType() != EbtFloat)) +#endif return; getQualifier().precision = newPrecision; @@ -2035,16 +2400,46 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC leftUnionArray[i].setDConst(static_cast<double>(rightUnionArray[i].getBConst())); break; case EbtFloat: + case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i] = rightUnionArray[i]; break; + default: + return node; + } + break; + case EbtDouble: + switch (node->getType().getBasicType()) { + case EbtInt: + leftUnionArray[i].setDConst(static_cast<double>(rightUnionArray[i].getIConst())); + break; + case EbtUint: + leftUnionArray[i].setDConst(static_cast<double>(rightUnionArray[i].getUConst())); + break; + case EbtInt64: + leftUnionArray[i].setDConst(static_cast<double>(rightUnionArray[i].getI64Const())); + break; + case EbtUint64: + leftUnionArray[i].setDConst(static_cast<double>(rightUnionArray[i].getU64Const())); + break; + case EbtBool: + leftUnionArray[i].setDConst(static_cast<double>(rightUnionArray[i].getBConst())); + break; + case EbtFloat: case EbtDouble: - leftUnionArray[i].setDConst(static_cast<double>(rightUnionArray[i].getDConst())); +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif + leftUnionArray[i] = rightUnionArray[i]; break; default: return node; } break; - case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: switch (node->getType().getBasicType()) { case EbtInt: leftUnionArray[i].setDConst(static_cast<double>(rightUnionArray[i].getIConst())); @@ -2063,12 +2458,14 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: + case EbtFloat16: leftUnionArray[i] = rightUnionArray[i]; break; default: return node; } break; +#endif case EbtInt: switch (node->getType().getBasicType()) { case EbtInt: @@ -2088,6 +2485,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setIConst(static_cast<int>(rightUnionArray[i].getDConst())); break; default: @@ -2113,6 +2513,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setUConst(static_cast<unsigned int>(rightUnionArray[i].getDConst())); break; default: @@ -2138,6 +2541,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setBConst(rightUnionArray[i].getDConst() != 0.0); break; default: @@ -2163,6 +2569,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setI64Const(static_cast<long long>(rightUnionArray[i].getDConst())); break; default: @@ -2188,6 +2597,9 @@ TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermC break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif leftUnionArray[i].setU64Const(static_cast<unsigned long long>(rightUnionArray[i].getDConst())); break; default: diff --git a/glslang/MachineIndependent/LiveTraverser.h b/glslang/MachineIndependent/LiveTraverser.h index 5a902049e3f4ec4537cc7d6743bf4c1b2a513b2b..286efe6ceff8a45be89bc7dae10aae60f2f166a7 100644 --- a/glslang/MachineIndependent/LiveTraverser.h +++ b/glslang/MachineIndependent/LiveTraverser.h @@ -56,7 +56,9 @@ namespace glslang { class TLiveTraverser : public TIntermTraverser { public: - TLiveTraverser(const TIntermediate& i, bool traverseAll = false) : + TLiveTraverser(const TIntermediate& i, bool traverseAll = false, + bool preVisit = true, bool inVisit = false, bool postVisit = false) : + TIntermTraverser(preVisit, inVisit, postVisit), intermediate(i), traverseAll(traverseAll) { } diff --git a/glslang/MachineIndependent/ParseContextBase.cpp b/glslang/MachineIndependent/ParseContextBase.cpp index 4c1d02a884ed56d46d4f68ec99303faa1597d47c..d86e19d2406b0c68d533ae4309047033071b85e1 100644 --- a/glslang/MachineIndependent/ParseContextBase.cpp +++ b/glslang/MachineIndependent/ParseContextBase.cpp @@ -36,12 +36,244 @@ // Implement the TParseContextBase class. +#include <cstdarg> + #include "ParseHelper.h" extern int yyparse(glslang::TParseContext*); namespace glslang { +// +// Used to output syntax, parsing, and semantic errors. +// + +void TParseContextBase::outputMessage(const TSourceLoc& loc, const char* szReason, + const char* szToken, + const char* szExtraInfoFormat, + TPrefixType prefix, va_list args) +{ + const int maxSize = MaxTokenLength + 200; + char szExtraInfo[maxSize]; + + safe_vsprintf(szExtraInfo, maxSize, szExtraInfoFormat, args); + + infoSink.info.prefix(prefix); + infoSink.info.location(loc); + infoSink.info << "'" << szToken << "' : " << szReason << " " << szExtraInfo << "\n"; + + if (prefix == EPrefixError) { + ++numErrors; + } +} + +void C_DECL TParseContextBase::error(const TSourceLoc& loc, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...) +{ + if (messages & EShMsgOnlyPreprocessor) + return; + va_list args; + va_start(args, szExtraInfoFormat); + outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); + va_end(args); + + if ((messages & EShMsgCascadingErrors) == 0) + currentScanner->setEndOfInput(); +} + +void C_DECL TParseContextBase::warn(const TSourceLoc& loc, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...) +{ + if (suppressWarnings()) + return; + va_list args; + va_start(args, szExtraInfoFormat); + outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); + va_end(args); +} + +void C_DECL TParseContextBase::ppError(const TSourceLoc& loc, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...) +{ + va_list args; + va_start(args, szExtraInfoFormat); + outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); + va_end(args); + + if ((messages & EShMsgCascadingErrors) == 0) + currentScanner->setEndOfInput(); +} + +void C_DECL TParseContextBase::ppWarn(const TSourceLoc& loc, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...) +{ + va_list args; + va_start(args, szExtraInfoFormat); + outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); + va_end(args); +} + +// +// Both test and if necessary, spit out an error, to see if the node is really +// an l-value that can be operated on this way. +// +// Returns true if there was an error. +// +bool TParseContextBase::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + TIntermBinary* binaryNode = node->getAsBinaryNode(); + + if (binaryNode) { + switch(binaryNode->getOp()) { + case EOpIndexDirect: + case EOpIndexIndirect: // fall through + case EOpIndexDirectStruct: // fall through + case EOpVectorSwizzle: + return lValueErrorCheck(loc, op, binaryNode->getLeft()); + default: + break; + } + error(loc, " l-value required", op, "", ""); + + return true; + } + + const char* symbol = nullptr; + TIntermSymbol* symNode = node->getAsSymbolNode(); + if (symNode != nullptr) + symbol = symNode->getName().c_str(); + + const char* message = nullptr; + switch (node->getQualifier().storage) { + case EvqConst: message = "can't modify a const"; break; + case EvqConstReadOnly: message = "can't modify a const"; break; + case EvqUniform: message = "can't modify a uniform"; break; + case EvqBuffer: + if (node->getQualifier().readonly) + message = "can't modify a readonly buffer"; + break; + + default: + // + // Type that can't be written to? + // + switch (node->getBasicType()) { + case EbtSampler: + message = "can't modify a sampler"; + break; + case EbtAtomicUint: + message = "can't modify an atomic_uint"; + break; + case EbtVoid: + message = "can't modify void"; + break; + default: + break; + } + } + + if (message == nullptr && binaryNode == nullptr && symNode == nullptr) { + error(loc, " l-value required", op, "", ""); + + return true; + } + + // + // Everything else is okay, no error. + // + if (message == nullptr) + return false; + + // + // If we get here, we have an error and a message. + // + if (symNode) + error(loc, " l-value required", op, "\"%s\" (%s)", symbol, message); + else + error(loc, " l-value required", op, "(%s)", message); + + return true; +} + +// Test for and give an error if the node can't be read from. +void TParseContextBase::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + if (! node) + return; + + TIntermBinary* binaryNode = node->getAsBinaryNode(); + if (binaryNode) { + switch(binaryNode->getOp()) { + case EOpIndexDirect: + case EOpIndexIndirect: + case EOpIndexDirectStruct: + case EOpVectorSwizzle: + rValueErrorCheck(loc, op, binaryNode->getLeft()); + default: + break; + } + + return; + } + + TIntermSymbol* symNode = node->getAsSymbolNode(); + if (symNode && symNode->getQualifier().writeonly) + error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); +} + +// Add a linkage symbol node for 'symbol', which +// must have its type fully edited, as this will snapshot the type. +// It is okay if symbol becomes invalid before finish(). +void TParseContextBase::trackLinkage(TSymbol& symbol) +{ + if (!parsingBuiltins) + intermediate.addSymbolLinkageNode(linkage, symbol); +} + +// Add 'symbol' to the list of deferred linkage symbols, which +// are later processed in finish(), at which point the symbol +// must still be valid. +// It is okay if the symbol's type will be subsequently edited. +void TParseContextBase::trackLinkageDeferred(TSymbol& symbol) +{ + if (!parsingBuiltins) + linkageSymbols.push_back(&symbol); +} + +// Make a shared symbol have a non-shared version that can be edited by the current +// compile, such that editing its type will not change the shared version and will +// effect all nodes already sharing it (non-shallow type), +// or adopting its full type after being edited (shallow type). +void TParseContextBase::makeEditable(TSymbol*& symbol) +{ + // copyUp() does a deep copy of the type. + symbol = symbolTable.copyUp(symbol); + + // Save it (deferred, so it can be edited first) in the AST for linker use. + if (symbol) + trackLinkageDeferred(*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* TParseContextBase::getEditableVariable(const char* name) +{ + bool builtIn; + TSymbol* symbol = symbolTable.find(name, &builtIn); + + assert(symbol != nullptr); + if (symbol == nullptr) + return nullptr; + + if (builtIn) + makeEditable(symbol); + + return symbol->getAsVariable(); +} + // Select the best matching function for 'call' from 'candidateList'. // // Assumptions @@ -72,7 +304,7 @@ namespace glslang { const TFunction* TParseContextBase::selectFunction( const TVector<const TFunction*> candidateList, const TFunction& call, - std::function<bool(const TType& from, const TType& to)> convertible, + std::function<bool(const TType& from, const TType& to, TOperator op, int arg)> convertible, std::function<bool(const TType& from, const TType& to1, const TType& to2)> better, /* output */ bool& tie) { @@ -124,13 +356,13 @@ const TFunction* TParseContextBase::selectFunction( bool viable = true; for (int param = 0; param < candidate.getParamCount(); ++param) { if (candidate[param].type->getQualifier().isParamInput()) { - if (! convertible(*call[param].type, *candidate[param].type)) { + if (! convertible(*call[param].type, *candidate[param].type, candidate.getBuiltInOp(), param)) { viable = false; break; } } if (candidate[param].type->getQualifier().isParamOutput()) { - if (! convertible(*candidate[param].type, *call[param].type)) { + if (! convertible(*candidate[param].type, *call[param].type, candidate.getBuiltInOp(), param)) { viable = false; break; } @@ -150,7 +382,7 @@ const TFunction* TParseContextBase::selectFunction( return viableCandidates.front(); // 4. find best... - auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2){ + auto betterParam = [&call, &better](const TFunction& can1, const TFunction& can2) -> bool { // is call -> can2 better than call -> can1 for any parameter bool hasBetterParam = false; for (int param = 0; param < call.getParamCount(); ++param) { @@ -181,4 +413,70 @@ const TFunction* TParseContextBase::selectFunction( return incumbent; } +// +// Make the passed-in variable information become a member of the +// global uniform block. If this doesn't exist yet, make it. +// +void TParseContextBase::growGlobalUniformBlock(TSourceLoc& loc, TType& memberType, TString& memberName) +{ + // make the global block, if not yet made + if (globalUniformBlock == nullptr) { + TString& blockName = *NewPoolTString(getGlobalUniformBlockName()); + TQualifier blockQualifier; + blockQualifier.clear(); + blockQualifier.storage = EvqUniform; + TType blockType(new TTypeList, blockName, blockQualifier); + TString* instanceName = NewPoolTString(""); + globalUniformBlock = new TVariable(instanceName, blockType, true); + firstNewMember = 0; + } + + // add the requested member as a member to the block + TType* type = new TType; + type->shallowCopy(memberType); + type->setFieldName(memberName); + TTypeLoc typeLoc = {type, loc}; + globalUniformBlock->getType().getWritableStruct()->push_back(typeLoc); +} + +// +// Insert into the symbol table the global uniform block created in +// growGlobalUniformBlock(). The variables added as members won't be +// found unless this is done. +// +bool TParseContextBase::insertGlobalUniformBlock() +{ + if (globalUniformBlock == nullptr) + return true; + + int numMembers = (int)globalUniformBlock->getType().getStruct()->size(); + bool inserted = false; + if (firstNewMember == 0) { + // This is the first request; we need a normal symbol table insert + inserted = symbolTable.insert(*globalUniformBlock); + if (inserted) + trackLinkageDeferred(*globalUniformBlock); + } else if (firstNewMember <= numMembers) { + // This is a follow-on request; we need to amend the first insert + inserted = symbolTable.amend(*globalUniformBlock, firstNewMember); + } + + if (inserted) { + finalizeGlobalUniformBlockLayout(*globalUniformBlock); + firstNewMember = numMembers; + } + + return inserted; +} + +void TParseContextBase::finish() +{ + if (!parsingBuiltins) { + // Transfer the linkage symbols to AST nodes + for (auto i = linkageSymbols.begin(); i != linkageSymbols.end(); ++i) + intermediate.addSymbolLinkageNode(linkage, **i); + intermediate.addSymbolLinkageNodes(linkage, getLanguage(), symbolTable); + } +} + } // end namespace glslang diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index 3c9caf13d961e7d74ec7a6676e235bba1a4f00ed..ed043e0a01eee969f765e32b4fc68bd5ad1bc95b 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -39,7 +39,6 @@ #include "Scan.h" #include "../OSDependent/osinclude.h" -#include <cstdarg> #include <algorithm> #include "preprocessor/PpContext.h" @@ -51,15 +50,12 @@ namespace glslang { TParseContext::TParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : - TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), + TParseContextBase(symbolTable, interm, parsingBuiltins, 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), + limits(resources.limits), atomicUintOffsets(nullptr), anyIndexLimits(false) { - // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms - linkage = new TIntermAggregate; - // decide whether precision qualifiers should be ignored or respected if (profile == EEsProfile || spvVersion.vulkan > 0) { precisionManager.respectPrecisionQualifiers(); @@ -185,8 +181,8 @@ bool TParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& inp currentScanner = &input; ppContext.setInput(input, versionWillBeError); yyparse(this); - if (! parsingBuiltins) - finalErrorCheck(); + + finish(); return numErrors == 0; } @@ -362,81 +358,6 @@ bool TParseContext::parseVectorFields(const TSourceLoc& loc, const TString& comp return true; } -/////////////////////////////////////////////////////////////////////// -// -// Errors -// -//////////////////////////////////////////////////////////////////////// - -// -// Used to output syntax, parsing, and semantic errors. -// - -void TParseContext::outputMessage(const TSourceLoc& loc, const char* szReason, - const char* szToken, - const char* szExtraInfoFormat, - TPrefixType prefix, va_list args) -{ - const int maxSize = MaxTokenLength + 200; - char szExtraInfo[maxSize]; - - safe_vsprintf(szExtraInfo, maxSize, szExtraInfoFormat, args); - - infoSink.info.prefix(prefix); - infoSink.info.location(loc); - infoSink.info << "'" << szToken << "' : " << szReason << " " << szExtraInfo << "\n"; - - if (prefix == EPrefixError) { - ++numErrors; - } -} - -void C_DECL TParseContext::error(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (messages & EShMsgOnlyPreprocessor) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); - - if ((messages & EShMsgCascadingErrors) == 0) - currentScanner->setEndOfInput(); -} - -void C_DECL TParseContext::warn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (suppressWarnings()) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - -void C_DECL TParseContext::ppError(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); - - if ((messages & EShMsgCascadingErrors) == 0) - currentScanner->setEndOfInput(); -} - -void C_DECL TParseContext::ppWarn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - // // Handle seeing a variable identifier in the grammar. // @@ -457,7 +378,9 @@ TIntermTyped* TParseContext::handleVariable(const TSourceLoc& loc, TSymbol* symb // If this is a variable or a block, check it and all it contains, but if this // is a member of an anonymous block, check the whole block, as the whole block // will need to be copied up if it contains an implicitly-sized array. - if (symbol->getType().containsImplicitlySizedArray() || (symbol->getAsAnonMember() && symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray())) + if (symbol->getType().containsImplicitlySizedArray() || + (symbol->getAsAnonMember() && + symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray())) makeEditable(symbol); } @@ -558,7 +481,7 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn // input/output blocks either don't exist or can be variable indexed } } else if (language == EShLangFragment && base->getQualifier().isPipeOutput()) - requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader ouput array"); + requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader output array"); else if (base->getBasicType() == EbtSampler && version >= 130) { const char* explanation = "variable indexing sampler array"; requireProfile(base->getLoc(), EEsProfile | ECoreProfile | ECompatibilityProfile, explanation); @@ -640,35 +563,11 @@ void TParseContext::handleIndexLimits(const TSourceLoc& /*loc*/, TIntermTyped* b // effect all nodes sharing it. void TParseContext::makeEditable(TSymbol*& symbol) { - // copyUp() does a deep copy of the type. - symbol = symbolTable.copyUp(symbol); + TParseContextBase::makeEditable(symbol); - // Also, see if it's tied to IO resizing + // See if it's tied to IO resizing if (isIoResizeArray(symbol->getType())) ioArraySymbolResizeList.push_back(symbol); - - // Also, save it in the AST for linker use. - 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); - - return symbol->getAsVariable(); } // Return true if this is a geometry shader input array or tessellation control output array. @@ -1168,7 +1067,7 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction // means take 'arguments' itself as the one argument. TIntermNode* arg = fnCandidate->getParamCount() == 1 ? arguments : (aggregate ? aggregate->getSequence()[i] : arguments); TQualifier& formalQualifier = (*fnCandidate)[i].type->getQualifier(); - if (formalQualifier.storage == EvqOut || formalQualifier.storage == EvqInOut) { + if (formalQualifier.isParamOutput()) { if (lValueErrorCheck(arguments->getLoc(), "assign", arg->getAsTyped())) error(arguments->getLoc(), "Non-L-value cannot be passed for 'out' or 'inout' parameters.", "out", ""); } @@ -1210,9 +1109,10 @@ TIntermTyped* TParseContext::handleFunctionCall(const TSourceLoc& loc, TFunction // if builtIn == true, it's definitely a built-in function with EOpNull if (! builtIn) { call->setUserDefined(); - if (symbolTable.atGlobalLevel()) - error(loc, "can't call user function from global scope", fnCandidate->getName().c_str(), ""); - else + if (symbolTable.atGlobalLevel()) { + requireProfile(loc, ~EEsProfile, "calling user function from global scope"); + intermediate.addToCallGraph(infoSink, "main(", fnCandidate->getMangledName()); + } else intermediate.addToCallGraph(infoSink, currentCaller, fnCandidate->getMangledName()); } @@ -1314,7 +1214,7 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction function.getType().getQualifier().precision; } else if (TIntermAggregate* agg = node.getAsAggregate()) { TIntermSequence& sequence = agg->getSequence(); - int numArgs = (int)sequence.size(); + unsigned int numArgs = (unsigned int)sequence.size(); switch (agg->getOp()) { case EOpBitfieldExtract: numArgs = 1; @@ -1331,7 +1231,7 @@ void TParseContext::computeBuiltinPrecisions(TIntermTyped& node, const TFunction break; } // find the maximum precision from the arguments and parameters - for (unsigned int arg = 0; arg < sequence.size(); ++arg) { + for (unsigned int arg = 0; arg < numArgs; ++arg) { operationPrecision = std::max(operationPrecision, sequence[arg]->getAsTyped()->getQualifier().precision); operationPrecision = std::max(operationPrecision, function[arg].type->getQualifier().precision); } @@ -1499,7 +1399,7 @@ TIntermTyped* TParseContext::addOutputArgumentConversions(const TFunction& funct // Will there be any output conversions? bool outputConversions = false; for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().storage == EvqOut) { + if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().isParamOutput()) { outputConversions = true; break; } @@ -1911,7 +1811,7 @@ TFunction* TParseContext::handleConstructorCall(const TSourceLoc& loc, const TPu } // Handle seeing a precision qualifier in the grammar. -void TParseContext::handlePrecisionQualifier(const TSourceLoc& loc, TQualifier& qualifier, TPrecisionQualifier precision) +void TParseContext::handlePrecisionQualifier(const TSourceLoc& /*loc*/, TQualifier& qualifier, TPrecisionQualifier precision) { if (obeyPrecisionQualifiers()) qualifier.precision = precision; @@ -2000,14 +1900,14 @@ void TParseContext::variableCheck(TIntermTyped*& nodePtr) // Both test and if necessary, spit out an error, to see if the node is really // an l-value that can be operated on this way. // -// Returns true if the was an error. +// Returns true if there was an error. // bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) { TIntermBinary* binaryNode = node->getAsBinaryNode(); if (binaryNode) { - bool errorReturn; + bool errorReturn = false; switch(binaryNode->getOp()) { case EOpIndexDirect: @@ -2026,9 +1926,9 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt } } - // fall through + break; // left node is checked by base class case EOpIndexDirectStruct: - return lValueErrorCheck(loc, op, binaryNode->getLeft()); + break; // left node is checked by base class case EOpVectorSwizzle: errorReturn = lValueErrorCheck(loc, op, binaryNode->getLeft()); if (!errorReturn) { @@ -2053,11 +1953,16 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt default: break; } - error(loc, " l-value required", op, "", ""); - return true; + if (errorReturn) { + error(loc, " l-value required", op, "", ""); + return true; + } } + // Let the base class check errors + if (TParseContextBase::lValueErrorCheck(loc, op, node)) + return true; const char* symbol = nullptr; TIntermSymbol* symNode = node->getAsSymbolNode(); @@ -2066,19 +1971,12 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt const char* message = nullptr; switch (node->getQualifier().storage) { - case EvqConst: message = "can't modify a const"; break; - case EvqConstReadOnly: message = "can't modify a const"; break; case EvqVaryingIn: message = "can't modify shader input"; break; case EvqInstanceId: message = "can't modify gl_InstanceID"; break; case EvqVertexId: message = "can't modify gl_VertexID"; break; case EvqFace: message = "can't modify gl_FrontFace"; break; case EvqFragCoord: message = "can't modify gl_FragCoord"; break; case EvqPointCoord: message = "can't modify gl_PointCoord"; break; - case EvqUniform: message = "can't modify a uniform"; break; - case EvqBuffer: - if (node->getQualifier().readonly) - message = "can't modify a readonly buffer"; - break; case EvqFragDepth: intermediate.setDepthReplacing(); // "In addition, it is an error to statically write to gl_FragDepth in the fragment shader." @@ -2087,22 +1985,7 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt break; default: - // - // Type that can't be written to? - // - switch (node->getBasicType()) { - case EbtSampler: - message = "can't modify a sampler"; - break; - case EbtAtomicUint: - message = "can't modify an atomic_uint"; - break; - case EbtVoid: - message = "can't modify void"; - break; - default: - break; - } + break; } if (message == nullptr && binaryNode == nullptr && symNode == nullptr) { @@ -2111,7 +1994,6 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt return true; } - // // Everything else is okay, no error. // @@ -2132,30 +2014,14 @@ bool TParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TInt // Test for and give an error if the node can't be read from. void TParseContext::rValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) { - if (! node) - return; - - TIntermBinary* binaryNode = node->getAsBinaryNode(); - if (binaryNode) { - switch(binaryNode->getOp()) { - case EOpIndexDirect: - case EOpIndexIndirect: - case EOpIndexDirectStruct: - case EOpVectorSwizzle: - rValueErrorCheck(loc, op, binaryNode->getLeft()); - default: - break; - } - - return; - } + // Let the base class check errors + TParseContextBase::rValueErrorCheck(loc, op, node); - TIntermSymbol* symNode = node->getAsSymbolNode(); - if (symNode && symNode->getQualifier().writeonly) - error(loc, "can't read from writeonly object: ", op, symNode->getName().c_str()); #ifdef AMD_EXTENSIONS - else if (symNode && symNode->getQualifier().explicitInterp) - error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str()); + TIntermSymbol* symNode = node->getAsSymbolNode(); + if (!(symNode && symNode->getQualifier().writeonly)) // base class checks + if (symNode && symNode->getQualifier().explicitInterp) + error(loc, "can't read from explicitly-interpolated object: ", op, symNode->getName().c_str()); #endif } @@ -2448,7 +2314,7 @@ bool TParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, T // At least the dimensionalities have to match. if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) { - error(loc, "array constructor argument not correct type to construct array element", "constructior", ""); + error(loc, "array constructor argument not correct type to construct array element", "constructor", ""); return true; } @@ -3003,7 +2869,7 @@ void TParseContext::precisionQualifierCheck(const TSourceLoc& loc, TBasicType ba void TParseContext::parameterTypeCheck(const TSourceLoc& loc, TStorageQualifier qualifier, const TType& type) { - if ((qualifier == EvqOut || qualifier == EvqInOut) && (type.getBasicType() == EbtSampler || type.getBasicType() == EbtAtomicUint)) + if ((qualifier == EvqOut || qualifier == EvqInOut) && type.isOpaque()) error(loc, "samplers and atomic_uints cannot be output parameters", type.getBasicTypeString().c_str(), ""); } @@ -3225,7 +3091,7 @@ void TParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) // Do all the semantic checking for declaring or redeclaring an array, with and // without a size, and make the right changes to the symbol table. // -void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool& newDeclaration) +void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol) { if (symbol == nullptr) { bool currentScope; @@ -3243,7 +3109,8 @@ void TParseContext::declareArray(const TSourceLoc& loc, TString& identifier, con // symbol = new TVariable(&identifier, type); symbolTable.insert(*symbol); - newDeclaration = true; + if (symbolTable.atGlobalLevel()) + trackLinkageDeferred(*symbol); if (! symbolTable.atBuiltInLevel()) { if (isIoResizeArray(type)) { @@ -3403,7 +3270,8 @@ void TParseContext::nonInitConstCheck(const TSourceLoc& loc, TString& identifier // // Returns a redeclared and type-modified variable if a redeclarated occurred. // -TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier, const TQualifier& qualifier, const TShaderQualifiers& publicType, bool& newDeclaration) +TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TString& identifier, + const TQualifier& qualifier, const TShaderQualifiers& publicType) { if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel()) return nullptr; @@ -3450,11 +3318,8 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS // If it wasn't at a built-in level, then it's already been redeclared; // that is, this is a redeclaration of a redeclaration; reuse that initial // redeclaration. Otherwise, make the new one. - if (builtIn) { - // Copy the symbol up to make a writable version + if (builtIn) makeEditable(symbol); - newDeclaration = true; - } // Now, modify the type of the copy, as per the type of the current redeclaration. @@ -3672,7 +3537,7 @@ void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newT fixIoArraySize(loc, block->getWritableType()); // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, *block); + trackLinkageDeferred(*block); } void TParseContext::paramCheckFix(const TSourceLoc& loc, const TStorageQualifier& qualifier, TType& type) @@ -3716,7 +3581,7 @@ void TParseContext::paramCheckFix(const TSourceLoc& loc, const TQualifier& quali if (qualifier.invariant) error(loc, "cannot use invariant qualifier on a function parameter", "", ""); if (qualifier.noContraction) { - if (qualifier.storage == EvqOut || qualifier.storage == EvqInOut) + if (qualifier.isParamOutput()) type.getQualifier().noContraction = true; else warn(loc, "qualifier has no effect on non-output parameters", "precise", ""); @@ -3926,8 +3791,13 @@ void TParseContext::limitCheck(const TSourceLoc& loc, int value, const char* lim // // Do any additional error checking, etc., once we know the parsing is done. // -void TParseContext::finalErrorCheck() +void TParseContext::finish() { + TParseContextBase::finish(); + + if (parsingBuiltins) + return; + // Check on array indexes for ES 2.0 (version 100) limitations. for (size_t i = 0; i < needsIndexLimitationChecking.size(); ++i) constantIndexExpressionCheck(needsIndexLimitationChecking[i]); @@ -4559,6 +4429,11 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) // containing a double, the offset must also be a multiple of 8..." if (type.containsBasicType(EbtDouble) && ! IsMultipleOfPow2(qualifier.layoutXfbOffset, 8)) error(loc, "type contains double; xfb_offset must be a multiple of 8", "xfb_offset", ""); +#ifdef AMD_EXTENSIONS + // ..., if applied to an aggregate containing a float16_t, the offset must also be a multiple of 2..." + else if (type.containsBasicType(EbtFloat16) && !IsMultipleOfPow2(qualifier.layoutXfbOffset, 2)) + error(loc, "type contains half float; xfb_offset must be a multiple of 2", "xfb_offset", ""); +#endif else if (! IsMultipleOfPow2(qualifier.layoutXfbOffset, 4)) error(loc, "must be a multiple of size of first component", "xfb_offset", ""); } @@ -4577,7 +4452,7 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) // an array of size N, all elements of the array from binding through binding + N - 1 must be within this // range." // - if (type.getBasicType() != EbtSampler && type.getBasicType() != EbtBlock && type.getBasicType() != EbtAtomicUint) + if (! type.isOpaque() && type.getBasicType() != EbtBlock) error(loc, "requires block, or sampler/image, or atomic-counter type", "binding", ""); if (type.getBasicType() == EbtSampler) { int lastBinding = qualifier.layoutBinding; @@ -4662,6 +4537,9 @@ void TParseContext::layoutTypeCheck(const TSourceLoc& loc, const TType& type) case EbtBool: case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif break; default: error(loc, "cannot be applied to this type", "constant_id", ""); @@ -4997,7 +4875,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); // can 'from' convert to 'to'? - const auto convertible = [this](const TType& from, const TType& to) { + const auto convertible = [this](const TType& from, const TType& to, TOperator, int) -> bool { if (from == to) return true; if (from.isArray() || to.isArray() || ! from.sameElementShape(to)) @@ -5008,7 +4886,7 @@ const TFunction* TParseContext::findFunction400(const TSourceLoc& loc, const TFu // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // Assumes 'convertible' already said true. - const auto better = [](const TType& from, const TType& to1, const TType& to2) { + const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool { // 1. exact match if (from == to2) return from != to1; @@ -5095,8 +4973,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden error(loc, "can only apply depth layout to gl_FragDepth", "layout qualifier", ""); // Check for redeclaration of built-ins and/or attempting to declare a reserved name - bool newDeclaration = false; // true if a new entry gets added to the symbol table - TSymbol* symbol = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), publicType.shaderQualifiers, newDeclaration); + TSymbol* symbol = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), publicType.shaderQualifiers); if (symbol == nullptr) reservedErrorCheck(loc, identifier); @@ -5114,7 +4991,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden arrayUnsizedCheck(loc, type.getQualifier(), &type.getArraySizes(), initializer != nullptr, false); if (! arrayQualifierError(loc, type.getQualifier()) && ! arrayError(loc, type)) - declareArray(loc, identifier, type, symbol, newDeclaration); + declareArray(loc, identifier, type, symbol); if (initializer) { profileRequires(loc, ENoProfile, 120, E_GL_3DL_array_objects, "initializer"); @@ -5123,7 +5000,7 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden } else { // non-array case if (symbol == nullptr) - symbol = declareNonArray(loc, identifier, type, newDeclaration); + symbol = declareNonArray(loc, identifier, type); else if (type != symbol->getType()) error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); } @@ -5146,10 +5023,6 @@ TIntermNode* TParseContext::declareVariable(const TSourceLoc& loc, TString& iden layoutObjectCheck(loc, *symbol); fixOffset(loc, *symbol); - // see if it's a linker-level object to track - if (newDeclaration && symbolTable.atGlobalLevel()) - intermediate.addSymbolLinkageNode(linkage, *symbol); - return initNode; } @@ -5185,20 +5058,22 @@ TVariable* TParseContext::makeInternalVariable(const char* name, const TType& ty // // Return the successfully declared variable. // -TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type, bool& newDeclaration) +TVariable* TParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type) { // make a new variable TVariable* variable = new TVariable(&identifier, type); ioArrayCheck(loc, type, identifier); + // add variable to symbol table - if (! symbolTable.insert(*variable)) { - error(loc, "redefinition", variable->getName().c_str(), ""); - return nullptr; - } else { - newDeclaration = true; + if (symbolTable.insert(*variable)) { + if (symbolTable.atGlobalLevel()) + trackLinkageDeferred(*variable); return variable; } + + error(loc, "redefinition", variable->getName().c_str(), ""); + return nullptr; } // @@ -5561,6 +5436,24 @@ TIntermTyped* TParseContext::constructBuiltIn(const TType& type, TOperator op, T basicOp = EOpConstructDouble; break; +#ifdef AMD_EXTENSIONS + case EOpConstructF16Vec2: + case EOpConstructF16Vec3: + case EOpConstructF16Vec4: + case EOpConstructF16Mat2x2: + case EOpConstructF16Mat2x3: + case EOpConstructF16Mat2x4: + case EOpConstructF16Mat3x2: + case EOpConstructF16Mat3x3: + case EOpConstructF16Mat3x4: + case EOpConstructF16Mat4x2: + case EOpConstructF16Mat4x3: + case EOpConstructF16Mat4x4: + case EOpConstructFloat16: + basicOp = EOpConstructFloat16; + break; +#endif + case EOpConstructIVec2: case EOpConstructIVec3: case EOpConstructIVec4: @@ -5837,7 +5730,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con fixIoArraySize(loc, variable.getWritableType()); // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, variable); + trackLinkageDeferred(variable); } // Do all block-declaration checking regarding the combination of in/out/uniform/buffer @@ -6018,16 +5911,23 @@ void TParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typ if (! IsMultipleOfPow2(memberQualifier.layoutOffset, memberAlignment)) error(memberLoc, "must be a multiple of the member's alignment", "offset", ""); - // "It is a compile-time error to specify an offset that is smaller than the offset of the previous + // GLSL: "It is a compile-time error to specify an offset that is smaller than the offset of the previous // member in the block or that lies within the previous member of the block" - if (memberQualifier.layoutOffset < offset) - error(memberLoc, "cannot lie in previous members", "offset", ""); - - // "The offset qualifier forces the qualified member to start at or after the specified - // integral-constant expression, which will be its byte offset from the beginning of the buffer. - // "The actual offset of a member is computed as - // follows: If offset was declared, start with that offset, otherwise start with the next available offset." - offset = std::max(offset, memberQualifier.layoutOffset); + if (spvVersion.spv == 0) { + if (memberQualifier.layoutOffset < offset) + error(memberLoc, "cannot lie in previous members", "offset", ""); + + // "The offset qualifier forces the qualified member to start at or after the specified + // integral-constant expression, which will be its byte offset from the beginning of the buffer. + // "The actual offset of a member is computed as + // follows: If offset was declared, start with that offset, otherwise start with the next available offset." + offset = std::max(offset, memberQualifier.layoutOffset); + } else { + // TODO: Vulkan: "It is a compile-time error to have any offset, explicit or assigned, + // that lies within another member of the block." + + offset = memberQualifier.layoutOffset; + } } // "The actual alignment of a member will be the greater of the specified align alignment and the standard diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index aa92954be3840adee2377cac68433fa39fb83fb5..f850f089714ecc7b88cc8a2b3b496c87047fb28f 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -49,8 +49,7 @@ #include "SymbolTable.h" #include "localintermediate.h" #include "Scan.h" -#include <functional> - +#include <cstdarg> #include <functional> namespace glslang { @@ -73,18 +72,30 @@ typedef std::set<int> TIdSetType; // class TParseContextBase : public TParseVersions { public: - TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, int version, + TParseContextBase(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, bool forwardCompatible, EShMessages messages) : TParseVersions(interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), symbolTable(symbolTable), - linkage(nullptr), scanContext(nullptr), ppContext(nullptr) { } + parsingBuiltins(parsingBuiltins), scanContext(nullptr), ppContext(nullptr), + globalUniformBlock(nullptr) + { + linkage = new TIntermAggregate; + } virtual ~TParseContextBase() { } + virtual void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + virtual void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + virtual void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + virtual void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, ...); + virtual void setLimits(const TBuiltInResource&) = 0; - + EShLanguage getLanguage() const { return language; } - TIntermAggregate*& getLinkage() { return linkage; } void setScanContext(TScanContext* c) { scanContext = c; } TScanContext* getScanContext() const { return scanContext; } void setPpContext(TPpContext* c) { ppContext = c; } @@ -126,11 +137,22 @@ public: TSymbolTable& symbolTable; // symbol table that goes with the current language, version, and profile + // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) + // TODO: This could perhaps get its own object, but the current design doesn't work + // yet when new uniform variables are declared between function definitions, so + // this is pending getting a fully functional design. + virtual void growGlobalUniformBlock(TSourceLoc&, TType&, TString& memberName); + virtual bool insertGlobalUniformBlock(); + + virtual bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); + virtual void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); + protected: TParseContextBase(TParseContextBase&); TParseContextBase& operator=(TParseContextBase&); - TIntermAggregate* linkage; // aggregate node of objects the linker may need, if not referenced by the rest of the AST + const bool parsingBuiltins; // true if parsing built-in symbols/functions + TVector<TSymbol*> linkageSymbols; // these need to be transferred to 'linkage', after all editing is done TScanContext* scanContext; TPpContext* ppContext; @@ -144,9 +166,27 @@ protected: // see implementation for detail const TFunction* selectFunction(const TVector<const TFunction*>, const TFunction&, - std::function<bool(const TType&, const TType&)>, + std::function<bool(const TType&, const TType&, TOperator, int arg)>, std::function<bool(const TType&, const TType&, const TType&)>, /* output */ bool& tie); + + // Manage the global uniform block (default uniforms in GLSL, $Global in HLSL) + TVariable* globalUniformBlock; // the actual block, inserted into the symbol table + int firstNewMember; // the index of the first member not yet inserted into the symbol table + // override this to set the language-specific name + virtual const char* getGlobalUniformBlockName() { return ""; } + virtual void finalizeGlobalUniformBlockLayout(TVariable&) { } + virtual void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, + const char* szExtraInfoFormat, TPrefixType prefix, + va_list args); + virtual void trackLinkage(TSymbol& symbol); + virtual void trackLinkageDeferred(TSymbol& symbol); + virtual void makeEditable(TSymbol*&); + virtual TVariable* getEditableVariable(const char* name); + virtual void finish(); + +private: + TIntermAggregate* linkage; }; // @@ -197,33 +237,23 @@ public: bool obeyPrecisionQualifiers() const { return precisionManager.respectingPrecisionQualifiers(); }; void setPrecisionDefaults(); - void setLimits(const TBuiltInResource&); - bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); + void setLimits(const TBuiltInResource&) override; + bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false) override; void parserError(const char* s); // for bison's yyerror - void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void reservedErrorCheck(const TSourceLoc&, const TString&); - void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op); - bool lineContinuationCheck(const TSourceLoc&, bool endOfComment); - bool lineDirectiveShouldSetNextLine() const; + void reservedPpErrorCheck(const TSourceLoc&, const char* name, const char* op) override; + bool lineContinuationCheck(const TSourceLoc&, bool endOfComment) override; + bool lineDirectiveShouldSetNextLine() const override; bool builtInName(const TString&); - void handlePragma(const TSourceLoc&, const TVector<TString>&); + void handlePragma(const TSourceLoc&, const TVector<TString>&) override; 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); void handleIndexLimits(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); - void makeEditable(TSymbol*&); - TVariable* getEditableVariable(const char* name); + void makeEditable(TSymbol*&) override; bool isIoResizeArray(const TType&) const; void fixIoArraySize(const TSourceLoc&, TType&); void ioArrayCheck(const TSourceLoc&, const TType&, const TString& identifier); @@ -259,8 +289,8 @@ public: void unaryOpError(const TSourceLoc&, const char* op, TString operand); void binaryOpError(const TSourceLoc&, const char* op, TString left, TString right); void variableCheck(TIntermTyped*& nodePtr); - bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); - void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*); + bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; + void rValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; void constantValueCheck(TIntermTyped* node, const char* token); void integerCheck(const TIntermTyped* node, const char* token); void globalCheck(const TSourceLoc&, const char* token); @@ -292,7 +322,7 @@ public: void precisionQualifierCheck(const TSourceLoc&, TBasicType, TQualifier&); void parameterTypeCheck(const TSourceLoc&, TStorageQualifier qualifier, const TType& type); bool containsFieldWithBasicType(const TType& type ,TBasicType basicType); - TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration); + TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&); 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); @@ -346,14 +376,11 @@ protected: void nonInitConstCheck(const TSourceLoc&, TString& identifier, TType& type); void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; - TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool& newDeclaration); - void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration); + TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&); + void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); - void finalErrorCheck(); - void outputMessage(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, TPrefixType prefix, - va_list args); + void finish() override; public: // @@ -382,7 +409,6 @@ protected: TParseContext(TParseContext&); TParseContext& operator=(TParseContext&); - const bool parsingBuiltins; // true if parsing built-in symbols/functions static const int maxSamplerIndex = EsdNumDims * (EbtNumTypes * (2 * 2 * 2 * 2 * 2)); // see computeSamplerTypeIndex() TPrecisionQualifier defaultSamplerPrecision[maxSamplerIndex]; TPrecisionManager precisionManager; diff --git a/glslang/MachineIndependent/Scan.cpp b/glslang/MachineIndependent/Scan.cpp index ee0dbb40a49cc66c9fed2a46f8a3a22338750d92..3750645403fb53c120d935356c6bb7afac252b53 100644 --- a/glslang/MachineIndependent/Scan.cpp +++ b/glslang/MachineIndependent/Scan.cpp @@ -463,6 +463,25 @@ void TScanContext::fillInKeywordMap() (*KeywordMap)["u64vec3"] = U64VEC3; (*KeywordMap)["u64vec4"] = U64VEC4; +#ifdef AMD_EXTENSIONS + (*KeywordMap)["float16_t"] = FLOAT16_T; + (*KeywordMap)["f16vec2"] = F16VEC2; + (*KeywordMap)["f16vec3"] = F16VEC3; + (*KeywordMap)["f16vec4"] = F16VEC4; + (*KeywordMap)["f16mat2"] = F16MAT2; + (*KeywordMap)["f16mat3"] = F16MAT3; + (*KeywordMap)["f16mat4"] = F16MAT4; + (*KeywordMap)["f16mat2x2"] = F16MAT2X2; + (*KeywordMap)["f16mat2x3"] = F16MAT2X3; + (*KeywordMap)["f16mat2x4"] = F16MAT2X4; + (*KeywordMap)["f16mat3x2"] = F16MAT3X2; + (*KeywordMap)["f16mat3x3"] = F16MAT3X3; + (*KeywordMap)["f16mat3x4"] = F16MAT3X4; + (*KeywordMap)["f16mat4x2"] = F16MAT4X2; + (*KeywordMap)["f16mat4x3"] = F16MAT4X3; + (*KeywordMap)["f16mat4x4"] = F16MAT4X4; +#endif + (*KeywordMap)["sampler2D"] = SAMPLER2D; (*KeywordMap)["samplerCube"] = SAMPLERCUBE; (*KeywordMap)["samplerCubeArray"] = SAMPLERCUBEARRAY; @@ -687,6 +706,9 @@ int TScanContext::tokenize(TPpContext* pp, TParserToken& token) case PpAtomConstUint64: parserToken->sType.lex.i64 = ppToken.i64val; return UINT64CONSTANT; case PpAtomConstFloat: parserToken->sType.lex.d = ppToken.dval; return FLOATCONSTANT; case PpAtomConstDouble: parserToken->sType.lex.d = ppToken.dval; return DOUBLECONSTANT; +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: parserToken->sType.lex.d = ppToken.dval; return FLOAT16CONSTANT; +#endif case PpAtomIdentifier: { int token = tokenizeIdentifier(); @@ -938,10 +960,38 @@ int TScanContext::tokenizeIdentifier() case U64VEC2: case U64VEC3: case U64VEC4: - if (parseContext.profile != EEsProfile && parseContext.version >= 450) + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.extensionTurnedOn(E_GL_ARB_gpu_shader_int64) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) return keyword; return identifierOrType(); +#ifdef AMD_EXTENSIONS + case FLOAT16_T: + case F16VEC2: + case F16VEC3: + case F16VEC4: + case F16MAT2: + case F16MAT3: + case F16MAT4: + case F16MAT2X2: + case F16MAT2X3: + case F16MAT2X4: + case F16MAT3X2: + case F16MAT3X3: + case F16MAT3X4: + case F16MAT4X2: + case F16MAT4X3: + case F16MAT4X4: + afterType = true; + if (parseContext.symbolTable.atBuiltInLevel() || + (parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float) && + parseContext.profile != EEsProfile && parseContext.version >= 450)) + return keyword; + return identifierOrType(); +#endif + case SAMPLERCUBEARRAY: case SAMPLERCUBEARRAYSHADOW: case ISAMPLERCUBEARRAY: diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp index 414a62b316e17695b321c87b6a4d7afffab734e1..e50b12f2555a07fb4ea9069153f0a708e2e8f202 100644 --- a/glslang/MachineIndependent/ShaderLang.cpp +++ b/glslang/MachineIndependent/ShaderLang.cpp @@ -51,6 +51,7 @@ #include "../../hlsl/hlslParseables.h" #include "Scan.h" #include "ScanContext.h" +#include "../../hlsl/hlslScanContext.h" #include "../Include/ShHandle.h" #include "../../OGLCompilersDLL/InitializeDll.h" @@ -60,6 +61,7 @@ #define SH_EXPORTING #include "../Public/ShaderLang.h" #include "reflection.h" +#include "iomapper.h" #include "Initialize.h" namespace { // anonymous namespace for file-local functions and symbols @@ -79,6 +81,28 @@ TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource sourc } } +// Create a language specific version of a parse context. +TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate& intermediate, + int version, EProfile profile, EShSource source, + EShLanguage language, TInfoSink& infoSink, + SpvVersion spvVersion, bool forwardCompatible, EShMessages messages, + bool parsingBuiltIns, const std::string sourceEntryPointName = "") +{ + switch (source) { + case EShSourceGlsl: + intermediate.setEntryPointName("main"); + return new TParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion, + language, infoSink, forwardCompatible, messages); + + case EShSourceHlsl: + return new HlslParseContext(symbolTable, intermediate, parsingBuiltIns, version, profile, spvVersion, + language, infoSink, sourceEntryPointName.c_str(), forwardCompatible, messages); + default: + infoSink.info.message(EPrefixInternalError, "Unable to determine source language"); + return nullptr; + } +} + // Local mapping functions for making arrays of symbol tables.... const int VersionCount = 15; // index range in MapVersionToIndex @@ -186,17 +210,22 @@ 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, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, - TSymbolTable& symbolTable) +bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, + EShSource source, TInfoSink& infoSink, TSymbolTable& symbolTable) { TIntermediate intermediate(language, version, profile); - TParseContext parseContext(symbolTable, intermediate, true, version, profile, spvVersion, language, infoSink); + intermediate.setSource(source); + + std::unique_ptr<TParseContextBase> parseContext(CreateParseContext(symbolTable, intermediate, version, profile, source, + language, infoSink, spvVersion, true, EShMsgDefault, + true)); + TShader::ForbidInclude includer; - TPpContext ppContext(parseContext, "", includer); - TScanContext scanContext(parseContext); - parseContext.setScanContext(&scanContext); - parseContext.setPpContext(&ppContext); + TPpContext ppContext(*parseContext, "", includer); + TScanContext scanContext(*parseContext); + parseContext->setScanContext(&scanContext); + parseContext->setPpContext(&ppContext); // // Push the symbol table to give it an initial scope. This @@ -215,7 +244,7 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil return true; TInputScanner input(1, builtInShaders, builtInLengths); - if (! parseContext.parseShaderStrings(ppContext, input) != 0) { + if (! parseContext->parseShaderStrings(ppContext, input) != 0) { infoSink.info.message(EPrefixInternalError, "Unable to parse built-ins"); printf("Unable to parse built-ins\n%s\n", infoSink.info.c_str()); printf("%s\n", builtInShaders[0]); @@ -235,10 +264,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, const SpvVersion& spvVersion, - EShLanguage language, TInfoSink& infoSink, TSymbolTable** commonTable, TSymbolTable** symbolTables) + EShLanguage language, EShSource source, TInfoSink& infoSink, TSymbolTable** commonTable, + TSymbolTable** symbolTables) { (*symbolTables[language]).adoptLevels(*commonTable[CommonIndex(profile, language)]); - InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, infoSink, *symbolTables[language]); + InitializeSymbolTable(builtInParseables.getStageString(language), version, profile, spvVersion, language, source, + infoSink, *symbolTables[language]); builtInParseables.identifyBuiltIns(version, profile, spvVersion, language, *symbolTables[language]); if (profile == EEsProfile && version >= 300) (*symbolTables[language]).setNoBuiltInRedeclarations(); @@ -257,32 +288,40 @@ bool InitializeSymbolTables(TInfoSink& infoSink, TSymbolTable** commonTable, TS builtInParseables->initialize(version, profile, spvVersion); // do the common tables - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangVertex, infoSink, *commonTable[EPcGeneral]); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangVertex, source, + infoSink, *commonTable[EPcGeneral]); if (profile == EEsProfile) - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangFragment, infoSink, *commonTable[EPcFragment]); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, EShLangFragment, source, + infoSink, *commonTable[EPcFragment]); // do the per-stage tables // always have vertex and fragment - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangVertex, infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangVertex, source, + infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangFragment, source, + infoSink, commonTable, symbolTables); // check for tessellation if ((profile != EEsProfile && version >= 150) || (profile == EEsProfile && version >= 310)) { - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessControl, infoSink, commonTable, symbolTables); - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessEvaluation, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessControl, source, + infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangTessEvaluation, source, + infoSink, commonTable, symbolTables); } // check for geometry if ((profile != EEsProfile && version >= 150) || (profile == EEsProfile && version >= 310)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangGeometry, source, + infoSink, commonTable, symbolTables); // check for compute if ((profile != EEsProfile && version >= 420) || (profile == EEsProfile && version >= 310)) - InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, infoSink, commonTable, symbolTables); + InitializeStageSymbolTable(*builtInParseables, version, profile, spvVersion, EShLangCompute, source, + infoSink, commonTable, symbolTables); return true; } @@ -293,7 +332,7 @@ bool AddContextSpecificSymbols(const TBuiltInResource* resources, TInfoSink& inf std::unique_ptr<TBuiltInParseables> builtInParseables(CreateBuiltInParseables(infoSink, source)); builtInParseables->initialize(*resources, version, profile, spvVersion, language); - InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, infoSink, symbolTable); + InitializeSymbolTable(builtInParseables->getCommonString(), version, profile, spvVersion, language, source, infoSink, symbolTable); builtInParseables->identifyBuiltIns(version, profile, spvVersion, language, symbolTable, *resources); return true; @@ -577,7 +616,8 @@ bool ProcessDeferred( TIntermediate& intermediate, // returned tree, etc. ProcessingContext& processingContext, bool requireNonempty, - TShader::Includer& includer + TShader::Includer& includer, + const std::string sourceEntryPointName = "" ) { if (! InitThread()) @@ -692,15 +732,10 @@ bool ProcessDeferred( // Now we can process the full shader under proper symbols and rules. // - TParseContextBase* parseContext; - if (source == EShSourceHlsl) { - parseContext = new HlslParseContext(symbolTable, intermediate, false, version, profile, spvVersion, - compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); - } else { - intermediate.setEntryPointName("main"); - parseContext = new TParseContext(symbolTable, intermediate, false, version, profile, spvVersion, - compiler->getLanguage(), compiler->infoSink, forwardCompatible, messages); - } + TParseContextBase* parseContext = CreateParseContext(symbolTable, intermediate, version, profile, source, + compiler->getLanguage(), compiler->infoSink, + spvVersion, forwardCompatible, messages, false, sourceEntryPointName); + TPpContext ppContext(*parseContext, names[numPre]? names[numPre]: "", includer); // only GLSL (bison triggered, really) needs an externally set scan context @@ -938,14 +973,13 @@ struct DoPreprocessing { struct DoFullParse{ bool operator()(TParseContextBase& parseContext, TPpContext& ppContext, TInputScanner& fullInput, bool versionWillBeError, - TSymbolTable& symbolTable, TIntermediate& intermediate, + TSymbolTable&, TIntermediate& intermediate, EShOptimizationLevel optLevel, EShMessages messages) { bool success = true; // Parse the full shader. if (! parseContext.parseShaderStrings(ppContext, fullInput, versionWillBeError)) success = false; - intermediate.addSymbolLinkageNodes(parseContext.getLinkage(), parseContext.getLanguage(), symbolTable); if (success && intermediate.getTreeRoot()) { if (optLevel == EShOptNoGeneration) @@ -1021,14 +1055,15 @@ bool CompileDeferred( bool forwardCompatible, // give errors for use of deprecated features EShMessages messages, // warnings/errors/AST; things to print out TIntermediate& intermediate,// returned tree, etc. - TShader::Includer& includer) + TShader::Includer& includer, + const std::string sourceEntryPointName = "") { DoFullParse parser; return ProcessDeferred(compiler, shaderStrings, numStrings, inputLengths, stringNames, preamble, optLevel, resources, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, forwardCompatible, messages, intermediate, parser, - true, includer); + true, includer, sourceEntryPointName); } } // end anonymous namespace for local functions @@ -1048,6 +1083,7 @@ int ShInitialize() PerProcessGPA = new TPoolAllocator(); glslang::TScanContext::fillInKeywordMap(); + glslang::HlslScanContext::fillInKeywordMap(); return 1; } @@ -1140,6 +1176,7 @@ int __fastcall ShFinalize() } glslang::TScanContext::deleteKeywordMap(); + glslang::HlslScanContext::deleteKeywordMap(); return 1; } @@ -1444,7 +1481,7 @@ public: virtual bool compile(TIntermNode*, int = 0, EProfile = ENoProfile) { return true; } }; -TShader::TShader(EShLanguage s) +TShader::TShader(EShLanguage s) : pool(0), stage(s), lengths(nullptr), stringNames(nullptr), preamble("") { infoSink = new TInfoSink; @@ -1488,6 +1525,19 @@ void TShader::setEntryPoint(const char* entryPoint) intermediate->setEntryPointName(entryPoint); } +void TShader::setSourceEntryPoint(const char* name) +{ + sourceEntryPointName = name; +} + +void TShader::setShiftSamplerBinding(unsigned int base) { intermediate->setShiftSamplerBinding(base); } +void TShader::setShiftTextureBinding(unsigned int base) { intermediate->setShiftTextureBinding(base); } +void TShader::setShiftImageBinding(unsigned int base) { intermediate->setShiftImageBinding(base); } +void TShader::setShiftUboBinding(unsigned int base) { intermediate->setShiftUboBinding(base); } +void TShader::setAutoMapBindings(bool map) { intermediate->setAutoMapBindings(map); } +void TShader::setFlattenUniformArrays(bool flatten) { intermediate->setFlattenUniformArrays(flatten); } +void TShader::setNoStorageFormat(bool useUnknownFormat) { intermediate->setNoStorageFormat(useUnknownFormat); } + // // Turn the shader strings into a parse tree in the TIntermediate. // @@ -1507,7 +1557,7 @@ bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion return CompileDeferred(compiler, strings, numStrings, lengths, stringNames, preamble, EShOptNone, builtInResources, defaultVersion, defaultProfile, forceDefaultVersionAndProfile, - forwardCompatible, messages, *intermediate, includer); + forwardCompatible, messages, *intermediate, includer, sourceEntryPointName); } bool TShader::parse(const TBuiltInResource* builtInResources, int defaultVersion, bool forwardCompatible, EShMessages messages) @@ -1548,7 +1598,7 @@ const char* TShader::getInfoDebugLog() return infoSink->debug.c_str(); } -TProgram::TProgram() : pool(0), reflection(0), linked(false) +TProgram::TProgram() : pool(0), reflection(0), ioMapper(nullptr), linked(false) { infoSink = new TInfoSink; for (int s = 0; s < EShLangCount; ++s) { @@ -1637,7 +1687,8 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages) newedIntermediate[stage] = true; } - infoSink->info << "\nLinked " << StageName(stage) << " stage:\n\n"; + if (messages & EShMsgAST) + infoSink->info << "\nLinked " << StageName(stage) << " stage:\n\n"; if (stages[stage].size() > 1) { std::list<TShader*>::const_iterator it; @@ -1645,7 +1696,7 @@ bool TProgram::linkStage(EShLanguage stage, EShMessages messages) intermediate[stage]->merge(*infoSink, *(*it)->intermediate); } - intermediate[stage]->finalCheck(*infoSink); + intermediate[stage]->finalCheck(*infoSink, (messages & EShMsgKeepUncalled) != 0); if (messages & EShMsgAST) intermediate[stage]->output(*infoSink, true); @@ -1684,20 +1735,43 @@ bool TProgram::buildReflection() return true; } -int TProgram::getNumLiveUniformVariables() { return reflection->getNumUniforms(); } -int TProgram::getNumLiveUniformBlocks() { return reflection->getNumUniformBlocks(); } -const char* TProgram::getUniformName(int index) { return reflection->getUniform(index).name.c_str(); } -const char* TProgram::getUniformBlockName(int index) { return reflection->getUniformBlock(index).name.c_str(); } -int TProgram::getUniformBlockSize(int index) { return reflection->getUniformBlock(index).size; } -int TProgram::getUniformIndex(const char* name) { return reflection->getIndex(name); } -int TProgram::getUniformBlockIndex(int index) { return reflection->getUniform(index).index; } -int TProgram::getUniformType(int index) { return reflection->getUniform(index).glDefineType; } -int TProgram::getUniformBufferOffset(int index) { return reflection->getUniform(index).offset; } -int TProgram::getUniformArraySize(int index) { return reflection->getUniform(index).size; } -int TProgram::getNumLiveAttributes() { return reflection->getNumAttributes(); } -const char* TProgram::getAttributeName(int index) { return reflection->getAttribute(index).name.c_str(); } -int TProgram::getAttributeType(int index) { return reflection->getAttribute(index).glDefineType; } +int TProgram::getNumLiveUniformVariables() const { return reflection->getNumUniforms(); } +int TProgram::getNumLiveUniformBlocks() const { return reflection->getNumUniformBlocks(); } +const char* TProgram::getUniformName(int index) const { return reflection->getUniform(index).name.c_str(); } +const char* TProgram::getUniformBlockName(int index) const { return reflection->getUniformBlock(index).name.c_str(); } +int TProgram::getUniformBlockSize(int index) const { return reflection->getUniformBlock(index).size; } +int TProgram::getUniformIndex(const char* name) const { return reflection->getIndex(name); } +int TProgram::getUniformBlockIndex(int index) const { return reflection->getUniform(index).index; } +int TProgram::getUniformType(int index) const { return reflection->getUniform(index).glDefineType; } +int TProgram::getUniformBufferOffset(int index) const { return reflection->getUniform(index).offset; } +int TProgram::getUniformArraySize(int index) const { return reflection->getUniform(index).size; } +int TProgram::getNumLiveAttributes() const { return reflection->getNumAttributes(); } +const char* TProgram::getAttributeName(int index) const { return reflection->getAttribute(index).name.c_str(); } +int TProgram::getAttributeType(int index) const { return reflection->getAttribute(index).glDefineType; } +const TType* TProgram::getAttributeTType(int index) const { return reflection->getAttribute(index).getType(); } +const TType* TProgram::getUniformTType(int index) const { return reflection->getUniform(index).getType(); } +const TType* TProgram::getUniformBlockTType(int index) const { return reflection->getUniformBlock(index).getType(); } void TProgram::dumpReflection() { reflection->dump(); } +// +// I/O mapping implementation. +// +bool TProgram::mapIO(TIoMapResolver* resolver) +{ + if (! linked || ioMapper) + return false; + + ioMapper = new TIoMapper; + + for (int s = 0; s < EShLangCount; ++s) { + if (intermediate[s]) { + if (! ioMapper->addStage((EShLanguage)s, *intermediate[s], *infoSink, resolver)) + return false; + } + } + + return true; +} + } // end namespace glslang diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp index 2068f26bd3dad8fe04ffbc7ece0097c57051c427..fb09fdf991370d0733ebb9e893c751b363b3dcc2 100644 --- a/glslang/MachineIndependent/SymbolTable.cpp +++ b/glslang/MachineIndependent/SymbolTable.cpp @@ -60,6 +60,9 @@ void TType::buildMangledName(TString& mangledName) switch (basicType) { case EbtFloat: mangledName += 'f'; break; case EbtDouble: mangledName += 'd'; break; +#ifdef AMD_EXTENSIONS + case EbtFloat16: mangledName += "f16"; break; +#endif case EbtInt: mangledName += 'i'; break; case EbtUint: mangledName += 'u'; break; case EbtInt64: mangledName += "i64"; break; diff --git a/glslang/MachineIndependent/SymbolTable.h b/glslang/MachineIndependent/SymbolTable.h index 97c3d6b515e4cb284501478b79f46916ac062ea6..aeec34fc0299eb97dfff36e1cd72744972509f08 100644 --- a/glslang/MachineIndependent/SymbolTable.h +++ b/glslang/MachineIndependent/SymbolTable.h @@ -147,7 +147,8 @@ public: TVariable(const TString *name, const TType& t, bool uT = false ) : TSymbol(name), userType(uT), - constSubtree(nullptr) { type.shallowCopy(t); } + constSubtree(nullptr), + anonId(-1) { type.shallowCopy(t); } virtual TVariable* clone() const; virtual ~TVariable() { } @@ -161,6 +162,8 @@ public: virtual void setConstArray(const TConstUnionArray& array) { constArray = array; } virtual void setConstSubtree(TIntermTyped* subtree) { constSubtree = subtree; } virtual TIntermTyped* getConstSubtree() const { return constSubtree; } + virtual void setAnonId(int i) { anonId = i; } + virtual int getAnonId() const { return anonId; } virtual void dump(TInfoSink &infoSink) const; @@ -178,6 +181,7 @@ protected: // constant, or neither, but never both. TConstUnionArray constArray; // for compile-time constant value TIntermTyped* constSubtree; // for specialization constant computation + int anonId; // the ID used for anonymous blocks: TODO: see if uniqueId could serve a dual purpose }; // @@ -305,27 +309,16 @@ public: // // returning true means symbol was added to the table with no semantic errors // - tInsertResult result; const TString& name = symbol.getName(); if (name == "") { + symbol.getAsVariable()->setAnonId(anonId++); // An empty name means an anonymous container, exposing its members to the external scope. // Give it a name and insert its members in the symbol table, pointing to the container. char buf[20]; - snprintf(buf, 20, "%s%d", AnonymousPrefix, anonId); + snprintf(buf, 20, "%s%d", AnonymousPrefix, symbol.getAsVariable()->getAnonId()); symbol.changeName(NewPoolTString(buf)); - bool isOkay = true; - const TTypeList& types = *symbol.getAsVariable()->getType().getStruct(); - for (unsigned int m = 0; m < types.size(); ++m) { - TAnonMember* member = new TAnonMember(&types[m].type->getFieldName(), m, *symbol.getAsVariable(), anonId); - result = level.insert(tLevelPair(member->getMangledName(), member)); - if (! result.second) - isOkay = false; - } - - ++anonId; - - return isOkay; + return insertAnonymousMembers(symbol, 0); } else { // Check for redefinition errors: // - STL itself will tell us if there is a direct name collision, with name mangling, at this level @@ -340,12 +333,33 @@ public: level.insert(tLevelPair(insertName, &symbol)); return true; - } else { - result = level.insert(tLevelPair(insertName, &symbol)); + } else + return level.insert(tLevelPair(insertName, &symbol)).second; + } + } - return result.second; - } + // Add more members to an already inserted aggregate object + bool amend(TSymbol& symbol, int firstNewMember) + { + // See insert() for comments on basic explanation of insert. + // This operates similarly, but more simply. + // Only supporting amend of anonymous blocks so far. + if (IsAnonymous(symbol.getName())) + return insertAnonymousMembers(symbol, firstNewMember); + else + return false; + } + + bool insertAnonymousMembers(TSymbol& symbol, int firstMember) + { + const TTypeList& types = *symbol.getAsVariable()->getType().getStruct(); + for (unsigned int m = firstMember; m < types.size(); ++m) { + TAnonMember* member = new TAnonMember(&types[m].type->getFieldName(), m, *symbol.getAsVariable(), symbol.getAsVariable()->getAnonId()); + if (! level.insert(tLevelPair(member->getMangledName(), member)).second) + return false; } + + return true; } TSymbol* find(const TString& name) const @@ -546,6 +560,14 @@ public: return table[currentLevel()]->insert(symbol, separateNameSpaces); } + // Add more members to an already inserted aggregate object + bool amend(TSymbol& symbol, int firstNewMember) + { + // See insert() for comments on basic explanation of insert. + // This operates similarly, but more simply. + return table[currentLevel()]->amend(symbol, firstNewMember); + } + // // To allocate an internal temporary, which will need to be uniquely // identified by the consumer of the AST, but never need to diff --git a/glslang/MachineIndependent/Versions.cpp b/glslang/MachineIndependent/Versions.cpp index 52d205da2a6c852594594eacc6b3555fc757d79d..8a29cb37f4a00a9554ff98191e09f87072b54854 100644 --- a/glslang/MachineIndependent/Versions.cpp +++ b/glslang/MachineIndependent/Versions.cpp @@ -192,6 +192,7 @@ void TParseVersions::initializeExtensionBehavior() extensionBehavior[E_GL_AMD_shader_trinary_minmax] = EBhDisable; extensionBehavior[E_GL_AMD_shader_explicit_vertex_parameter] = EBhDisable; extensionBehavior[E_GL_AMD_gcn_shader] = EBhDisable; + extensionBehavior[E_GL_AMD_gpu_shader_half_float] = EBhDisable; #endif // AEP @@ -299,6 +300,7 @@ void TParseVersions::getPreamble(std::string& preamble) "#define GL_AMD_shader_trinary_minmax 1\n" "#define GL_AMD_shader_explicit_vertex_parameter 1\n" "#define GL_AMD_gcn_shader 1\n" + "#define GL_AMD_gpu_shader_half_float 1\n" #endif ; } @@ -663,6 +665,19 @@ void TParseVersions::doubleCheck(const TSourceLoc& loc, const char* op) profileRequires(loc, ECompatibilityProfile, 400, nullptr, op); } +#ifdef AMD_EXTENSIONS +// Call for any operation needing GLSL float16 data-type support. +void TParseVersions::float16Check(const TSourceLoc& loc, const char* op, bool builtIn) +{ + if (!builtIn) { + requireExtensions(loc, 1, &E_GL_AMD_gpu_shader_half_float, "shader half float"); + requireProfile(loc, ECoreProfile | ECompatibilityProfile, op); + profileRequires(loc, ECoreProfile, 450, nullptr, op); + profileRequires(loc, ECompatibilityProfile, 450, nullptr, op); + } +} +#endif + // Call for any operation needing GLSL 64-bit integer data-type support. void TParseVersions::int64Check(const TSourceLoc& loc, const char* op, bool builtIn) { diff --git a/glslang/MachineIndependent/Versions.h b/glslang/MachineIndependent/Versions.h index 6fd08b05c035c3335bb136540263e180b59c1517..17baf3b1a3a69bbda8451ad2d3b911ae55535534 100644 --- a/glslang/MachineIndependent/Versions.h +++ b/glslang/MachineIndependent/Versions.h @@ -136,10 +136,11 @@ const char* const E_GL_GOOGLE_cpp_style_line_directive = "GL_GOOGLE_cpp const char* const E_GL_GOOGLE_include_directive = "GL_GOOGLE_include_directive"; #ifdef AMD_EXTENSIONS -const char* const E_GL_AMD_shader_ballot = "GL_AMD_shader_ballot"; -const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader_trinary_minmax"; -const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter"; -const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader"; +const char* const E_GL_AMD_shader_ballot = "GL_AMD_shader_ballot"; +const char* const E_GL_AMD_shader_trinary_minmax = "GL_AMD_shader_trinary_minmax"; +const char* const E_GL_AMD_shader_explicit_vertex_parameter = "GL_AMD_shader_explicit_vertex_parameter"; +const char* const E_GL_AMD_gcn_shader = "GL_AMD_gcn_shader"; +const char* const E_GL_AMD_gpu_shader_half_float = "GL_AMD_gpu_shader_half_float"; #endif // AEP diff --git a/glslang/MachineIndependent/gl_types.h b/glslang/MachineIndependent/gl_types.h index 9e877d37dc36afa9d73aa6a535268679581d5ca7..d7cb31fe38ad2ec6e3274de16fbbc59580c8a3b2 100644 --- a/glslang/MachineIndependent/gl_types.h +++ b/glslang/MachineIndependent/gl_types.h @@ -76,6 +76,24 @@ #define GL_DOUBLE_MAT4x2 0x8F4D #define GL_DOUBLE_MAT4x3 0x8F4E +#ifdef AMD_EXTENSIONS +// Those constants are borrowed from extension NV_gpu_shader5 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB + +#define GL_FLOAT16_MAT2_AMD 0x91C5 +#define GL_FLOAT16_MAT3_AMD 0x91C6 +#define GL_FLOAT16_MAT4_AMD 0x91C7 +#define GL_FLOAT16_MAT2x3_AMD 0x91C8 +#define GL_FLOAT16_MAT2x4_AMD 0x91C9 +#define GL_FLOAT16_MAT3x2_AMD 0x91CA +#define GL_FLOAT16_MAT3x4_AMD 0x91CB +#define GL_FLOAT16_MAT4x2_AMD 0x91CC +#define GL_FLOAT16_MAT4x3_AMD 0x91CD +#endif + #define GL_SAMPLER_1D 0x8B5D #define GL_SAMPLER_2D 0x8B5E #define GL_SAMPLER_3D 0x8B5F diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index a1628f611b5f49b341de8399ddbe7bd91c309885..060ffdd6fa9f2fe3b9012ea7bc2aa73fd918fbfb 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -119,13 +119,14 @@ extern int yylex(YYSTYPE*, TParseContext&); %expect 1 // One shift reduce conflict because of if | else %token <lex> ATTRIBUTE VARYING -%token <lex> CONST BOOL FLOAT DOUBLE INT UINT INT64_T UINT64_T +%token <lex> CONST BOOL FLOAT DOUBLE INT UINT INT64_T UINT64_T FLOAT16_T %token <lex> BREAK CONTINUE DO ELSE FOR IF DISCARD RETURN SWITCH CASE DEFAULT SUBROUTINE %token <lex> BVEC2 BVEC3 BVEC4 IVEC2 IVEC3 IVEC4 I64VEC2 I64VEC3 I64VEC4 UVEC2 UVEC3 UVEC4 U64VEC2 U64VEC3 U64VEC4 VEC2 VEC3 VEC4 %token <lex> MAT2 MAT3 MAT4 CENTROID IN OUT INOUT %token <lex> UNIFORM PATCH SAMPLE BUFFER SHARED %token <lex> COHERENT VOLATILE RESTRICT READONLY WRITEONLY %token <lex> DVEC2 DVEC3 DVEC4 DMAT2 DMAT3 DMAT4 +%token <lex> F16VEC2 F16VEC3 F16VEC4 F16MAT2 F16MAT3 F16MAT4 %token <lex> NOPERSPECTIVE FLAT SMOOTH LAYOUT __EXPLICITINTERPAMD %token <lex> MAT2X2 MAT2X3 MAT2X4 @@ -134,6 +135,9 @@ extern int yylex(YYSTYPE*, TParseContext&); %token <lex> DMAT2X2 DMAT2X3 DMAT2X4 %token <lex> DMAT3X2 DMAT3X3 DMAT3X4 %token <lex> DMAT4X2 DMAT4X3 DMAT4X4 +%token <lex> F16MAT2X2 F16MAT2X3 F16MAT2X4 +%token <lex> F16MAT3X2 F16MAT3X3 F16MAT3X4 +%token <lex> F16MAT4X2 F16MAT4X3 F16MAT4X4 %token <lex> ATOMIC_UINT // combined image/sampler @@ -182,7 +186,7 @@ extern int yylex(YYSTYPE*, TParseContext&); %token <lex> STRUCT VOID WHILE %token <lex> IDENTIFIER TYPE_NAME -%token <lex> FLOATCONSTANT DOUBLECONSTANT INTCONSTANT UINTCONSTANT INT64CONSTANT UINT64CONSTANT BOOLCONSTANT +%token <lex> FLOATCONSTANT DOUBLECONSTANT INTCONSTANT UINTCONSTANT INT64CONSTANT UINT64CONSTANT BOOLCONSTANT FLOAT16CONSTANT %token <lex> LEFT_OP RIGHT_OP %token <lex> INC_OP DEC_OP LE_OP GE_OP EQ_OP NE_OP %token <lex> AND_OP OR_OP XOR_OP MUL_ASSIGN DIV_ASSIGN ADD_ASSIGN @@ -274,6 +278,12 @@ primary_expression parseContext.doubleCheck($1.loc, "double literal"); $$ = parseContext.intermediate.addConstantUnion($1.d, EbtDouble, $1.loc, true); } + | FLOAT16CONSTANT { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float literal"); + $$ = parseContext.intermediate.addConstantUnion($1.d, EbtFloat16, $1.loc, true); +#endif + } | BOOLCONSTANT { $$ = parseContext.intermediate.addConstantUnion($1.b, $1.loc, true); } @@ -1324,6 +1334,13 @@ type_specifier_nonarray $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtDouble; } + | FLOAT16_T { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; +#endif + } | INT { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtInt; @@ -1380,6 +1397,30 @@ type_specifier_nonarray $$.basicType = EbtDouble; $$.setVector(4); } + | F16VEC2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setVector(2); +#endif + } + | F16VEC3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setVector(3); +#endif + } + | F16VEC4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setVector(4); +#endif + } | BVEC2 { $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); $$.basicType = EbtBool; @@ -1596,6 +1637,102 @@ type_specifier_nonarray $$.basicType = EbtDouble; $$.setMatrix(4, 4); } + | F16MAT2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(2, 2); +#endif + } + | F16MAT3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(3, 3); +#endif + } + | F16MAT4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(4, 4); +#endif + } + | F16MAT2X2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(2, 2); +#endif + } + | F16MAT2X3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(2, 3); +#endif + } + | F16MAT2X4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(2, 4); +#endif + } + | F16MAT3X2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(3, 2); +#endif + } + | F16MAT3X3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(3, 3); +#endif + } + | F16MAT3X4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(3, 4); +#endif + } + | F16MAT4X2 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(4, 2); +#endif + } + | F16MAT4X3 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(4, 3); +#endif + } + | F16MAT4X4 { +#ifdef AMD_EXTENSIONS + parseContext.float16Check($1.loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); + $$.basicType = EbtFloat16; + $$.setMatrix(4, 4); +#endif + } | ATOMIC_UINT { parseContext.vulkanRemoved($1.loc, "atomic counter types"); $$.init($1.loc, parseContext.symbolTable.atGlobalLevel()); diff --git a/glslang/MachineIndependent/glslang_tab.cpp b/glslang/MachineIndependent/glslang_tab.cpp index 3d7dc8e530ff95dc6cbb9a548577946d885101e2..3507c04e6259172f6a6b20a65747146a1dd16082 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp +++ b/glslang/MachineIndependent/glslang_tab.cpp @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 2.7. */ /* Bison implementation for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -26,7 +26,7 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ @@ -44,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.4" +#define YYBISON_VERSION "2.7" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -62,7 +62,8 @@ /* Copy the first part of user declarations. */ -#line 41 "MachineIndependent/glslang.y" /* yacc.c:339 */ +/* Line 371 of yacc.c */ +#line 41 "glslang.y" /* Based on: @@ -87,13 +88,14 @@ Jutta Degener, 1995 using namespace glslang; -#line 91 "MachineIndependent/glslang_tab.cpp" /* yacc.c:339 */ +/* Line 371 of yacc.c */ +#line 93 "glslang_tab.cpp" -# ifndef YY_NULLPTR +# ifndef YY_NULL # if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr +# define YY_NULL nullptr # else -# define YY_NULLPTR 0 +# define YY_NULL 0 # endif # endif @@ -107,9 +109,9 @@ using namespace glslang; /* In a future release of Bison, this section will be replaced by #include "glslang_tab.cpp.h". */ -#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -/* Debug traces. */ +#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -117,288 +119,306 @@ using namespace glslang; extern int yydebug; #endif -/* Token type. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - BREAK = 268, - CONTINUE = 269, - DO = 270, - ELSE = 271, - FOR = 272, - IF = 273, - DISCARD = 274, - RETURN = 275, - SWITCH = 276, - CASE = 277, - DEFAULT = 278, - SUBROUTINE = 279, - BVEC2 = 280, - BVEC3 = 281, - BVEC4 = 282, - IVEC2 = 283, - IVEC3 = 284, - IVEC4 = 285, - I64VEC2 = 286, - I64VEC3 = 287, - I64VEC4 = 288, - UVEC2 = 289, - UVEC3 = 290, - UVEC4 = 291, - U64VEC2 = 292, - U64VEC3 = 293, - U64VEC4 = 294, - VEC2 = 295, - VEC3 = 296, - VEC4 = 297, - MAT2 = 298, - MAT3 = 299, - MAT4 = 300, - CENTROID = 301, - IN = 302, - OUT = 303, - INOUT = 304, - UNIFORM = 305, - PATCH = 306, - SAMPLE = 307, - BUFFER = 308, - SHARED = 309, - COHERENT = 310, - VOLATILE = 311, - RESTRICT = 312, - READONLY = 313, - WRITEONLY = 314, - DVEC2 = 315, - DVEC3 = 316, - DVEC4 = 317, - DMAT2 = 318, - DMAT3 = 319, - DMAT4 = 320, - NOPERSPECTIVE = 321, - FLAT = 322, - SMOOTH = 323, - LAYOUT = 324, - __EXPLICITINTERPAMD = 325, - MAT2X2 = 326, - MAT2X3 = 327, - MAT2X4 = 328, - MAT3X2 = 329, - MAT3X3 = 330, - MAT3X4 = 331, - MAT4X2 = 332, - MAT4X3 = 333, - MAT4X4 = 334, - DMAT2X2 = 335, - DMAT2X3 = 336, - DMAT2X4 = 337, - DMAT3X2 = 338, - DMAT3X3 = 339, - DMAT3X4 = 340, - DMAT4X2 = 341, - DMAT4X3 = 342, - DMAT4X4 = 343, - ATOMIC_UINT = 344, - SAMPLER1D = 345, - SAMPLER2D = 346, - SAMPLER3D = 347, - SAMPLERCUBE = 348, - SAMPLER1DSHADOW = 349, - SAMPLER2DSHADOW = 350, - SAMPLERCUBESHADOW = 351, - SAMPLER1DARRAY = 352, - SAMPLER2DARRAY = 353, - SAMPLER1DARRAYSHADOW = 354, - SAMPLER2DARRAYSHADOW = 355, - ISAMPLER1D = 356, - ISAMPLER2D = 357, - ISAMPLER3D = 358, - ISAMPLERCUBE = 359, - ISAMPLER1DARRAY = 360, - ISAMPLER2DARRAY = 361, - USAMPLER1D = 362, - USAMPLER2D = 363, - USAMPLER3D = 364, - USAMPLERCUBE = 365, - USAMPLER1DARRAY = 366, - USAMPLER2DARRAY = 367, - SAMPLER2DRECT = 368, - SAMPLER2DRECTSHADOW = 369, - ISAMPLER2DRECT = 370, - USAMPLER2DRECT = 371, - SAMPLERBUFFER = 372, - ISAMPLERBUFFER = 373, - USAMPLERBUFFER = 374, - SAMPLERCUBEARRAY = 375, - SAMPLERCUBEARRAYSHADOW = 376, - ISAMPLERCUBEARRAY = 377, - USAMPLERCUBEARRAY = 378, - SAMPLER2DMS = 379, - ISAMPLER2DMS = 380, - USAMPLER2DMS = 381, - SAMPLER2DMSARRAY = 382, - ISAMPLER2DMSARRAY = 383, - USAMPLER2DMSARRAY = 384, - SAMPLEREXTERNALOES = 385, - SAMPLER = 386, - SAMPLERSHADOW = 387, - TEXTURE1D = 388, - TEXTURE2D = 389, - TEXTURE3D = 390, - TEXTURECUBE = 391, - TEXTURE1DARRAY = 392, - TEXTURE2DARRAY = 393, - ITEXTURE1D = 394, - ITEXTURE2D = 395, - ITEXTURE3D = 396, - ITEXTURECUBE = 397, - ITEXTURE1DARRAY = 398, - ITEXTURE2DARRAY = 399, - UTEXTURE1D = 400, - UTEXTURE2D = 401, - UTEXTURE3D = 402, - UTEXTURECUBE = 403, - UTEXTURE1DARRAY = 404, - UTEXTURE2DARRAY = 405, - TEXTURE2DRECT = 406, - ITEXTURE2DRECT = 407, - UTEXTURE2DRECT = 408, - TEXTUREBUFFER = 409, - ITEXTUREBUFFER = 410, - UTEXTUREBUFFER = 411, - TEXTURECUBEARRAY = 412, - ITEXTURECUBEARRAY = 413, - UTEXTURECUBEARRAY = 414, - TEXTURE2DMS = 415, - ITEXTURE2DMS = 416, - UTEXTURE2DMS = 417, - TEXTURE2DMSARRAY = 418, - ITEXTURE2DMSARRAY = 419, - UTEXTURE2DMSARRAY = 420, - SUBPASSINPUT = 421, - SUBPASSINPUTMS = 422, - ISUBPASSINPUT = 423, - ISUBPASSINPUTMS = 424, - USUBPASSINPUT = 425, - USUBPASSINPUTMS = 426, - IMAGE1D = 427, - IIMAGE1D = 428, - UIMAGE1D = 429, - IMAGE2D = 430, - IIMAGE2D = 431, - UIMAGE2D = 432, - IMAGE3D = 433, - IIMAGE3D = 434, - UIMAGE3D = 435, - IMAGE2DRECT = 436, - IIMAGE2DRECT = 437, - UIMAGE2DRECT = 438, - IMAGECUBE = 439, - IIMAGECUBE = 440, - UIMAGECUBE = 441, - IMAGEBUFFER = 442, - IIMAGEBUFFER = 443, - UIMAGEBUFFER = 444, - IMAGE1DARRAY = 445, - IIMAGE1DARRAY = 446, - UIMAGE1DARRAY = 447, - IMAGE2DARRAY = 448, - IIMAGE2DARRAY = 449, - UIMAGE2DARRAY = 450, - IMAGECUBEARRAY = 451, - IIMAGECUBEARRAY = 452, - UIMAGECUBEARRAY = 453, - IMAGE2DMS = 454, - IIMAGE2DMS = 455, - UIMAGE2DMS = 456, - IMAGE2DMSARRAY = 457, - IIMAGE2DMSARRAY = 458, - UIMAGE2DMSARRAY = 459, - STRUCT = 460, - VOID = 461, - WHILE = 462, - IDENTIFIER = 463, - TYPE_NAME = 464, - FLOATCONSTANT = 465, - DOUBLECONSTANT = 466, - INTCONSTANT = 467, - UINTCONSTANT = 468, - INT64CONSTANT = 469, - UINT64CONSTANT = 470, - BOOLCONSTANT = 471, - LEFT_OP = 472, - RIGHT_OP = 473, - INC_OP = 474, - DEC_OP = 475, - LE_OP = 476, - GE_OP = 477, - EQ_OP = 478, - NE_OP = 479, - AND_OP = 480, - OR_OP = 481, - XOR_OP = 482, - MUL_ASSIGN = 483, - DIV_ASSIGN = 484, - ADD_ASSIGN = 485, - MOD_ASSIGN = 486, - LEFT_ASSIGN = 487, - RIGHT_ASSIGN = 488, - AND_ASSIGN = 489, - XOR_ASSIGN = 490, - OR_ASSIGN = 491, - SUB_ASSIGN = 492, - LEFT_PAREN = 493, - RIGHT_PAREN = 494, - LEFT_BRACKET = 495, - RIGHT_BRACKET = 496, - LEFT_BRACE = 497, - RIGHT_BRACE = 498, - DOT = 499, - COMMA = 500, - COLON = 501, - EQUAL = 502, - SEMICOLON = 503, - BANG = 504, - DASH = 505, - TILDE = 506, - PLUS = 507, - STAR = 508, - SLASH = 509, - PERCENT = 510, - LEFT_ANGLE = 511, - RIGHT_ANGLE = 512, - VERTICAL_BAR = 513, - CARET = 514, - AMPERSAND = 515, - QUESTION = 516, - INVARIANT = 517, - PRECISE = 518, - HIGH_PRECISION = 519, - MEDIUM_PRECISION = 520, - LOW_PRECISION = 521, - PRECISION = 522, - PACKED = 523, - RESOURCE = 524, - SUPERP = 525 - }; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + FLOAT16_T = 268, + BREAK = 269, + CONTINUE = 270, + DO = 271, + ELSE = 272, + FOR = 273, + IF = 274, + DISCARD = 275, + RETURN = 276, + SWITCH = 277, + CASE = 278, + DEFAULT = 279, + SUBROUTINE = 280, + BVEC2 = 281, + BVEC3 = 282, + BVEC4 = 283, + IVEC2 = 284, + IVEC3 = 285, + IVEC4 = 286, + I64VEC2 = 287, + I64VEC3 = 288, + I64VEC4 = 289, + UVEC2 = 290, + UVEC3 = 291, + UVEC4 = 292, + U64VEC2 = 293, + U64VEC3 = 294, + U64VEC4 = 295, + VEC2 = 296, + VEC3 = 297, + VEC4 = 298, + MAT2 = 299, + MAT3 = 300, + MAT4 = 301, + CENTROID = 302, + IN = 303, + OUT = 304, + INOUT = 305, + UNIFORM = 306, + PATCH = 307, + SAMPLE = 308, + BUFFER = 309, + SHARED = 310, + COHERENT = 311, + VOLATILE = 312, + RESTRICT = 313, + READONLY = 314, + WRITEONLY = 315, + DVEC2 = 316, + DVEC3 = 317, + DVEC4 = 318, + DMAT2 = 319, + DMAT3 = 320, + DMAT4 = 321, + F16VEC2 = 322, + F16VEC3 = 323, + F16VEC4 = 324, + F16MAT2 = 325, + F16MAT3 = 326, + F16MAT4 = 327, + NOPERSPECTIVE = 328, + FLAT = 329, + SMOOTH = 330, + LAYOUT = 331, + __EXPLICITINTERPAMD = 332, + MAT2X2 = 333, + MAT2X3 = 334, + MAT2X4 = 335, + MAT3X2 = 336, + MAT3X3 = 337, + MAT3X4 = 338, + MAT4X2 = 339, + MAT4X3 = 340, + MAT4X4 = 341, + DMAT2X2 = 342, + DMAT2X3 = 343, + DMAT2X4 = 344, + DMAT3X2 = 345, + DMAT3X3 = 346, + DMAT3X4 = 347, + DMAT4X2 = 348, + DMAT4X3 = 349, + DMAT4X4 = 350, + F16MAT2X2 = 351, + F16MAT2X3 = 352, + F16MAT2X4 = 353, + F16MAT3X2 = 354, + F16MAT3X3 = 355, + F16MAT3X4 = 356, + F16MAT4X2 = 357, + F16MAT4X3 = 358, + F16MAT4X4 = 359, + ATOMIC_UINT = 360, + SAMPLER1D = 361, + SAMPLER2D = 362, + SAMPLER3D = 363, + SAMPLERCUBE = 364, + SAMPLER1DSHADOW = 365, + SAMPLER2DSHADOW = 366, + SAMPLERCUBESHADOW = 367, + SAMPLER1DARRAY = 368, + SAMPLER2DARRAY = 369, + SAMPLER1DARRAYSHADOW = 370, + SAMPLER2DARRAYSHADOW = 371, + ISAMPLER1D = 372, + ISAMPLER2D = 373, + ISAMPLER3D = 374, + ISAMPLERCUBE = 375, + ISAMPLER1DARRAY = 376, + ISAMPLER2DARRAY = 377, + USAMPLER1D = 378, + USAMPLER2D = 379, + USAMPLER3D = 380, + USAMPLERCUBE = 381, + USAMPLER1DARRAY = 382, + USAMPLER2DARRAY = 383, + SAMPLER2DRECT = 384, + SAMPLER2DRECTSHADOW = 385, + ISAMPLER2DRECT = 386, + USAMPLER2DRECT = 387, + SAMPLERBUFFER = 388, + ISAMPLERBUFFER = 389, + USAMPLERBUFFER = 390, + SAMPLERCUBEARRAY = 391, + SAMPLERCUBEARRAYSHADOW = 392, + ISAMPLERCUBEARRAY = 393, + USAMPLERCUBEARRAY = 394, + SAMPLER2DMS = 395, + ISAMPLER2DMS = 396, + USAMPLER2DMS = 397, + SAMPLER2DMSARRAY = 398, + ISAMPLER2DMSARRAY = 399, + USAMPLER2DMSARRAY = 400, + SAMPLEREXTERNALOES = 401, + SAMPLER = 402, + SAMPLERSHADOW = 403, + TEXTURE1D = 404, + TEXTURE2D = 405, + TEXTURE3D = 406, + TEXTURECUBE = 407, + TEXTURE1DARRAY = 408, + TEXTURE2DARRAY = 409, + ITEXTURE1D = 410, + ITEXTURE2D = 411, + ITEXTURE3D = 412, + ITEXTURECUBE = 413, + ITEXTURE1DARRAY = 414, + ITEXTURE2DARRAY = 415, + UTEXTURE1D = 416, + UTEXTURE2D = 417, + UTEXTURE3D = 418, + UTEXTURECUBE = 419, + UTEXTURE1DARRAY = 420, + UTEXTURE2DARRAY = 421, + TEXTURE2DRECT = 422, + ITEXTURE2DRECT = 423, + UTEXTURE2DRECT = 424, + TEXTUREBUFFER = 425, + ITEXTUREBUFFER = 426, + UTEXTUREBUFFER = 427, + TEXTURECUBEARRAY = 428, + ITEXTURECUBEARRAY = 429, + UTEXTURECUBEARRAY = 430, + TEXTURE2DMS = 431, + ITEXTURE2DMS = 432, + UTEXTURE2DMS = 433, + TEXTURE2DMSARRAY = 434, + ITEXTURE2DMSARRAY = 435, + UTEXTURE2DMSARRAY = 436, + SUBPASSINPUT = 437, + SUBPASSINPUTMS = 438, + ISUBPASSINPUT = 439, + ISUBPASSINPUTMS = 440, + USUBPASSINPUT = 441, + USUBPASSINPUTMS = 442, + IMAGE1D = 443, + IIMAGE1D = 444, + UIMAGE1D = 445, + IMAGE2D = 446, + IIMAGE2D = 447, + UIMAGE2D = 448, + IMAGE3D = 449, + IIMAGE3D = 450, + UIMAGE3D = 451, + IMAGE2DRECT = 452, + IIMAGE2DRECT = 453, + UIMAGE2DRECT = 454, + IMAGECUBE = 455, + IIMAGECUBE = 456, + UIMAGECUBE = 457, + IMAGEBUFFER = 458, + IIMAGEBUFFER = 459, + UIMAGEBUFFER = 460, + IMAGE1DARRAY = 461, + IIMAGE1DARRAY = 462, + UIMAGE1DARRAY = 463, + IMAGE2DARRAY = 464, + IIMAGE2DARRAY = 465, + UIMAGE2DARRAY = 466, + IMAGECUBEARRAY = 467, + IIMAGECUBEARRAY = 468, + UIMAGECUBEARRAY = 469, + IMAGE2DMS = 470, + IIMAGE2DMS = 471, + UIMAGE2DMS = 472, + IMAGE2DMSARRAY = 473, + IIMAGE2DMSARRAY = 474, + UIMAGE2DMSARRAY = 475, + STRUCT = 476, + VOID = 477, + WHILE = 478, + IDENTIFIER = 479, + TYPE_NAME = 480, + FLOATCONSTANT = 481, + DOUBLECONSTANT = 482, + INTCONSTANT = 483, + UINTCONSTANT = 484, + INT64CONSTANT = 485, + UINT64CONSTANT = 486, + BOOLCONSTANT = 487, + FLOAT16CONSTANT = 488, + LEFT_OP = 489, + RIGHT_OP = 490, + INC_OP = 491, + DEC_OP = 492, + LE_OP = 493, + GE_OP = 494, + EQ_OP = 495, + NE_OP = 496, + AND_OP = 497, + OR_OP = 498, + XOR_OP = 499, + MUL_ASSIGN = 500, + DIV_ASSIGN = 501, + ADD_ASSIGN = 502, + MOD_ASSIGN = 503, + LEFT_ASSIGN = 504, + RIGHT_ASSIGN = 505, + AND_ASSIGN = 506, + XOR_ASSIGN = 507, + OR_ASSIGN = 508, + SUB_ASSIGN = 509, + LEFT_PAREN = 510, + RIGHT_PAREN = 511, + LEFT_BRACKET = 512, + RIGHT_BRACKET = 513, + LEFT_BRACE = 514, + RIGHT_BRACE = 515, + DOT = 516, + COMMA = 517, + COLON = 518, + EQUAL = 519, + SEMICOLON = 520, + BANG = 521, + DASH = 522, + TILDE = 523, + PLUS = 524, + STAR = 525, + SLASH = 526, + PERCENT = 527, + LEFT_ANGLE = 528, + RIGHT_ANGLE = 529, + VERTICAL_BAR = 530, + CARET = 531, + AMPERSAND = 532, + QUESTION = 533, + INVARIANT = 534, + PRECISE = 535, + HIGH_PRECISION = 536, + MEDIUM_PRECISION = 537, + LOW_PRECISION = 538, + PRECISION = 539, + PACKED = 540, + RESOURCE = 541, + SUPERP = 542 + }; #endif -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE { -#line 66 "MachineIndependent/glslang.y" /* yacc.c:355 */ +/* Line 387 of yacc.c */ +#line 66 "glslang.y" struct { glslang::TSourceLoc loc; @@ -432,22 +452,35 @@ union YYSTYPE }; } interm; -#line 436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:355 */ -}; -typedef union YYSTYPE YYSTYPE; +/* Line 387 of yacc.c */ +#line 458 "glslang_tab.cpp" +} YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif - +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus int yyparse (glslang::TParseContext* pParseContext); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ +#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ /* Copy the second part of user declarations. */ -#line 100 "MachineIndependent/glslang.y" /* yacc.c:358 */ +/* Line 390 of yacc.c */ +#line 100 "glslang.y" /* windows only pragma */ @@ -463,7 +496,8 @@ int yyparse (glslang::TParseContext* pParseContext); extern int yylex(YYSTYPE*, TParseContext&); -#line 467 "MachineIndependent/glslang_tab.cpp" /* yacc.c:358 */ +/* Line 390 of yacc.c */ +#line 501 "glslang_tab.cpp" #ifdef short # undef short @@ -477,8 +511,11 @@ typedef unsigned char yytype_uint8; #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; -#else +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) typedef signed char yytype_int8; +#else +typedef short int yytype_int8; #endif #ifdef YYTYPE_UINT16 @@ -498,7 +535,8 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else @@ -520,33 +558,6 @@ typedef short int yytype_int16; # endif #endif -#ifndef YY_ATTRIBUTE -# if (defined __GNUC__ \ - && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ - || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -# else -# define YY_ATTRIBUTE(Spec) /* empty */ -# endif -#endif - -#ifndef YY_ATTRIBUTE_PURE -# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -#endif - -#ifndef YY_ATTRIBUTE_UNUSED -# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) -#endif - -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -# endif -#endif - /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -554,26 +565,24 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ - _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ - _Pragma ("GCC diagnostic pop") +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(N) (N) #else -# define YY_INITIAL_VALUE(Value) Value -#endif -#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int yyi) +#else +static int +YYID (yyi) + int yyi; #endif -#ifndef YY_INITIAL_VALUE -# define YY_INITIAL_VALUE(Value) /* Nothing. */ +{ + return yyi; +} #endif - #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ @@ -591,7 +600,8 @@ typedef short int yytype_int16; # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS @@ -603,8 +613,8 @@ typedef short int yytype_int16; # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's 'empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely @@ -620,7 +630,7 @@ typedef short int yytype_int16; # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ - && (defined YYFREE || defined free))) + && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 @@ -628,13 +638,15 @@ typedef short int yytype_int16; # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined EXIT_SUCCESS +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined EXIT_SUCCESS +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif @@ -644,7 +656,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc @@ -669,16 +681,16 @@ union yyalloc elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ -# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ - do \ - { \ - YYSIZE_T yynewbytes; \ - YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ - Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ - } \ - while (0) +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ + Stack = &yyptr->Stack_alloc; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (YYID (0)) #endif @@ -697,35 +709,33 @@ union yyalloc for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ - while (0) + while (YYID (0)) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 249 +#define YYFINAL 265 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 5966 +#define YYLAST 6373 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 271 +#define YYNTOKENS 288 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 100 /* YYNRULES -- Number of rules. */ -#define YYNRULES 422 -/* YYNSTATES -- Number of states. */ -#define YYNSTATES 554 +#define YYNRULES 439 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 571 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 525 +#define YYMAXUTOK 542 -#define YYTRANSLATE(YYX) \ +#define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) -/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const yytype_uint16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -780,56 +790,224 @@ static const yytype_uint16 yytranslate[] = 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270 + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287 }; #if YYDEBUG - /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const yytype_uint16 yyprhs[] = +{ + 0, 0, 3, 5, 7, 9, 11, 13, 15, 17, + 19, 21, 23, 27, 29, 34, 36, 40, 43, 46, + 48, 50, 52, 55, 58, 61, 63, 66, 70, 73, + 75, 77, 79, 82, 85, 88, 90, 92, 94, 96, + 98, 102, 106, 110, 112, 116, 120, 122, 126, 130, + 132, 136, 140, 144, 148, 150, 154, 158, 160, 164, + 166, 170, 172, 176, 178, 182, 184, 188, 190, 194, + 196, 197, 204, 206, 210, 212, 214, 216, 218, 220, + 222, 224, 226, 228, 230, 232, 234, 238, 240, 243, + 246, 251, 254, 258, 263, 266, 270, 275, 276, 283, + 286, 290, 293, 295, 297, 300, 304, 308, 311, 315, + 318, 320, 323, 325, 327, 329, 333, 338, 345, 351, + 353, 356, 360, 366, 371, 373, 376, 378, 380, 382, + 384, 386, 391, 393, 397, 399, 403, 405, 407, 409, + 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, + 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, + 452, 454, 456, 458, 460, 465, 467, 471, 473, 476, + 479, 483, 487, 492, 494, 496, 498, 500, 502, 504, + 506, 508, 510, 512, 514, 516, 518, 520, 522, 524, + 526, 528, 530, 532, 534, 536, 538, 540, 542, 544, + 546, 548, 550, 552, 554, 556, 558, 560, 562, 564, + 566, 568, 570, 572, 574, 576, 578, 580, 582, 584, + 586, 588, 590, 592, 594, 596, 598, 600, 602, 604, + 606, 608, 610, 612, 614, 616, 618, 620, 622, 624, + 626, 628, 630, 632, 634, 636, 638, 640, 642, 644, + 646, 648, 650, 652, 654, 656, 658, 660, 662, 664, + 666, 668, 670, 672, 674, 676, 678, 680, 682, 684, + 686, 688, 690, 692, 694, 696, 698, 700, 702, 704, + 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, + 726, 728, 730, 732, 734, 736, 738, 740, 742, 744, + 746, 748, 750, 752, 754, 756, 758, 760, 762, 764, + 766, 768, 770, 772, 774, 776, 778, 780, 782, 784, + 786, 788, 790, 792, 794, 796, 798, 800, 802, 804, + 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, + 826, 828, 830, 832, 834, 836, 838, 840, 842, 844, + 846, 848, 850, 852, 854, 856, 858, 860, 862, 864, + 866, 868, 870, 872, 873, 880, 881, 887, 889, 892, + 896, 901, 903, 907, 909, 912, 914, 918, 923, 925, + 929, 931, 933, 935, 937, 939, 941, 943, 945, 947, + 949, 952, 953, 954, 960, 962, 964, 965, 968, 969, + 972, 975, 979, 981, 984, 986, 989, 995, 999, 1001, + 1003, 1008, 1009, 1018, 1019, 1021, 1025, 1028, 1029, 1036, + 1037, 1046, 1047, 1055, 1057, 1059, 1061, 1062, 1065, 1069, + 1072, 1075, 1078, 1082, 1085, 1087, 1090, 1092, 1094, 1095 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = +{ + 384, 0, -1, 224, -1, 289, -1, 228, -1, 229, + -1, 230, -1, 231, -1, 226, -1, 227, -1, 233, + -1, 232, -1, 255, 317, 256, -1, 290, -1, 291, + 257, 292, 258, -1, 293, -1, 291, 261, 224, -1, + 291, 236, -1, 291, 237, -1, 317, -1, 294, -1, + 295, -1, 297, 256, -1, 296, 256, -1, 298, 222, + -1, 298, -1, 298, 315, -1, 297, 262, 315, -1, + 299, 255, -1, 343, -1, 291, -1, 291, -1, 236, + 300, -1, 237, 300, -1, 301, 300, -1, 269, -1, + 267, -1, 266, -1, 268, -1, 300, -1, 302, 270, + 300, -1, 302, 271, 300, -1, 302, 272, 300, -1, + 302, -1, 303, 269, 302, -1, 303, 267, 302, -1, + 303, -1, 304, 234, 303, -1, 304, 235, 303, -1, + 304, -1, 305, 273, 304, -1, 305, 274, 304, -1, + 305, 238, 304, -1, 305, 239, 304, -1, 305, -1, + 306, 240, 305, -1, 306, 241, 305, -1, 306, -1, + 307, 277, 306, -1, 307, -1, 308, 276, 307, -1, + 308, -1, 309, 275, 308, -1, 309, -1, 310, 242, + 309, -1, 310, -1, 311, 244, 310, -1, 311, -1, + 312, 243, 311, -1, 312, -1, -1, 312, 278, 314, + 317, 263, 315, -1, 313, -1, 300, 316, 315, -1, + 264, -1, 245, -1, 246, -1, 248, -1, 247, -1, + 254, -1, 249, -1, 250, -1, 251, -1, 252, -1, + 253, -1, 315, -1, 317, 262, 315, -1, 313, -1, + 323, 265, -1, 330, 265, -1, 284, 346, 343, 265, + -1, 320, 265, -1, 320, 224, 265, -1, 320, 224, + 344, 265, -1, 339, 265, -1, 339, 224, 265, -1, + 339, 224, 322, 265, -1, -1, 339, 224, 259, 321, + 350, 260, -1, 262, 224, -1, 322, 262, 224, -1, + 324, 256, -1, 326, -1, 325, -1, 326, 328, -1, + 325, 262, 328, -1, 332, 224, 255, -1, 343, 224, + -1, 343, 224, 344, -1, 339, 327, -1, 327, -1, + 339, 329, -1, 329, -1, 343, -1, 331, -1, 330, + 262, 224, -1, 330, 262, 224, 344, -1, 330, 262, + 224, 344, 264, 354, -1, 330, 262, 224, 264, 354, + -1, 332, -1, 332, 224, -1, 332, 224, 344, -1, + 332, 224, 344, 264, 354, -1, 332, 224, 264, 354, + -1, 343, -1, 339, 343, -1, 279, -1, 75, -1, + 74, -1, 73, -1, 77, -1, 76, 255, 336, 256, + -1, 337, -1, 336, 262, 337, -1, 224, -1, 224, + 264, 318, -1, 55, -1, 280, -1, 340, -1, 339, + 340, -1, 341, -1, 335, -1, 346, -1, 334, -1, + 333, -1, 338, -1, 5, -1, 3, -1, 4, -1, + 50, -1, 48, -1, 49, -1, 47, -1, 52, -1, + 53, -1, 51, -1, 54, -1, 55, -1, 56, -1, + 57, -1, 58, -1, 59, -1, 60, -1, 25, -1, + 25, 255, 342, 256, -1, 225, -1, 342, 262, 225, + -1, 345, -1, 345, 344, -1, 257, 258, -1, 257, + 313, 258, -1, 344, 257, 258, -1, 344, 257, 313, + 258, -1, 222, -1, 7, -1, 8, -1, 13, -1, + 9, -1, 10, -1, 11, -1, 12, -1, 6, -1, + 41, -1, 42, -1, 43, -1, 61, -1, 62, -1, + 63, -1, 67, -1, 68, -1, 69, -1, 26, -1, + 27, -1, 28, -1, 29, -1, 30, -1, 31, -1, + 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, + 37, -1, 38, -1, 39, -1, 40, -1, 44, -1, + 45, -1, 46, -1, 78, -1, 79, -1, 80, -1, + 81, -1, 82, -1, 83, -1, 84, -1, 85, -1, + 86, -1, 64, -1, 65, -1, 66, -1, 87, -1, + 88, -1, 89, -1, 90, -1, 91, -1, 92, -1, + 93, -1, 94, -1, 95, -1, 70, -1, 71, -1, + 72, -1, 96, -1, 97, -1, 98, -1, 99, -1, + 100, -1, 101, -1, 102, -1, 103, -1, 104, -1, + 105, -1, 106, -1, 107, -1, 108, -1, 109, -1, + 110, -1, 111, -1, 112, -1, 113, -1, 114, -1, + 115, -1, 116, -1, 136, -1, 137, -1, 117, -1, + 118, -1, 119, -1, 120, -1, 121, -1, 122, -1, + 138, -1, 123, -1, 124, -1, 125, -1, 126, -1, + 127, -1, 128, -1, 139, -1, 129, -1, 130, -1, + 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, + 140, -1, 141, -1, 142, -1, 143, -1, 144, -1, + 145, -1, 147, -1, 148, -1, 149, -1, 150, -1, + 151, -1, 152, -1, 153, -1, 154, -1, 173, -1, + 155, -1, 156, -1, 157, -1, 158, -1, 159, -1, + 160, -1, 174, -1, 161, -1, 162, -1, 163, -1, + 164, -1, 165, -1, 166, -1, 175, -1, 167, -1, + 168, -1, 169, -1, 170, -1, 171, -1, 172, -1, + 176, -1, 177, -1, 178, -1, 179, -1, 180, -1, + 181, -1, 188, -1, 189, -1, 190, -1, 191, -1, + 192, -1, 193, -1, 194, -1, 195, -1, 196, -1, + 197, -1, 198, -1, 199, -1, 200, -1, 201, -1, + 202, -1, 203, -1, 204, -1, 205, -1, 206, -1, + 207, -1, 208, -1, 209, -1, 210, -1, 211, -1, + 212, -1, 213, -1, 214, -1, 215, -1, 216, -1, + 217, -1, 218, -1, 219, -1, 220, -1, 146, -1, + 182, -1, 183, -1, 184, -1, 185, -1, 186, -1, + 187, -1, 347, -1, 225, -1, 281, -1, 282, -1, + 283, -1, -1, 221, 224, 259, 348, 350, 260, -1, + -1, 221, 259, 349, 350, 260, -1, 351, -1, 350, + 351, -1, 343, 352, 265, -1, 339, 343, 352, 265, + -1, 353, -1, 352, 262, 353, -1, 224, -1, 224, + 344, -1, 315, -1, 259, 355, 260, -1, 259, 355, + 262, 260, -1, 354, -1, 355, 262, 354, -1, 319, + -1, 359, -1, 358, -1, 356, -1, 368, -1, 369, + -1, 372, -1, 375, -1, 376, -1, 383, -1, 259, + 260, -1, -1, -1, 259, 360, 367, 361, 260, -1, + 366, -1, 358, -1, -1, 364, 359, -1, -1, 365, + 358, -1, 259, 260, -1, 259, 367, 260, -1, 357, + -1, 367, 357, -1, 265, -1, 317, 265, -1, 19, + 255, 317, 256, 370, -1, 363, 17, 363, -1, 363, + -1, 317, -1, 332, 224, 264, 354, -1, -1, 22, + 255, 317, 256, 373, 259, 374, 260, -1, -1, 367, + -1, 23, 317, 263, -1, 24, 263, -1, -1, 223, + 255, 377, 371, 256, 362, -1, -1, 16, 378, 357, + 223, 255, 317, 256, 265, -1, -1, 18, 255, 379, + 380, 382, 256, 362, -1, 368, -1, 356, -1, 371, + -1, -1, 381, 265, -1, 381, 265, 317, -1, 15, + 265, -1, 14, 265, -1, 21, 265, -1, 21, 317, + 265, -1, 20, 265, -1, 385, -1, 384, 385, -1, + 386, -1, 319, -1, -1, 323, 387, 366, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 246, 246, 252, 255, 258, 262, 266, 270, 273, - 277, 280, 288, 291, 294, 297, 300, 305, 313, 320, - 327, 333, 337, 344, 347, 353, 360, 370, 378, 383, - 413, 419, 423, 427, 447, 448, 449, 450, 456, 457, - 462, 467, 476, 477, 482, 490, 491, 497, 506, 507, - 512, 517, 522, 530, 531, 539, 550, 551, 560, 561, - 570, 571, 580, 581, 589, 590, 598, 599, 607, 608, - 608, 626, 627, 642, 646, 650, 654, 659, 663, 667, - 671, 675, 679, 683, 690, 693, 704, 711, 716, 721, - 729, 733, 737, 741, 746, 751, 760, 760, 771, 775, - 782, 789, 792, 799, 807, 827, 845, 860, 883, 894, - 904, 914, 924, 933, 936, 940, 944, 949, 957, 962, - 967, 972, 977, 986, 997, 1024, 1033, 1040, 1047, 1054, - 1066, 1072, 1075, 1082, 1086, 1090, 1098, 1107, 1110, 1121, - 1124, 1127, 1131, 1135, 1139, 1146, 1150, 1162, 1176, 1181, - 1187, 1193, 1200, 1206, 1211, 1216, 1221, 1228, 1232, 1236, - 1240, 1244, 1248, 1254, 1266, 1269, 1274, 1278, 1287, 1292, - 1300, 1304, 1314, 1318, 1322, 1327, 1331, 1336, 1341, 1346, - 1350, 1355, 1360, 1365, 1371, 1377, 1383, 1388, 1393, 1398, - 1403, 1408, 1413, 1419, 1425, 1431, 1437, 1443, 1449, 1455, - 1461, 1467, 1472, 1477, 1482, 1487, 1492, 1497, 1502, 1507, - 1512, 1517, 1522, 1527, 1533, 1539, 1545, 1551, 1557, 1563, - 1569, 1575, 1581, 1587, 1593, 1599, 1604, 1609, 1614, 1619, - 1624, 1629, 1634, 1639, 1644, 1649, 1654, 1659, 1664, 1669, - 1674, 1679, 1684, 1689, 1694, 1699, 1704, 1709, 1714, 1719, - 1724, 1729, 1734, 1739, 1744, 1749, 1754, 1759, 1764, 1769, - 1774, 1779, 1784, 1789, 1794, 1799, 1804, 1809, 1814, 1819, - 1824, 1829, 1834, 1839, 1844, 1849, 1854, 1859, 1864, 1869, - 1874, 1879, 1884, 1889, 1894, 1899, 1904, 1909, 1914, 1919, - 1924, 1929, 1934, 1939, 1944, 1949, 1954, 1959, 1964, 1969, - 1974, 1979, 1984, 1989, 1994, 1999, 2004, 2009, 2014, 2019, - 2024, 2029, 2034, 2039, 2044, 2049, 2054, 2059, 2064, 2069, - 2074, 2079, 2084, 2089, 2094, 2099, 2104, 2109, 2114, 2119, - 2124, 2129, 2134, 2139, 2144, 2150, 2156, 2162, 2168, 2174, - 2180, 2186, 2191, 2207, 2212, 2217, 2225, 2225, 2236, 2236, - 2246, 2249, 2262, 2280, 2304, 2308, 2314, 2319, 2330, 2333, - 2339, 2348, 2351, 2357, 2361, 2362, 2368, 2369, 2370, 2371, - 2372, 2373, 2374, 2378, 2379, 2383, 2379, 2395, 2396, 2400, - 2400, 2407, 2407, 2421, 2424, 2432, 2440, 2451, 2452, 2456, - 2463, 2467, 2475, 2479, 2492, 2492, 2512, 2515, 2521, 2533, - 2545, 2545, 2560, 2560, 2576, 2576, 2597, 2600, 2606, 2609, - 2615, 2619, 2626, 2631, 2636, 2643, 2646, 2655, 2659, 2666, - 2669, 2675, 2675 + 0, 250, 250, 256, 259, 262, 266, 270, 274, 277, + 281, 287, 290, 298, 301, 304, 307, 310, 315, 323, + 330, 337, 343, 347, 354, 357, 363, 370, 380, 388, + 393, 423, 429, 433, 437, 457, 458, 459, 460, 466, + 467, 472, 477, 486, 487, 492, 500, 501, 507, 516, + 517, 522, 527, 532, 540, 541, 549, 560, 561, 570, + 571, 580, 581, 590, 591, 599, 600, 608, 609, 617, + 618, 618, 636, 637, 652, 656, 660, 664, 669, 673, + 677, 681, 685, 689, 693, 700, 703, 714, 721, 726, + 731, 739, 743, 747, 751, 756, 761, 770, 770, 781, + 785, 792, 799, 802, 809, 817, 837, 855, 870, 893, + 904, 914, 924, 934, 943, 946, 950, 954, 959, 967, + 972, 977, 982, 987, 996, 1007, 1034, 1043, 1050, 1057, + 1064, 1076, 1082, 1085, 1092, 1096, 1100, 1108, 1117, 1120, + 1131, 1134, 1137, 1141, 1145, 1149, 1156, 1160, 1172, 1186, + 1191, 1197, 1203, 1210, 1216, 1221, 1226, 1231, 1238, 1242, + 1246, 1250, 1254, 1258, 1264, 1276, 1279, 1284, 1288, 1297, + 1302, 1310, 1314, 1324, 1328, 1332, 1337, 1344, 1348, 1353, + 1358, 1363, 1367, 1372, 1377, 1382, 1388, 1394, 1400, 1408, + 1416, 1424, 1429, 1434, 1439, 1444, 1449, 1454, 1460, 1466, + 1472, 1478, 1484, 1490, 1496, 1502, 1508, 1513, 1518, 1523, + 1528, 1533, 1538, 1543, 1548, 1553, 1558, 1563, 1568, 1574, + 1580, 1586, 1592, 1598, 1604, 1610, 1616, 1622, 1628, 1634, + 1640, 1648, 1656, 1664, 1672, 1680, 1688, 1696, 1704, 1712, + 1720, 1728, 1736, 1741, 1746, 1751, 1756, 1761, 1766, 1771, + 1776, 1781, 1786, 1791, 1796, 1801, 1806, 1811, 1816, 1821, + 1826, 1831, 1836, 1841, 1846, 1851, 1856, 1861, 1866, 1871, + 1876, 1881, 1886, 1891, 1896, 1901, 1906, 1911, 1916, 1921, + 1926, 1931, 1936, 1941, 1946, 1951, 1956, 1961, 1966, 1971, + 1976, 1981, 1986, 1991, 1996, 2001, 2006, 2011, 2016, 2021, + 2026, 2031, 2036, 2041, 2046, 2051, 2056, 2061, 2066, 2071, + 2076, 2081, 2086, 2091, 2096, 2101, 2106, 2111, 2116, 2121, + 2126, 2131, 2136, 2141, 2146, 2151, 2156, 2161, 2166, 2171, + 2176, 2181, 2186, 2191, 2196, 2201, 2206, 2211, 2216, 2221, + 2226, 2231, 2236, 2241, 2246, 2251, 2256, 2261, 2266, 2271, + 2276, 2281, 2287, 2293, 2299, 2305, 2311, 2317, 2323, 2328, + 2344, 2349, 2354, 2362, 2362, 2373, 2373, 2383, 2386, 2399, + 2417, 2441, 2445, 2451, 2456, 2467, 2470, 2476, 2485, 2488, + 2494, 2498, 2499, 2505, 2506, 2507, 2508, 2509, 2510, 2511, + 2515, 2516, 2520, 2516, 2532, 2533, 2537, 2537, 2544, 2544, + 2558, 2561, 2569, 2577, 2588, 2589, 2593, 2600, 2604, 2612, + 2616, 2629, 2629, 2649, 2652, 2658, 2670, 2682, 2682, 2697, + 2697, 2713, 2713, 2734, 2737, 2743, 2746, 2752, 2756, 2763, + 2768, 2773, 2780, 2783, 2792, 2796, 2803, 2806, 2812, 2812 }; #endif @@ -839,31 +1017,34 @@ static const yytype_uint16 yyrline[] = static const char *const yytname[] = { "$end", "error", "$undefined", "ATTRIBUTE", "VARYING", "CONST", "BOOL", - "FLOAT", "DOUBLE", "INT", "UINT", "INT64_T", "UINT64_T", "BREAK", - "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", "SWITCH", - "CASE", "DEFAULT", "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", "IVEC2", - "IVEC3", "IVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "UVEC2", "UVEC3", - "UVEC4", "U64VEC2", "U64VEC3", "U64VEC4", "VEC2", "VEC3", "VEC4", "MAT2", - "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", "UNIFORM", "PATCH", - "SAMPLE", "BUFFER", "SHARED", "COHERENT", "VOLATILE", "RESTRICT", - "READONLY", "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", "DMAT3", - "DMAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", + "FLOAT", "DOUBLE", "INT", "UINT", "INT64_T", "UINT64_T", "FLOAT16_T", + "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF", "DISCARD", "RETURN", + "SWITCH", "CASE", "DEFAULT", "SUBROUTINE", "BVEC2", "BVEC3", "BVEC4", + "IVEC2", "IVEC3", "IVEC4", "I64VEC2", "I64VEC3", "I64VEC4", "UVEC2", + "UVEC3", "UVEC4", "U64VEC2", "U64VEC3", "U64VEC4", "VEC2", "VEC3", + "VEC4", "MAT2", "MAT3", "MAT4", "CENTROID", "IN", "OUT", "INOUT", + "UNIFORM", "PATCH", "SAMPLE", "BUFFER", "SHARED", "COHERENT", "VOLATILE", + "RESTRICT", "READONLY", "WRITEONLY", "DVEC2", "DVEC3", "DVEC4", "DMAT2", + "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4", "F16MAT2", "F16MAT3", + "F16MAT4", "NOPERSPECTIVE", "FLAT", "SMOOTH", "LAYOUT", "__EXPLICITINTERPAMD", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4", "MAT4X2", "MAT4X3", "MAT4X4", "DMAT2X2", "DMAT2X3", "DMAT2X4", "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4", - "ATOMIC_UINT", "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", - "SAMPLER1DSHADOW", "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", - "SAMPLER1DARRAY", "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", - "SAMPLER2DARRAYSHADOW", "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", - "ISAMPLERCUBE", "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", - "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", - "USAMPLER2DARRAY", "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", - "ISAMPLER2DRECT", "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", - "USAMPLERBUFFER", "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", - "ISAMPLERCUBEARRAY", "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", - "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", - "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW", - "TEXTURE1D", "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY", + "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3", + "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "ATOMIC_UINT", + "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE", "SAMPLER1DSHADOW", + "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER1DARRAY", + "SAMPLER2DARRAY", "SAMPLER1DARRAYSHADOW", "SAMPLER2DARRAYSHADOW", + "ISAMPLER1D", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE", + "ISAMPLER1DARRAY", "ISAMPLER2DARRAY", "USAMPLER1D", "USAMPLER2D", + "USAMPLER3D", "USAMPLERCUBE", "USAMPLER1DARRAY", "USAMPLER2DARRAY", + "SAMPLER2DRECT", "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", + "USAMPLER2DRECT", "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", + "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY", + "USAMPLERCUBEARRAY", "SAMPLER2DMS", "ISAMPLER2DMS", "USAMPLER2DMS", + "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY", "USAMPLER2DMSARRAY", + "SAMPLEREXTERNALOES", "SAMPLER", "SAMPLERSHADOW", "TEXTURE1D", + "TEXTURE2D", "TEXTURE3D", "TEXTURECUBE", "TEXTURE1DARRAY", "TEXTURE2DARRAY", "ITEXTURE1D", "ITEXTURE2D", "ITEXTURE3D", "ITEXTURECUBE", "ITEXTURE1DARRAY", "ITEXTURE2DARRAY", "UTEXTURE1D", "UTEXTURE2D", "UTEXTURE3D", "UTEXTURECUBE", "UTEXTURE1DARRAY", @@ -882,11 +1063,11 @@ static const char *const yytname[] = "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY", "STRUCT", "VOID", "WHILE", "IDENTIFIER", "TYPE_NAME", "FLOATCONSTANT", "DOUBLECONSTANT", "INTCONSTANT", "UINTCONSTANT", "INT64CONSTANT", - "UINT64CONSTANT", "BOOLCONSTANT", "LEFT_OP", "RIGHT_OP", "INC_OP", - "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", - "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", - "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", - "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", + "UINT64CONSTANT", "BOOLCONSTANT", "FLOAT16CONSTANT", "LEFT_OP", + "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP", "GE_OP", "EQ_OP", "NE_OP", + "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN", "DIV_ASSIGN", "ADD_ASSIGN", + "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN", "AND_ASSIGN", "XOR_ASSIGN", + "OR_ASSIGN", "SUB_ASSIGN", "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET", "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL", "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT", "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", @@ -925,13 +1106,13 @@ static const char *const yytname[] = "switch_statement_list", "case_label", "iteration_statement", "$@10", "$@11", "$@12", "for_init_statement", "conditionopt", "for_rest_statement", "jump_statement", "translation_unit", - "external_declaration", "function_definition", "$@13", YY_NULLPTR + "external_declaration", "function_definition", "$@13", YY_NULL }; #endif # ifdef YYPRINT -/* YYTOKNUM[NUM] -- (External) token number corresponding to the - (internal) symbol number NUM (which must be that of a token). */ +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, @@ -961,370 +1142,447 @@ static const yytype_uint16 yytoknum[] = 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, - 525 + 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, + 535, 536, 537, 538, 539, 540, 541, 542 }; # endif -#define YYPACT_NINF -495 - -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-495))) - -#define YYTABLE_NINF -380 - -#define yytable_value_is_error(Yytable_value) \ - 0 +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const yytype_uint16 yyr1[] = +{ + 0, 288, 289, 290, 290, 290, 290, 290, 290, 290, + 290, 290, 290, 291, 291, 291, 291, 291, 291, 292, + 293, 294, 295, 295, 296, 296, 297, 297, 298, 299, + 299, 300, 300, 300, 300, 301, 301, 301, 301, 302, + 302, 302, 302, 303, 303, 303, 304, 304, 304, 305, + 305, 305, 305, 305, 306, 306, 306, 307, 307, 308, + 308, 309, 309, 310, 310, 311, 311, 312, 312, 313, + 314, 313, 315, 315, 316, 316, 316, 316, 316, 316, + 316, 316, 316, 316, 316, 317, 317, 318, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 321, 320, 322, + 322, 323, 324, 324, 325, 325, 326, 327, 327, 328, + 328, 328, 328, 329, 330, 330, 330, 330, 330, 331, + 331, 331, 331, 331, 332, 332, 333, 334, 334, 334, + 334, 335, 336, 336, 337, 337, 337, 338, 339, 339, + 340, 340, 340, 340, 340, 340, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, + 341, 341, 341, 341, 341, 342, 342, 343, 343, 344, + 344, 344, 344, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 345, 345, 345, 345, 345, 345, 345, 345, 345, 345, + 346, 346, 346, 348, 347, 349, 347, 350, 350, 351, + 351, 352, 352, 353, 353, 354, 354, 354, 355, 355, + 356, 357, 357, 358, 358, 358, 358, 358, 358, 358, + 359, 360, 361, 359, 362, 362, 364, 363, 365, 363, + 366, 366, 367, 367, 368, 368, 369, 370, 370, 371, + 371, 373, 372, 374, 374, 375, 375, 377, 376, 378, + 376, 379, 376, 380, 380, 381, 381, 382, 382, 383, + 383, 383, 383, 383, 384, 384, 385, 385, 387, 386 +}; - /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing - STATE-NUM. */ -static const yytype_int16 yypact[] = +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const yytype_uint8 yyr2[] = { - 2402, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -216, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -198, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -190, -495, -495, -495, -495, -495, -495, -495, - -127, -495, -189, -193, -158, -149, 3885, -207, -495, -98, - -495, -495, -495, -495, 2910, -495, -495, -495, -106, -495, - -495, 547, -495, -495, -62, -45, -90, -495, 5757, -217, - -495, -495, -86, -495, 3885, -495, -495, -495, 3885, -51, - -50, -495, -208, -155, -495, -495, -495, 4339, -81, -495, - -495, -495, -185, -495, -87, -157, -495, -495, 3885, -83, - -495, -204, 812, -495, -495, -495, -495, -106, -183, -495, - 4575, -162, -495, -47, -495, -119, -495, -495, -495, -495, - -495, -495, -495, -495, 5291, 5291, 5291, -495, -495, -495, - -495, -495, -495, -495, -195, -495, -495, -495, -77, -150, - 5524, -72, -495, 5291, -111, -144, -167, -194, -147, -93, - -91, -89, -55, -56, -213, -69, -495, 4822, -495, -36, - 5291, -495, -45, 3885, 3885, -34, 3156, -495, -495, -495, - -73, -71, -495, -60, -59, -66, 5058, -54, 5291, -70, - -49, -58, -495, -495, -163, -495, -495, -118, -495, -193, - -46, -495, -495, -495, -495, 1077, -495, -495, -495, -495, - -495, -495, -81, 4575, -161, 4575, -495, -495, 4575, 3885, - -495, -25, -495, -495, -495, -145, -495, -495, 5291, -21, - -495, -495, 5291, -48, -495, -495, -495, 5291, 5291, 5291, - 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, 5291, - 5291, 5291, 5291, 5291, 5291, 5291, -495, -495, -495, -44, - -495, -495, -495, -495, 3399, -34, -106, -117, -495, -495, - -495, -495, -495, 1342, -495, 5291, -495, -495, -113, 5291, - -154, -495, -495, -495, 1342, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, 5291, 5291, -495, -495, - -495, -495, 4575, -495, -92, -495, 3642, -495, -495, -43, - -57, -495, -495, -495, -495, -495, -111, -111, -144, -144, - -167, -167, -167, -167, -194, -194, -147, -93, -91, -89, - -55, -56, 5291, -495, -495, -112, -81, -34, -495, -14, - 2137, -136, -495, -134, -495, 2646, 1342, -495, -495, -495, - -495, 4092, -495, -495, -131, -495, -495, -42, -495, -495, - 2646, -39, -495, -57, -9, 3885, -35, -38, -495, -495, - 5291, 5291, -495, -41, -31, 184, -32, 1872, -495, -30, - -29, 1607, -495, -495, -132, 5291, 1607, -39, -495, -495, - 1342, 4575, -495, -495, -495, -37, -57, -495, -495, 1342, - -27, -495, -495, -495 + 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 4, 1, 3, 2, 2, 1, + 1, 1, 2, 2, 2, 1, 2, 3, 2, 1, + 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, + 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, + 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, + 3, 1, 3, 1, 3, 1, 3, 1, 3, 1, + 0, 6, 1, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 3, 1, 2, 2, + 4, 2, 3, 4, 2, 3, 4, 0, 6, 2, + 3, 2, 1, 1, 2, 3, 3, 2, 3, 2, + 1, 2, 1, 1, 1, 3, 4, 6, 5, 1, + 2, 3, 5, 4, 1, 2, 1, 1, 1, 1, + 1, 4, 1, 3, 1, 3, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 4, 1, 3, 1, 2, 2, + 3, 3, 4, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 0, 6, 0, 5, 1, 2, 3, + 4, 1, 3, 1, 2, 1, 3, 4, 1, 3, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 0, 0, 5, 1, 1, 0, 2, 0, 2, + 2, 3, 1, 2, 1, 2, 5, 3, 1, 1, + 4, 0, 8, 0, 1, 3, 2, 0, 6, 0, + 8, 0, 7, 1, 1, 1, 0, 2, 3, 2, + 2, 2, 3, 2, 1, 2, 1, 1, 0, 3 }; - /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. - Performed when YYTABLE does not specify something else to do. Zero - means the default is an error. */ +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ static const yytype_uint16 yydefact[] = { - 0, 146, 147, 145, 179, 173, 174, 175, 176, 177, - 178, 162, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 180, 181, 182, - 201, 202, 203, 151, 149, 150, 148, 154, 152, 153, - 155, 156, 157, 158, 159, 160, 161, 183, 184, 185, - 213, 214, 215, 128, 127, 126, 0, 129, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 239, 240, - 241, 242, 243, 244, 246, 247, 248, 249, 250, 251, - 253, 254, 255, 256, 257, 258, 259, 237, 238, 245, - 252, 260, 261, 262, 263, 264, 265, 334, 266, 267, - 268, 269, 270, 271, 272, 273, 275, 276, 277, 278, - 279, 280, 282, 283, 284, 285, 286, 287, 289, 290, - 291, 292, 293, 294, 274, 281, 288, 295, 296, 297, - 298, 299, 300, 335, 336, 337, 338, 339, 340, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, - 332, 333, 0, 172, 342, 125, 136, 343, 344, 345, - 0, 420, 0, 421, 0, 102, 101, 0, 113, 118, - 143, 142, 140, 144, 0, 137, 139, 123, 166, 141, - 341, 0, 417, 419, 0, 0, 0, 348, 0, 0, - 90, 87, 0, 100, 0, 109, 103, 111, 0, 112, - 0, 88, 119, 0, 93, 138, 124, 0, 167, 1, - 418, 164, 0, 135, 133, 0, 131, 346, 0, 0, - 91, 0, 0, 422, 104, 108, 110, 106, 114, 105, - 0, 120, 96, 0, 94, 0, 2, 8, 9, 4, - 5, 6, 7, 10, 0, 0, 0, 168, 36, 35, - 37, 34, 3, 12, 30, 14, 19, 20, 0, 0, - 24, 0, 38, 0, 42, 45, 48, 53, 56, 58, - 60, 62, 64, 66, 68, 0, 28, 0, 163, 0, - 0, 130, 0, 0, 0, 0, 0, 350, 89, 92, - 0, 0, 402, 0, 0, 0, 0, 0, 0, 0, - 0, 374, 383, 387, 38, 71, 84, 0, 363, 0, - 123, 366, 385, 365, 364, 0, 367, 368, 369, 370, - 371, 372, 107, 0, 115, 0, 358, 122, 0, 0, - 98, 0, 95, 31, 32, 0, 16, 17, 0, 0, - 22, 21, 0, 172, 25, 27, 33, 0, 0, 0, + 0, 147, 148, 146, 181, 174, 175, 177, 178, 179, + 180, 176, 163, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 182, 183, + 184, 206, 207, 208, 152, 150, 151, 149, 155, 153, + 154, 156, 157, 158, 159, 160, 161, 162, 185, 186, + 187, 218, 219, 220, 188, 189, 190, 230, 231, 232, + 129, 128, 127, 0, 130, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 256, 257, 258, 259, 260, 261, + 263, 264, 265, 266, 267, 268, 270, 271, 272, 273, + 274, 275, 276, 254, 255, 262, 269, 277, 278, 279, + 280, 281, 282, 351, 283, 284, 285, 286, 287, 288, + 289, 290, 292, 293, 294, 295, 296, 297, 299, 300, + 301, 302, 303, 304, 306, 307, 308, 309, 310, 311, + 291, 298, 305, 312, 313, 314, 315, 316, 317, 352, + 353, 354, 355, 356, 357, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, + 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, 347, 348, 349, 350, 0, 173, + 359, 126, 137, 360, 361, 362, 0, 437, 0, 438, + 0, 103, 102, 0, 114, 119, 144, 143, 141, 145, + 0, 138, 140, 124, 167, 142, 358, 0, 434, 436, + 0, 0, 0, 365, 0, 0, 91, 88, 0, 101, + 0, 110, 104, 112, 0, 113, 0, 89, 120, 0, + 94, 139, 125, 0, 168, 1, 435, 165, 0, 136, + 134, 0, 132, 363, 0, 0, 92, 0, 0, 439, + 105, 109, 111, 107, 115, 106, 0, 121, 97, 0, + 95, 0, 2, 8, 9, 4, 5, 6, 7, 11, + 10, 0, 0, 0, 169, 37, 36, 38, 35, 3, + 13, 31, 15, 20, 21, 0, 0, 25, 0, 39, + 0, 43, 46, 49, 54, 57, 59, 61, 63, 65, + 67, 69, 0, 29, 0, 164, 0, 0, 131, 0, + 0, 0, 0, 0, 367, 90, 93, 0, 0, 419, + 0, 0, 0, 0, 0, 0, 0, 0, 391, 400, + 404, 39, 72, 85, 0, 380, 0, 124, 383, 402, + 382, 381, 0, 384, 385, 386, 387, 388, 389, 108, + 0, 116, 0, 375, 123, 0, 0, 99, 0, 96, + 32, 33, 0, 17, 18, 0, 0, 23, 22, 0, + 173, 26, 28, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 69, 169, 170, 0, - 165, 86, 134, 132, 0, 0, 356, 0, 354, 349, - 351, 413, 412, 0, 404, 0, 416, 414, 0, 0, - 0, 399, 400, 373, 0, 74, 75, 77, 76, 79, - 80, 81, 82, 83, 78, 73, 0, 0, 388, 384, - 386, 117, 0, 361, 0, 121, 0, 99, 11, 0, - 18, 15, 26, 39, 40, 41, 44, 43, 46, 47, - 51, 52, 49, 50, 54, 55, 57, 59, 61, 63, - 65, 67, 0, 171, 347, 0, 357, 0, 352, 0, - 0, 0, 415, 0, 398, 0, 375, 72, 85, 116, - 359, 0, 97, 13, 0, 353, 355, 0, 407, 406, - 409, 381, 394, 392, 0, 0, 0, 0, 360, 362, - 0, 0, 408, 0, 0, 391, 0, 0, 389, 0, - 0, 0, 376, 70, 0, 410, 0, 381, 380, 382, - 396, 0, 378, 401, 377, 0, 411, 405, 390, 397, - 0, 393, 403, 395 + 0, 0, 0, 70, 170, 171, 0, 166, 87, 135, + 133, 0, 0, 373, 0, 371, 366, 368, 430, 429, + 0, 421, 0, 433, 431, 0, 0, 0, 416, 417, + 390, 0, 75, 76, 78, 77, 80, 81, 82, 83, + 84, 79, 74, 0, 0, 405, 401, 403, 118, 0, + 378, 0, 122, 0, 100, 12, 0, 19, 16, 27, + 40, 41, 42, 45, 44, 47, 48, 52, 53, 50, + 51, 55, 56, 58, 60, 62, 64, 66, 68, 0, + 172, 364, 0, 374, 0, 369, 0, 0, 0, 432, + 0, 415, 0, 392, 73, 86, 117, 376, 0, 98, + 14, 0, 370, 372, 0, 424, 423, 426, 398, 411, + 409, 0, 0, 0, 0, 377, 379, 0, 0, 425, + 0, 0, 408, 0, 0, 406, 0, 0, 0, 393, + 71, 0, 427, 0, 398, 397, 399, 413, 0, 395, + 418, 394, 0, 428, 422, 407, 414, 0, 410, 420, + 412 }; - /* YYPGOTO[NTERM-NUM]. */ -static const yytype_int16 yypgoto[] = +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = { - -495, -495, -495, -495, -495, -495, -495, -495, -495, -495, - -495, -495, -53, -495, -271, -252, -272, -244, -187, -184, - -182, -181, -179, -186, -495, -237, -495, -266, -495, -280, - -495, 3, -495, -495, -495, 5, -495, -495, -495, -15, - -7, -5, -495, -495, -475, -495, -495, -495, -495, -85, - -495, -205, -212, -495, -495, 0, -221, -495, 29, -495, - -495, -495, -308, -310, -176, -251, -351, -495, -250, -348, - -494, -284, -495, -495, -293, -292, -495, -495, 12, -423, - -243, -495, -495, -264, -495, -495, -495, -495, -495, -495, - -495, -495, -495, -495, -495, -495, -495, 27, -495, -495 + -1, 309, 310, 311, 476, 312, 313, 314, 315, 316, + 317, 318, 361, 320, 321, 322, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 362, 499, 363, 463, 364, + 429, 365, 218, 386, 291, 366, 220, 221, 222, 251, + 252, 253, 223, 224, 225, 226, 227, 228, 271, 272, + 229, 230, 231, 232, 268, 333, 264, 234, 235, 236, + 340, 274, 343, 344, 434, 435, 384, 471, 368, 369, + 370, 371, 451, 534, 560, 542, 543, 544, 561, 372, + 373, 374, 545, 533, 375, 546, 567, 376, 377, 512, + 440, 507, 527, 540, 541, 378, 237, 238, 239, 248 }; - /* YYDEFGOTO[NTERM-NUM]. */ -static const yytype_int16 yydefgoto[] = +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -512 +static const yytype_int16 yypact[] = +{ + 2538, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -235, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -201, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, -512, -203, -512, + -512, -512, -512, -512, -512, -512, -153, -512, -210, -220, + -152, -189, 4119, -160, -512, -128, -512, -512, -512, -512, + 3079, -512, -512, -512, -122, -512, -512, 564, -512, -512, + -72, -46, -105, -512, 6148, -216, -512, -512, -102, -512, + 4119, -512, -512, -512, 4119, -68, -66, -512, -225, -187, + -512, -512, -512, 4606, -98, -512, -512, -512, -179, -512, + -104, -172, -512, -512, 4119, -101, -512, -186, 846, -512, + -512, -512, -512, -122, -233, -512, 4870, -217, -512, -63, + -512, -151, -512, -512, -512, -512, -512, -512, -512, -512, + -512, 5648, 5648, 5648, -512, -512, -512, -512, -512, -512, + -512, -209, -512, -512, -512, -94, -170, 5898, -92, -512, + 5648, -139, -133, -109, -223, -103, -111, -108, -106, -71, + -74, -218, -86, -512, 5134, -512, -52, 5648, -512, -46, + 4119, 4119, -50, 3342, -512, -512, -512, -90, -89, -512, + -78, -76, -85, 5398, -70, 5648, -80, -69, -64, -512, + -512, -184, -512, -512, -150, -512, -220, -67, -512, -512, + -512, -512, 1128, -512, -512, -512, -512, -512, -512, -98, + 4870, -183, 4870, -512, -512, 4870, 4119, -512, -40, -512, + -512, -512, -169, -512, -512, 5648, -35, -512, -512, 5648, + -65, -512, -512, -512, 5648, 5648, 5648, 5648, 5648, 5648, + 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, 5648, + 5648, 5648, 5648, -512, -512, -512, -61, -512, -512, -512, + -512, 3601, -50, -122, -144, -512, -512, -512, -512, -512, + 1410, -512, 5648, -512, -512, -142, 5648, -123, -512, -512, + -512, 1410, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -512, 5648, 5648, -512, -512, -512, -512, 4870, + -512, -226, -512, 3860, -512, -512, -60, -62, -512, -512, + -512, -512, -512, -139, -139, -133, -133, -109, -109, -109, + -109, -223, -223, -103, -111, -108, -106, -71, -74, 5648, + -512, -512, -138, -98, -50, -512, -33, 2256, -168, -512, + -167, -512, 2798, 1410, -512, -512, -512, -512, 4342, -512, + -512, -121, -512, -512, -56, -512, -512, 2798, -58, -512, + -62, -32, 4119, -49, -51, -512, -512, 5648, 5648, -512, + -57, -45, 177, -55, 1974, -512, -47, -44, 1692, -512, + -512, -165, 5648, 1692, -58, -512, -512, 1410, 4870, -512, + -512, -512, -48, -62, -512, -512, 1410, -42, -512, -512, + -512 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const yytype_int16 yypgoto[] = { - -1, 292, 293, 294, 459, 295, 296, 297, 298, 299, - 300, 301, 344, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 345, 482, 346, 446, 347, - 412, 348, 202, 369, 275, 349, 204, 205, 206, 235, - 236, 237, 207, 208, 209, 210, 211, 212, 255, 256, - 213, 214, 215, 216, 252, 316, 248, 218, 219, 220, - 323, 258, 326, 327, 417, 418, 367, 454, 351, 352, - 353, 354, 434, 517, 543, 525, 526, 527, 544, 355, - 356, 357, 528, 516, 358, 529, 550, 359, 360, 495, - 423, 490, 510, 523, 524, 361, 221, 222, 223, 232 + -512, -512, -512, -512, -512, -512, -512, -512, -512, -512, + -512, -512, -96, -512, -263, -262, -304, -264, -204, -199, + -205, -197, -206, -196, -512, -252, -512, -282, -512, -296, + -512, 3, -512, -512, -512, 6, -512, -512, -512, -29, + -23, -26, -512, -512, -489, -512, -512, -512, -512, -118, + -512, -221, -228, -512, -512, 0, -240, -512, 13, -512, + -512, -512, -328, -330, -200, -271, -363, -512, -273, -364, + -511, -308, -512, -512, -314, -309, -512, -512, -2, -441, + -260, -512, -512, -279, -512, -512, -512, -512, -512, -512, + -512, -512, -512, -512, -512, -512, -512, 12, -512, -512 }; - /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If - positive, shift that token. If negative, reduce the rule whose - number is the opposite. If YYTABLE_NINF, syntax error. */ +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -397 static const yytype_int16 yytable[] = { - 217, 238, 245, 201, 366, 203, 375, 450, 261, 253, - 315, 496, 451, 405, 453, 414, 420, 455, 226, 229, - 514, 271, 224, 247, 376, 377, 245, 394, 395, 238, - 269, 260, 247, 539, 384, 514, 317, 542, 240, 270, - 225, 241, 542, -29, 329, 378, 362, 364, 406, 379, - 392, 393, 227, 324, 318, 231, 428, 247, 430, 230, - 319, 456, 396, 397, 363, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 489, 398, 399, 317, 317, - 409, 233, 321, 411, 445, 368, 452, 272, 322, 381, - 273, 447, 494, 274, 458, 382, 234, 366, 460, 366, - 447, 499, 366, 511, 420, 512, 390, 545, 391, 447, - 242, 447, 245, 447, 447, 520, 462, 549, 324, 466, - 467, 324, 470, 471, 472, 473, 371, 447, 487, 372, - 448, 488, 447, 487, 247, 492, 505, 197, 198, 199, - 468, 469, 387, 388, 389, 491, 420, 251, 450, 493, - 519, 500, 257, 501, 474, 475, 262, 267, 268, 317, - 320, 370, 380, 254, 324, 328, 385, 400, 401, 402, - 403, 404, 407, 410, 416, 421, 431, 422, 424, 425, - 497, 498, 426, 457, 429, 433, 366, 461, 447, 432, - 551, -23, -28, 507, 302, 486, 521, 483, 503, 530, - 537, 450, 504, -379, 531, 532, 239, 535, 536, 324, - 341, 552, 540, 476, 246, 513, 553, 477, 541, 481, - 478, 217, 479, 265, 201, 480, 203, 264, 259, 228, - 513, 373, 374, 266, 239, 366, 506, 413, 239, 485, - 508, 534, 538, 547, 263, 548, 522, 509, 250, 0, - 386, 324, 0, 0, 533, 546, 0, 0, 325, 0, - 0, 0, 350, 0, 302, 0, 0, 302, 0, 0, - 0, 0, 0, 0, 0, 366, 0, 0, 0, 0, + 233, 254, 261, 217, 383, 277, 219, 392, 467, 269, + 513, 332, 431, 437, 245, 411, 412, 468, 287, 470, + 240, 242, 472, 531, 263, 422, 261, 393, 394, 254, + 285, 380, 263, 556, 517, 401, 518, 559, 531, 286, + 334, 263, 559, 379, 381, 247, -30, 385, 395, 276, + 413, 414, 396, 341, 241, 246, 243, 445, 473, 447, + 423, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 334, 288, 250, 334, 289, 506, 335, 290, 346, + 462, 469, 426, 336, 338, 428, 398, 475, 528, 529, + 339, 562, 399, 464, 464, 464, 258, 464, 383, 477, + 383, 437, 256, 383, 249, 257, 516, 487, 488, 489, + 490, 388, 464, 261, 389, 465, 566, 479, 504, 341, + 464, 505, 341, 509, 504, 409, 410, 522, 213, 214, + 215, 404, 405, 406, 407, 263, 408, 415, 416, 464, + 511, 464, 537, 437, 483, 484, 508, 485, 486, 467, + 510, 491, 492, 267, 273, 536, 283, 278, 284, 334, + 337, 387, 397, 402, 345, 341, 417, 319, 418, 419, + 421, 420, 424, 427, 433, 438, 439, 441, 270, 442, + 443, 514, 515, 448, 474, 446, 449, 383, -29, 478, + 524, -24, 547, 503, 554, 568, 450, 500, 520, 538, + 464, -396, 467, 521, 358, 390, 391, 548, 552, 549, + 341, 553, 557, 493, 495, 497, 530, 569, 570, 494, + 558, 430, 255, 496, 403, 281, 498, 280, 282, 244, + 262, 530, 502, 523, 525, 555, 383, 233, 319, 564, + 217, 319, 551, 219, 275, 565, 279, 526, 539, 266, + 255, 0, 341, 0, 255, 550, 563, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 515, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 245, 0, 515, 0, 0, 0, 0, + 0, 0, 0, 0, 342, 0, 383, 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 325, 415, 0, 325, 0, 0, 0, - 0, 0, 0, 0, 463, 464, 465, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, - 302, 302, 302, 0, 0, 350, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 325, + 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 261, 0, 532, 0, 480, 481, + 482, 319, 319, 319, 319, 319, 319, 319, 319, 319, + 319, 319, 319, 319, 319, 319, 319, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 342, 432, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 367, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, - 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 325, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, + 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 367, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 350, 0, 0, 0, 0, 350, 350, 0, 0, 0, + 0, 0, 0, 342, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 350, 0, 0, 0, 0, 246, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 350, 0, 0, - 0, 350, 0, 0, 0, 0, 350, 0, 0, 0, - 350, 0, 0, 0, 0, 0, 0, 249, 0, 350, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 0, 0, 194, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, + 0, 0, 367, 367, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 367, 0, 0, + 0, 0, 262, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 367, 0, 0, 0, 367, 0, + 0, 0, 0, 367, 0, 0, 0, 367, 0, 0, + 0, 0, 0, 0, 265, 0, 367, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, - 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 0, 341, 342, 0, 0, 0, 0, - 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 330, 331, 332, 0, 333, 334, 335, 336, 337, 338, - 339, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 340, 276, 194, 277, 278, 279, - 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, + 0, 0, 0, 211, 212, 213, 214, 215, 216, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 347, 348, 349, 0, 350, 351, 352, 353, 354, 355, + 356, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 357, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 286, 0, 0, 0, 341, - 449, 0, 0, 0, 0, 343, 288, 289, 290, 291, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, - 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 0, 0, 0, 358, 359, 0, 0, 0, + 0, 360, 305, 306, 307, 308, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, + 216, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 347, 348, 349, 0, 350, 351, 352, 353, + 354, 355, 356, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 357, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 0, 341, 0, 0, 0, 0, 0, - 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 330, 331, 332, 0, 333, 334, 335, 336, 337, 338, - 339, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 340, 276, 194, 277, 278, 279, - 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, + 0, 0, 0, 303, 0, 0, 0, 358, 466, 0, + 0, 0, 0, 360, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 216, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 347, 348, 349, 0, 350, 351, + 352, 353, 354, 355, 356, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 357, 292, 210, 293, 294, 295, 296, + 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 286, 0, 0, 0, 262, - 0, 0, 0, 0, 0, 343, 288, 289, 290, 291, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 330, 331, 332, 0, 333, - 334, 335, 336, 337, 338, 339, 11, 12, 13, 14, + 0, 0, 0, 0, 0, 303, 0, 0, 0, 358, + 0, 0, 0, 0, 0, 360, 305, 306, 307, 308, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, + 212, 213, 214, 215, 216, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 347, 348, 349, 0, + 350, 351, 352, 353, 354, 355, 356, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, @@ -1342,67 +1600,46 @@ static const yytype_int16 yytable[] = 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 340, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 343, 288, 289, 290, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 0, 276, 194, 277, 278, 279, - 280, 281, 282, 283, 0, 0, 284, 285, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 286, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 343, 288, 289, 290, 291, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 195, - 196, 197, 198, 199, 200, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, - 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 357, 292, 210, 293, 294, + 295, 296, 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, + 0, 278, 0, 0, 0, 0, 0, 360, 305, 306, + 307, 308, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 216, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 347, 348, + 349, 0, 350, 351, 352, 353, 354, 355, 356, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 357, 292, 210, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 0, + 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 360, + 305, 306, 307, 308, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 211, 212, 213, 214, 215, 216, 1, + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 200, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, @@ -1420,64 +1657,71 @@ static const yytype_int16 yytable[] = 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 0, 276, 194, 277, 278, 279, 280, - 281, 282, 283, 0, 0, 284, 285, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 286, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 288, 289, 290, 291, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 195, 196, - 197, 198, 199, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 0, 243, 194, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 360, 305, 306, 307, 308, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 211, 212, 213, 214, 215, + 216, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 244, 1, - 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, - 0, 0, 195, 196, 197, 198, 199, 0, 0, 0, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 216, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 419, - 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 10, 0, 0, 0, 0, 0, 0, 195, 196, - 197, 198, 199, 11, 12, 13, 14, 15, 16, 17, + 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 211, 212, 213, + 214, 215, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, @@ -1495,13 +1739,15 @@ static const yytype_int16 yytable[] = 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 0, 0, 194, 0, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 0, 259, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 484, 0, 0, 1, 2, 3, 4, 5, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 195, 196, 197, 198, 199, 11, 12, 13, 14, + 0, 0, 0, 0, 260, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 0, 0, 211, 212, + 213, 214, 215, 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, @@ -1519,63 +1765,71 @@ static const yytype_int16 yytable[] = 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, - 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 0, 0, 210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 502, 0, 0, 1, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 0, 0, - 0, 0, 0, 0, 195, 196, 197, 198, 199, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 0, 0, 194, 0, 0, 0, 4, 5, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 195, 196, 197, - 198, 199, 47, 48, 49, 50, 51, 52, 0, 0, - 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 0, 365, 518, 0, 0, 0, 0, - 0, 288, 289, 290, 291, 4, 5, 6, 7, 8, - 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, + 0, 0, 436, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, + 0, 211, 212, 213, 214, 215, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 0, 0, 210, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 501, 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, + 211, 212, 213, 214, 215, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 0, 0, 210, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 519, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 0, 0, 0, 0, 0, 0, 211, + 212, 213, 214, 215, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, - 48, 49, 50, 51, 52, 0, 0, 0, 0, 0, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, @@ -1589,42 +1843,16 @@ static const yytype_int16 yytable[] = 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 0, 276, 194, 277, - 278, 279, 280, 281, 282, 283, 0, 0, 284, 285, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 286, 0, 0, - 287, 4, 5, 6, 7, 8, 9, 10, 288, 289, - 290, 291, 0, 0, 0, 0, 0, 0, 0, 0, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 47, 48, 49, 50, 51, - 52, 0, 0, 0, 0, 0, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 0, 276, 194, 277, 278, 279, 280, 281, - 282, 283, 0, 0, 284, 285, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 286, 0, 0, 0, 365, 0, 0, - 0, 0, 0, 0, 288, 289, 290, 291, 4, 5, - 6, 7, 8, 9, 10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 12, 13, 14, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 0, 0, 210, 0, 0, 0, 4, 5, + 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 47, 48, 49, 50, 51, 52, 0, 0, - 0, 0, 0, 58, 59, 60, 61, 62, 63, 64, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 211, 212, + 213, 214, 215, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, @@ -1637,65 +1865,74 @@ static const yytype_int16 yytable[] = 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 0, - 276, 194, 277, 278, 279, 280, 281, 282, 283, 0, - 0, 284, 285, 0, 0, 0, 0, 0, 0, 0, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 0, 292, 210, 293, 294, + 295, 296, 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 286, 0, 0, 408, 4, 5, 6, 7, 8, 9, - 10, 288, 289, 290, 291, 0, 0, 0, 0, 0, - 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 47, 48, - 49, 50, 51, 52, 0, 0, 0, 0, 0, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 0, 276, 194, 277, 278, - 279, 280, 281, 282, 283, 0, 0, 284, 285, 0, + 0, 0, 0, 0, 0, 0, 0, 303, 0, 0, + 0, 382, 535, 0, 0, 0, 0, 0, 305, 306, + 307, 308, 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 286, 4, 5, 6, - 7, 8, 9, 10, 0, 0, 427, 288, 289, 290, - 291, 0, 0, 0, 0, 0, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 0, 0, 0, + 0, 0, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 0, + 0, 0, 0, 0, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, + 292, 210, 293, 294, 295, 296, 297, 298, 299, 300, + 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 303, 0, 0, 304, 0, 0, 0, 0, 0, + 0, 0, 305, 306, 307, 308, 4, 5, 6, 7, + 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 0, 0, 0, 0, 0, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 0, 292, 210, 293, 294, 295, 296, + 297, 298, 299, 300, 0, 0, 301, 302, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 303, 0, 0, 0, 382, + 0, 0, 0, 0, 0, 0, 305, 306, 307, 308, + 4, 5, 6, 7, 8, 9, 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 47, 48, 49, 50, 51, 52, 0, 0, 0, - 0, 0, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 0, 276, - 194, 277, 278, 279, 280, 281, 282, 283, 0, 0, - 284, 285, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 286, - 4, 5, 6, 7, 8, 9, 10, 0, 0, 0, - 288, 289, 290, 291, 0, 0, 0, 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 47, 48, 49, 50, 51, 52, - 0, 0, 0, 0, 0, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 0, 0, 0, + 0, 0, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, @@ -1708,301 +1945,207 @@ static const yytype_int16 yytable[] = 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 383, 0, 276, 194, 277, 278, 279, 280, 281, 282, - 283, 0, 0, 284, 285, 0, 0, 0, 0, 0, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 0, 292, 210, + 293, 294, 295, 296, 297, 298, 299, 300, 0, 0, + 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 303, + 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, + 305, 306, 307, 308, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 286, 4, 5, 6, 7, 8, 9, 10, - 0, 0, 0, 288, 289, 290, 291, 0, 0, 0, - 0, 0, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 47, 48, 49, - 50, 51, 52, 0, 0, 0, 0, 0, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 0, 0, 194 + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 444, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 400, 0, 292, 210, 293, 294, 295, 296, 297, 298, + 299, 300, 0, 0, 301, 302, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 303, 4, 5, 6, 7, 8, 9, + 10, 11, 0, 0, 305, 306, 307, 308, 0, 0, + 0, 0, 0, 0, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 0, 0, 0, 0, 0, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 0, 0, 210 }; +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-512))) + +#define yytable_value_is_error(Yytable_value) \ + YYID (0) + static const yytype_int16 yycheck[] = { - 0, 206, 214, 0, 270, 0, 286, 355, 229, 54, - 247, 434, 363, 226, 365, 323, 326, 368, 208, 208, - 495, 242, 238, 240, 219, 220, 238, 221, 222, 234, - 238, 248, 240, 527, 300, 510, 240, 531, 245, 247, - 238, 248, 536, 238, 248, 240, 267, 268, 261, 244, - 217, 218, 242, 258, 239, 248, 336, 240, 338, 248, - 245, 369, 256, 257, 247, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 423, 223, 224, 240, 240, - 317, 239, 239, 320, 247, 247, 247, 242, 245, 239, - 245, 245, 246, 248, 239, 245, 245, 363, 378, 365, - 245, 452, 368, 239, 414, 239, 250, 239, 252, 245, - 208, 245, 324, 245, 245, 246, 382, 540, 323, 390, - 391, 326, 394, 395, 396, 397, 245, 245, 245, 248, - 248, 248, 245, 245, 240, 248, 248, 264, 265, 266, - 392, 393, 253, 254, 255, 425, 456, 209, 496, 429, - 501, 243, 242, 245, 398, 399, 242, 208, 208, 240, - 247, 208, 239, 208, 369, 248, 238, 260, 259, 258, - 225, 227, 241, 209, 208, 248, 246, 248, 238, 238, - 446, 447, 248, 208, 238, 243, 452, 208, 245, 238, - 541, 239, 238, 207, 247, 416, 238, 241, 241, 208, - 16, 549, 482, 242, 239, 243, 206, 248, 239, 414, - 242, 248, 242, 400, 214, 495, 243, 401, 247, 405, - 402, 221, 403, 238, 221, 404, 221, 234, 228, 200, - 510, 284, 285, 238, 234, 501, 487, 322, 238, 415, - 490, 521, 526, 536, 232, 537, 510, 490, 221, -1, - 303, 456, -1, -1, 520, 535, -1, -1, 258, -1, - -1, -1, 262, -1, 317, -1, -1, 320, -1, -1, - -1, -1, -1, -1, -1, 541, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 495, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 515, -1, 510, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 323, 324, -1, 326, -1, -1, -1, - -1, -1, -1, -1, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 404, 405, -1, -1, 355, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 369, + 0, 222, 230, 0, 286, 245, 0, 303, 372, 55, + 451, 263, 340, 343, 224, 238, 239, 380, 258, 382, + 255, 224, 385, 512, 257, 243, 254, 236, 237, 250, + 255, 264, 257, 544, 260, 317, 262, 548, 527, 264, + 257, 257, 553, 283, 284, 265, 255, 264, 257, 265, + 273, 274, 261, 274, 255, 265, 259, 353, 386, 355, + 278, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 257, 259, 262, 257, 262, 440, 256, 265, 265, + 264, 264, 334, 262, 256, 337, 256, 256, 256, 256, + 262, 256, 262, 262, 262, 262, 224, 262, 380, 395, + 382, 431, 262, 385, 256, 265, 469, 411, 412, 413, + 414, 262, 262, 341, 265, 265, 557, 399, 262, 340, + 262, 265, 343, 265, 262, 234, 235, 265, 281, 282, + 283, 270, 271, 272, 267, 257, 269, 240, 241, 262, + 263, 262, 263, 473, 407, 408, 442, 409, 410, 513, + 446, 415, 416, 225, 259, 518, 224, 259, 224, 257, + 264, 224, 256, 255, 265, 386, 277, 263, 276, 275, + 244, 242, 258, 225, 224, 265, 265, 255, 224, 255, + 265, 463, 464, 263, 224, 255, 255, 469, 255, 224, + 223, 256, 224, 433, 17, 558, 260, 258, 258, 255, + 262, 259, 566, 499, 259, 301, 302, 256, 265, 260, + 431, 256, 259, 417, 419, 421, 512, 265, 260, 418, + 264, 339, 222, 420, 320, 254, 422, 250, 254, 216, + 230, 527, 432, 504, 507, 543, 518, 237, 334, 553, + 237, 337, 538, 237, 244, 554, 248, 507, 527, 237, + 250, -1, 473, -1, 254, 537, 552, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 274, -1, 558, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 512, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 532, -1, 527, -1, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 340, 341, -1, 343, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 414, -1, -1, -1, -1, -1, - -1, -1, -1, 423, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 434, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 456, -1, -1, -1, + -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 386, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 490, -1, -1, -1, -1, 495, 496, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 510, -1, -1, -1, -1, 515, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, - -1, 531, -1, -1, -1, -1, 536, -1, -1, -1, - 540, -1, -1, -1, -1, -1, -1, 0, -1, 549, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, + -1, 431, -1, -1, -1, -1, -1, -1, -1, -1, + 440, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 451, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, -1, -1, 209, -1, -1, -1, + -1, -1, -1, 473, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 507, -1, -1, + -1, -1, 512, 513, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, + -1, -1, 532, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 544, -1, -1, -1, 548, -1, + -1, -1, -1, 553, -1, -1, -1, 557, -1, -1, + -1, -1, -1, -1, 0, -1, 566, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, -1, 242, 243, -1, -1, -1, -1, - 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 238, -1, -1, -1, 242, - 243, -1, -1, -1, -1, 248, 249, 250, 251, 252, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, -1, 242, -1, -1, -1, -1, -1, - 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, -1, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 238, -1, -1, -1, 242, - -1, -1, -1, -1, -1, 248, 249, 250, 251, 252, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, -1, 17, - 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 248, 249, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, - 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 238, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 248, 249, 250, 251, 252, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 262, - 263, 264, 265, 266, 267, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 267, + -1, -1, -1, 279, 280, 281, 282, 283, 284, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, @@ -2021,15 +2164,45 @@ static const yytype_int16 yycheck[] = 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, - 214, 215, 216, -1, -1, 219, 220, -1, -1, -1, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, -1, 259, 260, -1, -1, -1, + -1, 265, 266, 267, 268, 269, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, -1, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 238, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 249, 250, 251, 252, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 262, 263, - 264, 265, 266, 3, 4, 5, 6, 7, 8, 9, - 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 24, 25, 26, 27, 28, 29, + -1, -1, -1, 255, -1, -1, -1, 259, 260, -1, + -1, -1, -1, 265, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, -1, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, @@ -2047,14 +2220,74 @@ static const yytype_int16 yycheck[] = 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 255, -1, -1, -1, 259, + -1, -1, -1, -1, -1, 265, 266, 267, 268, 269, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 284, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, -1, + 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, + -1, 259, -1, -1, -1, -1, -1, 265, 266, 267, + 268, 269, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 279, 280, 281, 282, 283, 284, 3, 4, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, + 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, -1, -1, + 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 265, + 266, 267, 268, 269, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 279, 280, 281, 282, 283, 284, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 248, 3, - 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, - -1, -1, 262, 263, 264, 265, 266, -1, -1, -1, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, @@ -2072,111 +2305,75 @@ static const yytype_int16 yycheck[] = 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, -1, -1, 209, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 243, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, -1, -1, -1, -1, -1, -1, 262, 263, - 264, 265, 266, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, -1, -1, 209, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 265, 266, 267, 268, 269, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, + 284, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 243, -1, -1, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, 262, 263, 264, 265, 266, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - -1, 209, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 243, -1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, - -1, -1, -1, -1, 262, 263, 264, 265, 266, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, -1, -1, 209, -1, -1, -1, 6, 7, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 262, 263, 264, - 265, 266, 60, 61, 62, 63, 64, 65, -1, -1, - -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 284, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, -1, 242, 243, -1, -1, -1, -1, - -1, 249, 250, 251, 252, 6, 7, 8, 9, 10, - 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, + 282, 283, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - 61, 62, 63, 64, 65, -1, -1, -1, -1, -1, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, @@ -2190,42 +2387,20 @@ static const yytype_int16 yycheck[] = 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, - 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, - 211, 212, 213, 214, 215, 216, -1, -1, 219, 220, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, 224, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 238, -1, -1, - 241, 6, 7, 8, 9, 10, 11, 12, 249, 250, - 251, 252, -1, -1, -1, -1, -1, -1, -1, -1, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, 61, 62, 63, 64, - 65, -1, -1, -1, -1, -1, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, - 215, 216, -1, -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 238, -1, -1, -1, 242, -1, -1, - -1, -1, -1, -1, 249, 250, 251, 252, 6, 7, - 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 60, 61, 62, 63, 64, 65, -1, -1, - -1, -1, -1, 71, 72, 73, 74, 75, 76, 77, + -1, -1, -1, -1, 265, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, -1, -1, 279, 280, + 281, 282, 283, -1, -1, -1, -1, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, @@ -2238,41 +2413,20 @@ static const yytype_int16 yycheck[] = 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, -1, - -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, -1, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 238, -1, -1, 241, 6, 7, 8, 9, 10, 11, - 12, 249, 250, 251, 252, -1, -1, -1, -1, -1, - -1, -1, -1, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 60, 61, - 62, 63, 64, 65, -1, -1, -1, -1, -1, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, - 212, 213, 214, 215, 216, -1, -1, 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 238, 6, 7, 8, - 9, 10, 11, 12, -1, -1, 248, 249, 250, 251, - 252, -1, -1, -1, -1, -1, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, 61, 62, 63, 64, 65, -1, -1, -1, - -1, -1, 71, 72, 73, 74, 75, 76, 77, 78, + -1, -1, 260, -1, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, + -1, 279, 280, 281, 282, 283, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, @@ -2285,18 +2439,148 @@ static const yytype_int16 yycheck[] = 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, -1, 208, - 209, 210, 211, 212, 213, 214, 215, 216, -1, -1, - 219, 220, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 238, - 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, - 249, 250, 251, 252, -1, -1, -1, -1, -1, 25, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, -1, -1, 225, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 260, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, + 279, 280, 281, 282, 283, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, -1, -1, 225, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 260, -1, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, -1, -1, -1, -1, -1, -1, 279, + 280, 281, 282, 283, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, -1, -1, 225, -1, -1, -1, 6, 7, + 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 279, 280, + 281, 282, 283, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, -1, -1, -1, -1, -1, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, -1, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, -1, -1, 236, 237, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 255, -1, -1, + -1, 259, 260, -1, -1, -1, -1, -1, 266, 267, + 268, 269, 6, 7, 8, 9, 10, 11, 12, 13, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, -1, + -1, -1, -1, -1, 78, 79, 80, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, -1, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 255, -1, -1, 258, -1, -1, -1, -1, -1, + -1, -1, 266, 267, 268, 269, 6, 7, 8, 9, + 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, -1, -1, -1, -1, -1, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, -1, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, -1, -1, 236, 237, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 255, -1, -1, -1, 259, + -1, -1, -1, -1, -1, -1, 266, 267, 268, 269, + 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, 61, 62, 63, 64, 65, - -1, -1, -1, -1, -1, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, -1, -1, -1, + -1, -1, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, @@ -2309,38 +2593,118 @@ static const yytype_int16 yycheck[] = 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, -1, -1, 219, 220, -1, -1, -1, -1, -1, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, -1, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, -1, -1, + 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 255, + -1, -1, 258, -1, -1, -1, -1, -1, -1, -1, + 266, 267, 268, 269, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 238, 6, 7, 8, 9, 10, 11, 12, - -1, -1, -1, 249, 250, 251, 252, -1, -1, -1, - -1, -1, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, 61, 62, - 63, 64, 65, -1, -1, -1, -1, -1, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, -1, -1, 209 + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, 265, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, -1, -1, 236, 237, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 255, 6, 7, 8, 9, 10, 11, + 12, 13, -1, -1, 266, 267, 268, 269, -1, -1, + -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, -1, -1, -1, -1, -1, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, -1, -1, 225 }; - /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing - symbol of state STATE-NUM. */ +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 12, 13, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, @@ -2358,151 +2722,71 @@ static const yytype_uint16 yystos[] = 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 209, 262, 263, 264, 265, 266, - 267, 302, 303, 306, 307, 308, 309, 313, 314, 315, - 316, 317, 318, 321, 322, 323, 324, 326, 328, 329, - 330, 367, 368, 369, 238, 238, 208, 242, 329, 208, - 248, 248, 370, 239, 245, 310, 311, 312, 322, 326, - 245, 248, 208, 208, 248, 323, 326, 240, 327, 0, - 368, 209, 325, 54, 208, 319, 320, 242, 332, 326, - 248, 327, 242, 349, 311, 310, 312, 208, 208, 238, - 247, 327, 242, 245, 248, 305, 208, 210, 211, 212, - 213, 214, 215, 216, 219, 220, 238, 241, 249, 250, - 251, 252, 272, 273, 274, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, - 291, 292, 293, 294, 295, 296, 326, 240, 239, 245, - 247, 239, 245, 331, 322, 326, 333, 334, 248, 248, - 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, - 207, 242, 243, 248, 283, 296, 298, 300, 302, 306, - 326, 339, 340, 341, 342, 350, 351, 352, 355, 358, - 359, 366, 327, 247, 327, 242, 298, 337, 247, 304, - 208, 245, 248, 283, 283, 300, 219, 220, 240, 244, - 239, 239, 245, 206, 298, 238, 283, 253, 254, 255, - 250, 252, 217, 218, 221, 222, 256, 257, 223, 224, - 260, 259, 258, 225, 227, 226, 261, 241, 241, 296, - 209, 296, 301, 320, 333, 326, 208, 335, 336, 243, - 334, 248, 248, 361, 238, 238, 248, 248, 300, 238, - 300, 246, 238, 243, 343, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 247, 299, 245, 248, 243, - 340, 337, 247, 337, 338, 337, 333, 208, 239, 275, - 300, 208, 298, 283, 283, 283, 285, 285, 286, 286, - 287, 287, 287, 287, 288, 288, 289, 290, 291, 292, - 293, 294, 297, 241, 243, 335, 327, 245, 248, 340, - 362, 300, 248, 300, 246, 360, 350, 298, 298, 337, - 243, 245, 243, 241, 300, 248, 336, 207, 339, 351, - 363, 239, 239, 300, 315, 322, 354, 344, 243, 337, - 246, 238, 354, 364, 365, 346, 347, 348, 353, 356, - 208, 239, 243, 298, 300, 248, 239, 16, 342, 341, - 242, 247, 341, 345, 349, 239, 300, 345, 346, 350, - 357, 337, 248, 243 -}; - - /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = -{ - 0, 271, 272, 273, 273, 273, 273, 273, 273, 273, - 273, 273, 274, 274, 274, 274, 274, 274, 275, 276, - 277, 278, 278, 279, 279, 280, 280, 281, 282, 282, - 283, 283, 283, 283, 284, 284, 284, 284, 285, 285, - 285, 285, 286, 286, 286, 287, 287, 287, 288, 288, - 288, 288, 288, 289, 289, 289, 290, 290, 291, 291, - 292, 292, 293, 293, 294, 294, 295, 295, 296, 297, - 296, 298, 298, 299, 299, 299, 299, 299, 299, 299, - 299, 299, 299, 299, 300, 300, 301, 302, 302, 302, - 302, 302, 302, 302, 302, 302, 304, 303, 305, 305, - 306, 307, 307, 308, 308, 309, 310, 310, 311, 311, - 311, 311, 312, 313, 313, 313, 313, 313, 314, 314, - 314, 314, 314, 315, 315, 316, 317, 317, 317, 317, - 318, 319, 319, 320, 320, 320, 321, 322, 322, 323, - 323, 323, 323, 323, 323, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 324, 324, 324, 324, 324, 324, - 324, 324, 324, 324, 325, 325, 326, 326, 327, 327, - 327, 327, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 329, 329, 329, 331, 330, 332, 330, - 333, 333, 334, 334, 335, 335, 336, 336, 337, 337, - 337, 338, 338, 339, 340, 340, 341, 341, 341, 341, - 341, 341, 341, 342, 343, 344, 342, 345, 345, 347, - 346, 348, 346, 349, 349, 350, 350, 351, 351, 352, - 353, 353, 354, 354, 356, 355, 357, 357, 358, 358, - 360, 359, 361, 359, 362, 359, 363, 363, 364, 364, - 365, 365, 366, 366, 366, 366, 366, 367, 367, 368, - 368, 370, 369 -}; - - /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = -{ - 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 4, 1, 3, 2, 2, 1, 1, - 1, 2, 2, 2, 1, 2, 3, 2, 1, 1, - 1, 2, 2, 2, 1, 1, 1, 1, 1, 3, - 3, 3, 1, 3, 3, 1, 3, 3, 1, 3, - 3, 3, 3, 1, 3, 3, 1, 3, 1, 3, - 1, 3, 1, 3, 1, 3, 1, 3, 1, 0, - 6, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 3, 1, 2, 2, 4, - 2, 3, 4, 2, 3, 4, 0, 6, 2, 3, - 2, 1, 1, 2, 3, 3, 2, 3, 2, 1, - 2, 1, 1, 1, 3, 4, 6, 5, 1, 2, - 3, 5, 4, 1, 2, 1, 1, 1, 1, 1, - 4, 1, 3, 1, 3, 1, 1, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 4, 1, 3, 1, 2, 2, 3, - 3, 4, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 6, 0, 5, - 1, 2, 3, 4, 1, 3, 1, 2, 1, 3, - 4, 1, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 0, 0, 5, 1, 1, 0, - 2, 0, 2, 2, 3, 1, 2, 1, 2, 5, - 3, 1, 1, 4, 0, 8, 0, 1, 3, 2, - 0, 6, 0, 8, 0, 7, 1, 1, 1, 0, - 2, 3, 2, 2, 2, 3, 2, 1, 2, 1, - 1, 0, 3 + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 225, 279, 280, 281, 282, 283, 284, 319, 320, 323, + 324, 325, 326, 330, 331, 332, 333, 334, 335, 338, + 339, 340, 341, 343, 345, 346, 347, 384, 385, 386, + 255, 255, 224, 259, 346, 224, 265, 265, 387, 256, + 262, 327, 328, 329, 339, 343, 262, 265, 224, 224, + 265, 340, 343, 257, 344, 0, 385, 225, 342, 55, + 224, 336, 337, 259, 349, 343, 265, 344, 259, 366, + 328, 327, 329, 224, 224, 255, 264, 344, 259, 262, + 265, 322, 224, 226, 227, 228, 229, 230, 231, 232, + 233, 236, 237, 255, 258, 266, 267, 268, 269, 289, + 290, 291, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 343, 257, 256, 262, 264, 256, 262, + 348, 339, 343, 350, 351, 265, 265, 14, 15, 16, + 18, 19, 20, 21, 22, 23, 24, 223, 259, 260, + 265, 300, 313, 315, 317, 319, 323, 343, 356, 357, + 358, 359, 367, 368, 369, 372, 375, 376, 383, 344, + 264, 344, 259, 315, 354, 264, 321, 224, 262, 265, + 300, 300, 317, 236, 237, 257, 261, 256, 256, 262, + 222, 315, 255, 300, 270, 271, 272, 267, 269, 234, + 235, 238, 239, 273, 274, 240, 241, 277, 276, 275, + 242, 244, 243, 278, 258, 258, 313, 225, 313, 318, + 337, 350, 343, 224, 352, 353, 260, 351, 265, 265, + 378, 255, 255, 265, 265, 317, 255, 317, 263, 255, + 260, 360, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 264, 316, 262, 265, 260, 357, 354, 264, + 354, 355, 354, 350, 224, 256, 292, 317, 224, 315, + 300, 300, 300, 302, 302, 303, 303, 304, 304, 304, + 304, 305, 305, 306, 307, 308, 309, 310, 311, 314, + 258, 260, 352, 344, 262, 265, 357, 379, 317, 265, + 317, 263, 377, 367, 315, 315, 354, 260, 262, 260, + 258, 317, 265, 353, 223, 356, 368, 380, 256, 256, + 317, 332, 339, 371, 361, 260, 354, 263, 255, 371, + 381, 382, 363, 364, 365, 370, 373, 224, 256, 260, + 315, 317, 265, 256, 17, 359, 358, 259, 264, 358, + 362, 366, 256, 317, 362, 363, 367, 374, 354, 265, + 260 }; - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY (-2) -#define YYEOF 0 - -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrorlab - +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY (-2) +#define YYEOF 0 + +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ + +#define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -2519,15 +2803,27 @@ do \ else \ { \ yyerror (pParseContext, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) + YYERROR; \ + } \ +while (YYID (0)) /* Error token number */ -#define YYTERROR 1 -#define YYERRCODE 256 +#define YYTERROR 1 +#define YYERRCODE 256 + + +/* This macro is provided for backward compatibility. */ +#ifndef YY_LOCATION_PRINT +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +#endif +/* YYLEX -- calling `yylex' with the right arguments. */ +#ifdef YYLEX_PARAM +# define YYLEX yylex (&yylval, YYLEX_PARAM) +#else +# define YYLEX yylex (&yylval, parseContext) +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -2537,47 +2833,58 @@ while (0) # define YYFPRINTF fprintf # endif -# define YYDPRINTF(Args) \ -do { \ - if (yydebug) \ - YYFPRINTF Args; \ -} while (0) - -/* This macro is provided for backward compatibility. */ -#ifndef YY_LOCATION_PRINT -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -#endif - +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (YYID (0)) -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -do { \ - if (yydebug) \ - { \ - YYFPRINTF (stderr, "%s ", Title); \ - yy_symbol_print (stderr, \ - Type, Value, pParseContext); \ - YYFPRINTF (stderr, "\n"); \ - } \ -} while (0) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value, pParseContext); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + glslang::TParseContext* pParseContext; +#endif { FILE *yyo = yyoutput; YYUSE (yyo); - YYUSE (pParseContext); if (!yyvaluep) return; + YYUSE (pParseContext); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); # endif - YYUSE (yytype); + switch (yytype) + { + default: + break; + } } @@ -2585,11 +2892,23 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue | Print this symbol on YYOUTPUT. | `--------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep, pParseContext) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; + glslang::TParseContext* pParseContext; +#endif { - YYFPRINTF (yyoutput, "%s %s (", - yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep, pParseContext); YYFPRINTF (yyoutput, ")"); @@ -2600,8 +2919,16 @@ yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, gls | TOP (included). | `------------------------------------------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +#else +static void +yy_stack_print (yybottom, yytop) + yytype_int16 *yybottom; + yytype_int16 *yytop; +#endif { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -2612,42 +2939,50 @@ yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) YYFPRINTF (stderr, "\n"); } -# define YY_STACK_PRINT(Bottom, Top) \ -do { \ - if (yydebug) \ - yy_stack_print ((Bottom), (Top)); \ -} while (0) +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) +yy_reduce_print (YYSTYPE *yyvsp, int yyrule, glslang::TParseContext* pParseContext) +#else +static void +yy_reduce_print (yyvsp, yyrule, pParseContext) + YYSTYPE *yyvsp; + int yyrule; + glslang::TParseContext* pParseContext; +#endif { - unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; + unsigned long int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", - yyrule - 1, yylno); + yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); - yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) - , pParseContext); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + , pParseContext); YYFPRINTF (stderr, "\n"); } } -# define YY_REDUCE_PRINT(Rule) \ -do { \ - if (yydebug) \ - yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \ -} while (0) +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule, pParseContext); \ +} while (YYID (0)) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ @@ -2661,7 +2996,7 @@ int yydebug; /* YYINITDEPTH -- initial size of the parser's stacks. */ -#ifndef YYINITDEPTH +#ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif @@ -2684,8 +3019,15 @@ int yydebug; # define yystrlen strlen # else /* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static YYSIZE_T yystrlen (const char *yystr) +#else +static YYSIZE_T +yystrlen (yystr) + const char *yystr; +#endif { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) @@ -2701,8 +3043,16 @@ yystrlen (const char *yystr) # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static char * yystpcpy (char *yydest, const char *yysrc) +#else +static char * +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +#endif { char *yyd = yydest; const char *yys = yysrc; @@ -2732,27 +3082,27 @@ yytnamerr (char *yyres, const char *yystr) char const *yyp = yystr; for (;;) - switch (*++yyp) - { - case '\'': - case ',': - goto do_not_strip_quotes; - - case '\\': - if (*++yyp != '\\') - goto do_not_strip_quotes; - /* Fall through. */ - default: - if (yyres) - yyres[yyn] = *yyp; - yyn++; - break; - - case '"': - if (yyres) - yyres[yyn] = '\0'; - return yyn; - } + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } do_not_strip_quotes: ; } @@ -2775,11 +3125,11 @@ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { - YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ - const char *yyformat = YY_NULLPTR; + const char *yyformat = YY_NULL; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per @@ -2787,6 +3137,10 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, int yycount = 0; /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> + for details. YYERROR is fine as it does not invoke this + function. - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected @@ -2836,7 +3190,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; @@ -2903,18 +3257,33 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | Release the memory associated to this symbol. | `-----------------------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext) +#else +static void +yydestruct (yymsg, yytype, yyvaluep, pParseContext) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; + glslang::TParseContext* pParseContext; +#endif { YYUSE (yyvaluep); YYUSE (pParseContext); + if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yytype); - YY_IGNORE_MAYBE_UNINITIALIZED_END + switch (yytype) + { + + default: + break; + } } @@ -2924,18 +3293,56 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, glslang::TParseCon | yyparse. | `----------*/ +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) int yyparse (glslang::TParseContext* pParseContext) +#else +int +yyparse (pParseContext) + glslang::TParseContext* pParseContext; +#endif +#endif { /* The lookahead symbol. */ int yychar; -/* The semantic value of the lookahead symbol. */ +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ + _Pragma ("GCC diagnostic pop") +#else /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ -YY_INITIAL_VALUE (static YYSTYPE yyval_default;) -YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); +static YYSTYPE yyval_default; +# define YY_INITIAL_VALUE(Value) = Value +#endif +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + +/* The semantic value of the lookahead symbol. */ +YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); /* Number of syntax errors so far. */ int yynerrs; @@ -2945,8 +3352,8 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); int yyerrstatus; /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. + `yyss': related to states. + `yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ @@ -3014,23 +3421,23 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of - these so that the &'s don't force the real ones into - memory. */ - YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; - - /* Each stack pointer address is followed by the size of the - data in use in that stack, in bytes. This used to be a - conditional around just the two extra args, but that might - be undefined if yyoverflow is a macro. */ - yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), - &yystacksize); - - yyss = yyss1; - yyvs = yyvs1; + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + yytype_int16 *yyss1 = yyss; + + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow (YY_("memory exhausted"), + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yystacksize); + + yyss = yyss1; + yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE @@ -3038,22 +3445,22 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) - goto yyexhaustedlab; + goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) - yystacksize = YYMAXDEPTH; + yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; - union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); - if (! yyptr) - goto yyexhaustedlab; - YYSTACK_RELOCATE (yyss_alloc, yyss); - YYSTACK_RELOCATE (yyvs_alloc, yyvs); + yytype_int16 *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyexhaustedlab; + YYSTACK_RELOCATE (yyss_alloc, yyss); + YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE - if (yyss1 != yyssa) - YYSTACK_FREE (yyss1); + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ @@ -3062,10 +3469,10 @@ YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) - YYABORT; + YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -3094,7 +3501,7 @@ yybackup: if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); - yychar = yylex (&yylval, parseContext); + yychar = YYLEX; } if (yychar <= YYEOF) @@ -3159,7 +3566,7 @@ yyreduce: yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: - '$$ = $1'. + `$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison @@ -3173,247 +3580,259 @@ yyreduce: switch (yyn) { case 2: -#line 246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 250 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string); + (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[(1) - (1)].lex).loc, (yyvsp[(1) - (1)].lex).symbol, (yyvsp[(1) - (1)].lex).string); } -#line 3181 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 3: -#line 252 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 256 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 4: -#line 255 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 259 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3197 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 5: -#line 258 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 262 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 6: -#line 262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 266 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).i64, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3215 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 7: -#line 266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 270 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).u64, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3224 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 8: -#line 270 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 274 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3232 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 9: -#line 273 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 277 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal"); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtDouble, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3241 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 10: -#line 277 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 281 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true); +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float literal"); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).d, EbtFloat16, (yyvsp[(1) - (1)].lex).loc, true); +#endif } -#line 3249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 11: -#line 280 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 287 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); - if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) - (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[(1) - (1)].lex).b, (yyvsp[(1) - (1)].lex).loc, true); } -#line 3259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 12: -#line 288 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 290 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); + if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) + (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } -#line 3267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 13: -#line 291 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 298 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3275 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 14: -#line 294 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 301 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.intermTypedNode), (yyvsp[(3) - (4)].interm.intermTypedNode)); } -#line 3283 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 15: -#line 297 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 304 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3291 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 16: -#line 300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 307 "glslang.y" { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[(3) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode), *(yyvsp[(3) - (3)].lex).string); } -#line 3301 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 17: -#line 305 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 310 "glslang.y" { - parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode)); - parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode)); + parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "++", (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "++", EOpPostIncrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); } -#line 3311 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 18: -#line 313 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 315 "glslang.y" { - parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]"); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.variableCheck((yyvsp[(1) - (2)].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(2) - (2)].lex).loc, "--", (yyvsp[(1) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(2) - (2)].lex).loc, "--", EOpPostDecrement, (yyvsp[(1) - (2)].interm.intermTypedNode)); } -#line 3320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 19: -#line 320 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 323 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode); - delete (yyvsp[0].interm).function; + parseContext.integerCheck((yyvsp[(1) - (1)].interm.intermTypedNode), "[]"); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 20: -#line 327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 330 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[(1) - (1)].interm).loc, (yyvsp[(1) - (1)].interm).function, (yyvsp[(1) - (1)].interm).intermNode); + delete (yyvsp[(1) - (1)].interm).function; } -#line 3337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 21: -#line 333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 337 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 3346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 22: -#line 337 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 343 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 3355 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 23: -#line 344 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 347 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); + (yyval.interm) = (yyvsp[(1) - (2)].interm); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 3363 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 24: -#line 347 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 354 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(1) - (2)].interm); } -#line 3371 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 25: -#line 353 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 357 "glslang.y" { - TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-1].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-1].interm).function; - (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode); + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 3383 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 26: -#line 360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 363 "glslang.y" { TParameter param = { 0, new TType }; - param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType()); - (yyvsp[-2].interm).function->addParameter(param); - (yyval.interm).function = (yyvsp[-2].interm).function; - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); + param.type->shallowCopy((yyvsp[(2) - (2)].interm.intermTypedNode)->getType()); + (yyvsp[(1) - (2)].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[(1) - (2)].interm).function; + (yyval.interm).intermNode = (yyvsp[(2) - (2)].interm.intermTypedNode); } -#line 3395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 27: -#line 370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 370 "glslang.y" { - (yyval.interm) = (yyvsp[-1].interm); + TParameter param = { 0, new TType }; + param.type->shallowCopy((yyvsp[(3) - (3)].interm.intermTypedNode)->getType()); + (yyvsp[(1) - (3)].interm).function->addParameter(param); + (yyval.interm).function = (yyvsp[(1) - (3)].interm).function; + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); } -#line 3403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 28: -#line 378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 380 "glslang.y" + { + (yyval.interm) = (yyvsp[(1) - (2)].interm); + } + break; + + case 29: +/* Line 1792 of yacc.c */ +#line 388 "glslang.y" { // Constructor (yyval.interm).intermNode = 0; - (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type)); + (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type)); } -#line 3413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 29: -#line 383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 30: +/* Line 1792 of yacc.c */ +#line 393 "glslang.y" { // // Should be a method or subroutine call, but we haven't recognized the arguments yet. @@ -3421,18 +3840,18 @@ yyreduce: (yyval.interm).function = 0; (yyval.interm).intermNode = 0; - TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode(); + TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode(); if (method) { (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength); (yyval.interm).intermNode = method->getObject(); } else { - TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode(); + TIntermSymbol* symbol = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsSymbolNode(); if (symbol) { parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName()); TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid)); (yyval.interm).function = function; } else - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); + parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", ""); } if ((yyval.interm).function == 0) { @@ -3441,3709 +3860,3916 @@ yyreduce: (yyval.interm).function = new TFunction(&empty, TType(EbtVoid), EOpNull); } } -#line 3445 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 30: -#line 413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 31: +/* Line 1792 of yacc.c */ +#line 423 "glslang.y" { - parseContext.variableCheck((yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode()) - parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); + parseContext.variableCheck((yyvsp[(1) - (1)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + if (TIntermMethod* method = (yyvsp[(1) - (1)].interm.intermTypedNode)->getAsMethodNode()) + parseContext.error((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), ""); } -#line 3456 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 31: -#line 419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 32: +/* Line 1792 of yacc.c */ +#line 429 "glslang.y" { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "++", (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "++", EOpPreIncrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); } -#line 3465 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 32: -#line 423 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 33: +/* Line 1792 of yacc.c */ +#line 433 "glslang.y" { - parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode)); + parseContext.lValueErrorCheck((yyvsp[(1) - (2)].lex).loc, "--", (yyvsp[(2) - (2)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].lex).loc, "--", EOpPreDecrement, (yyvsp[(2) - (2)].interm.intermTypedNode)); } -#line 3474 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 33: -#line 427 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 34: +/* Line 1792 of yacc.c */ +#line 437 "glslang.y" { - if ((yyvsp[-1].interm).op != EOpNull) { + if ((yyvsp[(1) - (2)].interm).op != EOpNull) { char errorOp[2] = {0, 0}; - switch((yyvsp[-1].interm).op) { + switch((yyvsp[(1) - (2)].interm).op) { case EOpNegative: errorOp[0] = '-'; break; case EOpLogicalNot: errorOp[0] = '!'; break; case EOpBitwiseNot: errorOp[0] = '~'; break; default: break; // some compilers want this } - (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[(1) - (2)].interm).loc, errorOp, (yyvsp[(1) - (2)].interm).op, (yyvsp[(2) - (2)].interm.intermTypedNode)); } else { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (2)].interm.intermTypedNode); if ((yyval.interm.intermTypedNode)->getAsConstantUnion()) (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression(); } } -#line 3495 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 34: -#line 447 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; } -#line 3501 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 35: -#line 448 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; } -#line 3507 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 457 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNull; } break; case 36: -#line 449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; } -#line 3513 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 458 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpNegative; } break; case 37: -#line 450 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot; - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); } -#line 3520 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 459 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLogicalNot; } break; case 38: -#line 456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3526 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 460 "glslang.y" + { (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpBitwiseNot; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise not"); } break; case 39: -#line 457 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); - if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } -#line 3536 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 466 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 40: -#line 462 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 467 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "*", EOpMul, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3546 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 41: -#line 467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 472 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "/", EOpDiv, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3557 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 42: -#line 476 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 43: -#line 477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 477 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "%"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "%", EOpMod, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3573 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 43: +/* Line 1792 of yacc.c */ +#line 486 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 44: -#line 482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 487 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "+", EOpAdd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3583 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 45: -#line 490 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 46: -#line 491 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 492 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "-", EOpSub, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3600 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 46: +/* Line 1792 of yacc.c */ +#line 500 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 47: -#line 497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 501 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift left"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<<", EOpLeftShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3611 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 48: -#line 506 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3617 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 49: -#line 507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 507 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bit shift right"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">>", EOpRightShift, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3627 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 49: +/* Line 1792 of yacc.c */ +#line 516 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 50: -#line 512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 517 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<", EOpLessThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 51: -#line 517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 522 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">", EOpGreaterThan, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3647 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 52: -#line 522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 527 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "<=", EOpLessThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3657 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 53: -#line 530 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3663 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 54: -#line 531 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 532 "glslang.y" { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3676 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + break; + + case 54: +/* Line 1792 of yacc.c */ +#line 540 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 55: -#line 539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 541 "glslang.y" { - parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison"); - parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!="); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); + parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "=="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "==", EOpEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 56: -#line 550 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3695 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 549 "glslang.y" + { + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array comparison"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); + parseContext.specializationCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "!="); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "!=", EOpNotEqual, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); + if ((yyval.interm.intermTypedNode) == 0) + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); + } break; case 57: -#line 551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 560 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } + break; + + case 58: +/* Line 1792 of yacc.c */ +#line 561 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise and"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&", EOpAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3706 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 58: -#line 560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3712 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 59: +/* Line 1792 of yacc.c */ +#line 570 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 59: -#line 561 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 60: +/* Line 1792 of yacc.c */ +#line 571 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise exclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^", EOpExclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3723 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 60: -#line 570 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 61: +/* Line 1792 of yacc.c */ +#line 580 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 61: -#line 571 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 62: +/* Line 1792 of yacc.c */ +#line 581 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or"); - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + parseContext.fullIntegerCheck((yyvsp[(2) - (3)].lex).loc, "bitwise inclusive or"); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "|", EOpInclusiveOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); } -#line 3740 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 62: -#line 580 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3746 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 63: +/* Line 1792 of yacc.c */ +#line 590 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 63: -#line 581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 64: +/* Line 1792 of yacc.c */ +#line 591 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "&&", EOpLogicalAnd, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3756 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 64: -#line 589 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3762 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 65: +/* Line 1792 of yacc.c */ +#line 599 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 65: -#line 590 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 66: +/* Line 1792 of yacc.c */ +#line 600 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "^^", EOpLogicalXor, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3772 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 66: -#line 598 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3778 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 67: +/* Line 1792 of yacc.c */ +#line 608 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 67: -#line 599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 68: +/* Line 1792 of yacc.c */ +#line 609 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[(2) - (3)].lex).loc, "||", EOpLogicalOr, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); if ((yyval.interm.intermTypedNode) == 0) - (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[(2) - (3)].lex).loc); } -#line 3788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 68: -#line 607 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3794 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 69: +/* Line 1792 of yacc.c */ +#line 617 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; - case 69: -#line 608 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 70: +/* Line 1792 of yacc.c */ +#line 618 "glslang.y" { ++parseContext.controlFlowNestingLevel; } -#line 3802 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 70: -#line 611 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 71: +/* Line 1792 of yacc.c */ +#line 621 "glslang.y" { --parseContext.controlFlowNestingLevel; - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc); + parseContext.boolCheck((yyvsp[(2) - (6)].lex).loc, (yyvsp[(1) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(2) - (6)].lex).loc, "?", (yyvsp[(1) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(5) - (6)].lex).loc, ":", (yyvsp[(6) - (6)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[(1) - (6)].interm.intermTypedNode), (yyvsp[(4) - (6)].interm.intermTypedNode), (yyvsp[(6) - (6)].interm.intermTypedNode), (yyvsp[(2) - (6)].lex).loc); if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.binaryOpError((yyvsp[(2) - (6)].lex).loc, ":", (yyvsp[(4) - (6)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(6) - (6)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(6) - (6)].interm.intermTypedNode); } } -#line 3819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 71: -#line 626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); } -#line 3825 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 72: -#line 627 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment"); - parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); - parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "="); - parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)); - parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].interm).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); - } - } -#line 3842 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 636 "glslang.y" + { (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } break; case 73: -#line 642 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpAssign; +/* Line 1792 of yacc.c */ +#line 637 "glslang.y" + { + parseContext.arrayObjectCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "array assignment"); + parseContext.opaqueCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); + parseContext.specializationCheck((yyvsp[(2) - (3)].interm).loc, (yyvsp[(1) - (3)].interm.intermTypedNode)->getType(), "="); + parseContext.lValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)); + parseContext.rValueErrorCheck((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addAssign((yyvsp[(2) - (3)].interm).op, (yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].interm).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.assignError((yyvsp[(2) - (3)].interm).loc, "assign", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (3)].interm.intermTypedNode); + } } -#line 3851 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 74: -#line 646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 652 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpMulAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpAssign; } -#line 3860 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 75: -#line 650 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 656 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpDivAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpMulAssign; } -#line 3869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 76: -#line 654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 660 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%="); - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpModAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpDivAssign; } -#line 3879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 77: -#line 659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 664 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpAddAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "%="); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpModAssign; } -#line 3888 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 78: -#line 663 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 669 "glslang.y" { - (yyval.interm).loc = (yyvsp[0].lex).loc; - (yyval.interm).op = EOpSubAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpAddAssign; } -#line 3897 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 79: -#line 667 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 673 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm).op = EOpSubAssign; } -#line 3906 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 80: -#line 671 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 677 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift left assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpLeftShiftAssign; } -#line 3915 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 81: -#line 675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 681 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bit-shift right assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpRightShiftAssign; } -#line 3924 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 82: -#line 679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 685 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-and assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpAndAssign; } -#line 3933 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 83: -#line 683 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 689 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign"); - (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-xor assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign; } -#line 3942 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 84: -#line 690 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 693 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "bitwise-or assign"); + (yyval.interm).loc = (yyvsp[(1) - (1)].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign; } -#line 3950 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 85: -#line 693 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 700 "glslang.y" { - parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode)); - (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc); - if ((yyval.interm.intermTypedNode) == 0) { - parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString()); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - } + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3963 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 86: -#line 704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 703 "glslang.y" { - parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), ""); - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + parseContext.samplerConstructorLocationCheck((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(3) - (3)].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode), (yyvsp[(2) - (3)].lex).loc); + if ((yyval.interm.intermTypedNode) == 0) { + parseContext.binaryOpError((yyvsp[(2) - (3)].lex).loc, ",", (yyvsp[(1) - (3)].interm.intermTypedNode)->getCompleteString(), (yyvsp[(3) - (3)].interm.intermTypedNode)->getCompleteString()); + (yyval.interm.intermTypedNode) = (yyvsp[(3) - (3)].interm.intermTypedNode); + } } -#line 3972 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 87: -#line 711 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 714 "glslang.y" { - parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */); - (yyval.interm.intermNode) = 0; - // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature + parseContext.constantValueCheck((yyvsp[(1) - (1)].interm.intermTypedNode), ""); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 3982 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 88: -#line 716 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 721 "glslang.y" { - if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate()) - (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode; + parseContext.handleFunctionDeclarator((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).function, true /* prototype */); + (yyval.interm.intermNode) = 0; + // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature } -#line 3992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 89: -#line 721 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 726 "glslang.y" { - parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement"); - - // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope - parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); - parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision); - (yyval.interm.intermNode) = 0; + if ((yyvsp[(1) - (2)].interm).intermNode && (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()) + (yyvsp[(1) - (2)].interm).intermNode->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(1) - (2)].interm).intermNode; } -#line 4005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 90: -#line 729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 731 "glslang.y" { - parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList); + parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ENoProfile, 130, 0, "precision statement"); + + // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope + parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]); + parseContext.setDefaultPrecision((yyvsp[(1) - (4)].lex).loc, (yyvsp[(3) - (4)].interm.type), (yyvsp[(2) - (4)].interm.type).qualifier.precision); (yyval.interm.intermNode) = 0; } -#line 4014 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 91: -#line 733 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 739 "glslang.y" { - parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string); + parseContext.declareBlock((yyvsp[(1) - (2)].interm).loc, *(yyvsp[(1) - (2)].interm).typeList); (yyval.interm.intermNode) = 0; } -#line 4023 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 92: -#line 737 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 743 "glslang.y" { - parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes); + parseContext.declareBlock((yyvsp[(1) - (3)].interm).loc, *(yyvsp[(1) - (3)].interm).typeList, (yyvsp[(2) - (3)].lex).string); (yyval.interm.intermNode) = 0; } -#line 4032 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 93: -#line 741 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 747 "glslang.y" { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type)); + parseContext.declareBlock((yyvsp[(1) - (4)].interm).loc, *(yyvsp[(1) - (4)].interm).typeList, (yyvsp[(2) - (4)].lex).string, (yyvsp[(3) - (4)].interm).arraySizes); (yyval.interm.intermNode) = 0; } -#line 4042 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 94: -#line 746 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 751 "glslang.y" { - parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers); - parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string); + parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); + parseContext.updateStandaloneQualifierDefaults((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type)); (yyval.interm.intermNode) = 0; } -#line 4052 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 95: -#line 751 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 756 "glslang.y" { - parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); - (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string); - parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList)); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).shaderQualifiers); + parseContext.addQualifierToExisting((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).qualifier, *(yyvsp[(2) - (3)].lex).string); (yyval.interm.intermNode) = 0; } -#line 4063 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 96: -#line 760 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); } -#line 4069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 761 "glslang.y" + { + parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); + (yyvsp[(3) - (4)].interm.identifierList)->push_back((yyvsp[(2) - (4)].lex).string); + parseContext.addQualifierToExisting((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier, *(yyvsp[(3) - (4)].interm.identifierList)); + (yyval.interm.intermNode) = 0; + } break; case 97: -#line 760 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - --parseContext.structNestingLevel; - parseContext.blockName = (yyvsp[-4].lex).string; - parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier); - parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers); - parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier; - (yyval.interm).loc = (yyvsp[-5].interm.type).loc; - (yyval.interm).typeList = (yyvsp[-1].interm.typeList); - } -#line 4083 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 770 "glslang.y" + { parseContext.nestedBlockCheck((yyvsp[(1) - (3)].interm.type).loc); } break; case 98: -#line 771 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 770 "glslang.y" { - (yyval.interm.identifierList) = new TIdentifierList; - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); + --parseContext.structNestingLevel; + parseContext.blockName = (yyvsp[(2) - (6)].lex).string; + parseContext.globalQualifierFixCheck((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (6)].interm.type).loc, (yyvsp[(1) - (6)].interm.type).shaderQualifiers); + parseContext.currentBlockQualifier = (yyvsp[(1) - (6)].interm.type).qualifier; + (yyval.interm).loc = (yyvsp[(1) - (6)].interm.type).loc; + (yyval.interm).typeList = (yyvsp[(5) - (6)].interm.typeList); } -#line 4092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 99: -#line 775 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 781 "glslang.y" { - (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList); - (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string); + (yyval.interm.identifierList) = new TIdentifierList; + (yyval.interm.identifierList)->push_back((yyvsp[(2) - (2)].lex).string); } -#line 4101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 100: -#line 782 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 785 "glslang.y" { - (yyval.interm).function = (yyvsp[-1].interm.function); - (yyval.interm).loc = (yyvsp[0].lex).loc; + (yyval.interm.identifierList) = (yyvsp[(1) - (3)].interm.identifierList); + (yyval.interm.identifierList)->push_back((yyvsp[(3) - (3)].lex).string); } -#line 4110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 101: -#line 789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 792 "glslang.y" { - (yyval.interm.function) = (yyvsp[0].interm.function); + (yyval.interm).function = (yyvsp[(1) - (2)].interm.function); + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; } -#line 4118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 102: -#line 792 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 799 "glslang.y" { - (yyval.interm.function) = (yyvsp[0].interm.function); + (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); } -#line 4126 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 103: -#line 799 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 802 "glslang.y" + { + (yyval.interm.function) = (yyvsp[(1) - (1)].interm.function); + } + break; + + case 104: +/* Line 1792 of yacc.c */ +#line 809 "glslang.y" { // Add the parameter - (yyval.interm.function) = (yyvsp[-1].interm.function); - if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid) - (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param); + (yyval.interm.function) = (yyvsp[(1) - (2)].interm.function); + if ((yyvsp[(2) - (2)].interm).param.type->getBasicType() != EbtVoid) + (yyvsp[(1) - (2)].interm.function)->addParameter((yyvsp[(2) - (2)].interm).param); else - delete (yyvsp[0].interm).param.type; + delete (yyvsp[(2) - (2)].interm).param.type; } -#line 4139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 104: -#line 807 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 105: +/* Line 1792 of yacc.c */ +#line 817 "glslang.y" { // // Only first parameter of one-parameter functions can be void // The check for named parameters not being void is done in parameter_declarator // - if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) { + if ((yyvsp[(3) - (3)].interm).param.type->getBasicType() == EbtVoid) { // // This parameter > first is void // - parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); - delete (yyvsp[0].interm).param.type; + parseContext.error((yyvsp[(2) - (3)].lex).loc, "cannot be an argument type except for '(void)'", "void", ""); + delete (yyvsp[(3) - (3)].interm).param.type; } else { // Add the parameter - (yyval.interm.function) = (yyvsp[-2].interm.function); - (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param); + (yyval.interm.function) = (yyvsp[(1) - (3)].interm.function); + (yyvsp[(1) - (3)].interm.function)->addParameter((yyvsp[(3) - (3)].interm).param); } } -#line 4161 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 105: -#line 827 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 106: +/* Line 1792 of yacc.c */ +#line 837 "glslang.y" { - if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) { - parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return", - GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), ""); + if ((yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqGlobal && (yyvsp[(1) - (3)].interm.type).qualifier.storage != EvqTemporary) { + parseContext.error((yyvsp[(2) - (3)].lex).loc, "no qualifiers allowed for function return", + GetStorageQualifierString((yyvsp[(1) - (3)].interm.type).qualifier.storage), ""); } - if ((yyvsp[-2].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + if ((yyvsp[(1) - (3)].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); // Add the function as a prototype after parsing it (we do not support recursion) TFunction *function; - TType type((yyvsp[-2].interm.type)); - function = new TFunction((yyvsp[-1].lex).string, type); + TType type((yyvsp[(1) - (3)].interm.type)); + function = new TFunction((yyvsp[(2) - (3)].lex).string, type); (yyval.interm.function) = function; } -#line 4180 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 106: -#line 845 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 107: +/* Line 1792 of yacc.c */ +#line 855 "glslang.y" { - if ((yyvsp[-1].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes); + if ((yyvsp[(1) - (2)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (2)].interm.type).loc, *(yyvsp[(1) - (2)].interm.type).arraySizes); } - if ((yyvsp[-1].interm.type).basicType == EbtVoid) { - parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), ""); + if ((yyvsp[(1) - (2)].interm.type).basicType == EbtVoid) { + parseContext.error((yyvsp[(2) - (2)].lex).loc, "illegal use of type 'void'", (yyvsp[(2) - (2)].lex).string->c_str(), ""); } - parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string); + parseContext.reservedErrorCheck((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string); - TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))}; - (yyval.interm).loc = (yyvsp[0].lex).loc; + TParameter param = {(yyvsp[(2) - (2)].lex).string, new TType((yyvsp[(1) - (2)].interm.type))}; + (yyval.interm).loc = (yyvsp[(2) - (2)].lex).loc; (yyval.interm).param = param; } -#line 4200 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 107: -#line 860 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 108: +/* Line 1792 of yacc.c */ +#line 870 "glslang.y" { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + if ((yyvsp[(1) - (3)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); } - parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.type).arraySizes, (yyvsp[0].interm).arraySizes); + parseContext.arrayDimCheck((yyvsp[(2) - (3)].lex).loc, (yyvsp[(1) - (3)].interm.type).arraySizes, (yyvsp[(3) - (3)].interm).arraySizes); - parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes); - parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string); + parseContext.arraySizeRequiredCheck((yyvsp[(3) - (3)].interm).loc, *(yyvsp[(3) - (3)].interm).arraySizes); + parseContext.reservedErrorCheck((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string); - (yyvsp[-2].interm.type).arraySizes = (yyvsp[0].interm).arraySizes; + (yyvsp[(1) - (3)].interm.type).arraySizes = (yyvsp[(3) - (3)].interm).arraySizes; - TParameter param = { (yyvsp[-1].lex).string, new TType((yyvsp[-2].interm.type))}; - (yyval.interm).loc = (yyvsp[-1].lex).loc; + TParameter param = { (yyvsp[(2) - (3)].lex).string, new TType((yyvsp[(1) - (3)].interm.type))}; + (yyval.interm).loc = (yyvsp[(2) - (3)].lex).loc; (yyval.interm).param = param; } -#line 4222 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 108: -#line 883 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 109: +/* Line 1792 of yacc.c */ +#line 893 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; + (yyval.interm) = (yyvsp[(2) - (2)].interm); + if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); - - } -#line 4238 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 109: -#line 894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - (yyval.interm) = (yyvsp[0].interm); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); - parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4250 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 110: -#line 904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 904 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); - if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone) - (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision; - parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + (yyval.interm) = (yyvsp[(1) - (1)].interm); - parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type); - parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type); + parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4265 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 111: -#line 914 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 914 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + (yyval.interm) = (yyvsp[(2) - (2)].interm); + if ((yyvsp[(1) - (2)].interm.type).qualifier.precision != EpqNone) + (yyval.interm).param.type->getQualifier().precision = (yyvsp[(1) - (2)].interm.type).qualifier.precision; + parseContext.precisionQualifierCheck((yyvsp[(1) - (2)].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); - parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type); - parseContext.paramCheckFix((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type); - parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.parameterTypeCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(1) - (2)].interm.type).qualifier.storage, *(yyval.interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, *(yyval.interm).param.type); } -#line 4277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 112: -#line 924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 924 "glslang.y" { - TParameter param = { 0, new TType((yyvsp[0].interm.type)) }; - (yyval.interm).param = param; - if ((yyvsp[0].interm.type).arraySizes) - parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes); + (yyval.interm) = (yyvsp[(1) - (1)].interm); + + parseContext.parameterTypeCheck((yyvsp[(1) - (1)].interm).loc, EvqIn, *(yyvsp[(1) - (1)].interm).param.type); + parseContext.paramCheckFix((yyvsp[(1) - (1)].interm).loc, EvqTemporary, *(yyval.interm).param.type); + parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier()); } -#line 4288 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 113: -#line 933 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 934 "glslang.y" { - (yyval.interm) = (yyvsp[0].interm); + TParameter param = { 0, new TType((yyvsp[(1) - (1)].interm.type)) }; + (yyval.interm).param = param; + if ((yyvsp[(1) - (1)].interm.type).arraySizes) + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (1)].interm.type).loc, *(yyvsp[(1) - (1)].interm.type).arraySizes); } -#line 4296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 114: -#line 936 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 943 "glslang.y" { - (yyval.interm) = (yyvsp[-2].interm); - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type); + (yyval.interm) = (yyvsp[(1) - (1)].interm); } -#line 4305 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 115: -#line 940 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 946 "glslang.y" { - (yyval.interm) = (yyvsp[-3].interm); - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes); + (yyval.interm) = (yyvsp[(1) - (3)].interm); + parseContext.declareVariable((yyvsp[(3) - (3)].lex).loc, *(yyvsp[(3) - (3)].lex).string, (yyvsp[(1) - (3)].interm).type); } -#line 4314 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 116: -#line 944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 950 "glslang.y" { - (yyval.interm).type = (yyvsp[-5].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc); + (yyval.interm) = (yyvsp[(1) - (4)].interm); + parseContext.declareVariable((yyvsp[(3) - (4)].lex).loc, *(yyvsp[(3) - (4)].lex).string, (yyvsp[(1) - (4)].interm).type, (yyvsp[(4) - (4)].interm).arraySizes); } -#line 4324 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 117: -#line 949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 954 "glslang.y" { - (yyval.interm).type = (yyvsp[-4].interm).type; - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (6)].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (6)].lex).loc, *(yyvsp[(3) - (6)].lex).string, (yyvsp[(1) - (6)].interm).type, (yyvsp[(4) - (6)].interm).arraySizes, (yyvsp[(6) - (6)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (6)].interm).intermNode, initNode, (yyvsp[(5) - (6)].lex).loc); } -#line 4334 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 118: -#line 957 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 959 "glslang.y" { - (yyval.interm).type = (yyvsp[0].interm.type); - (yyval.interm).intermNode = 0; - parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); + (yyval.interm).type = (yyvsp[(1) - (5)].interm).type; + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(3) - (5)].lex).loc, *(yyvsp[(3) - (5)].lex).string, (yyvsp[(1) - (5)].interm).type, 0, (yyvsp[(5) - (5)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[(1) - (5)].interm).intermNode, initNode, (yyvsp[(4) - (5)].lex).loc); } -#line 4344 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 119: -#line 962 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 967 "glslang.y" { - (yyval.interm).type = (yyvsp[-1].interm.type); + (yyval.interm).type = (yyvsp[(1) - (1)].interm.type); (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type)); + parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type); } -#line 4354 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 120: -#line 967 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 972 "glslang.y" { - (yyval.interm).type = (yyvsp[-2].interm.type); + (yyval.interm).type = (yyvsp[(1) - (2)].interm.type); (yyval.interm).intermNode = 0; - parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes); + parseContext.declareVariable((yyvsp[(2) - (2)].lex).loc, *(yyvsp[(2) - (2)].lex).string, (yyvsp[(1) - (2)].interm.type)); } -#line 4364 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 121: -#line 972 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 977 "glslang.y" { - (yyval.interm).type = (yyvsp[-4].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (3)].interm.type); + (yyval.interm).intermNode = 0; + parseContext.declareVariable((yyvsp[(2) - (3)].lex).loc, *(yyvsp[(2) - (3)].lex).string, (yyvsp[(1) - (3)].interm.type), (yyvsp[(3) - (3)].interm).arraySizes); } -#line 4374 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 122: -#line 977 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 982 "glslang.y" { - (yyval.interm).type = (yyvsp[-3].interm.type); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); - (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc); + (yyval.interm).type = (yyvsp[(1) - (5)].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (5)].lex).loc, *(yyvsp[(2) - (5)].lex).string, (yyvsp[(1) - (5)].interm.type), (yyvsp[(3) - (5)].interm).arraySizes, (yyvsp[(5) - (5)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(4) - (5)].lex).loc); } -#line 4384 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 123: -#line 986 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 987 "glslang.y" + { + (yyval.interm).type = (yyvsp[(1) - (4)].interm.type); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); + (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[(3) - (4)].lex).loc); + } + break; + + case 124: +/* Line 1792 of yacc.c */ +#line 996 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); - parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type)); - if ((yyvsp[0].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.globalQualifierTypeCheck((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier, (yyval.interm.type)); + if ((yyvsp[(1) - (1)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (1)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier); } -#line 4400 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 124: -#line 997 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 125: +/* Line 1792 of yacc.c */ +#line 1007 "glslang.y" { - parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier); - parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type)); + parseContext.globalQualifierFixCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier); + parseContext.globalQualifierTypeCheck((yyvsp[(1) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier, (yyvsp[(2) - (2)].interm.type)); - if ((yyvsp[0].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[(2) - (2)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(2) - (2)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); } - if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier)) - (yyvsp[0].interm.type).arraySizes = 0; + if ((yyvsp[(2) - (2)].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).qualifier)) + (yyvsp[(2) - (2)].interm.type).arraySizes = 0; - parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers); - (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(1) - (2)].interm.type).shaderQualifiers); + (yyvsp[(2) - (2)].interm.type).shaderQualifiers.merge((yyvsp[(1) - (2)].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).qualifier, (yyvsp[(1) - (2)].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[(2) - (2)].interm.type).loc, (yyvsp[(2) - (2)].interm.type).basicType, (yyvsp[(2) - (2)].interm.type).qualifier); - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(2) - (2)].interm.type); if (! (yyval.interm.type).qualifier.isInterpolation() && ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) || (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn))) (yyval.interm.type).qualifier.smooth = true; } -#line 4429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ - break; - - case 125: -#line 1024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.globalCheck((yyvsp[0].lex).loc, "invariant"); - parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.invariant = true; - } -#line 4440 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 126: -#line 1033 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1034 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.smooth = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "invariant"); + parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.invariant = true; } -#line 4452 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 127: -#line 1040 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1043 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.flat = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "smooth"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "smooth"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "smooth"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.smooth = true; } -#line 4464 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 128: -#line 1047 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1050 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective"); - parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "noperspective"); - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.nopersp = true; + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "flat"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "flat"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "flat"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.flat = true; } -#line 4476 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 129: -#line 1054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1057 "glslang.y" { -#ifdef AMD_EXTENSIONS - parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.explicitInterp = true; -#endif + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "noperspective"); + parseContext.requireProfile((yyvsp[(1) - (1)].lex).loc, ~EEsProfile, "noperspective"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "noperspective"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.nopersp = true; } -#line 4490 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 130: -#line 1066 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1064 "glslang.y" { - (yyval.interm.type) = (yyvsp[-1].interm.type); +#ifdef AMD_EXTENSIONS + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "__explicitInterpAMD"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.explicitInterp = true; +#endif } -#line 4498 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 131: -#line 1072 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1076 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(3) - (4)].interm.type); } -#line 4506 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 132: -#line 1075 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1082 "glslang.y" { - (yyval.interm.type) = (yyvsp[-2].interm.type); - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4516 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 133: -#line 1082 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1085 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string); + (yyval.interm.type) = (yyvsp[(1) - (3)].interm.type); + (yyval.interm.type).shaderQualifiers.merge((yyvsp[(3) - (3)].interm.type).shaderQualifiers); + parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[(3) - (3)].interm.type).qualifier, false); } -#line 4525 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 134: -#line 1086 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1092 "glslang.y" { - (yyval.interm.type).init((yyvsp[-2].lex).loc); - parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (1)].lex).string); } -#line 4534 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 135: -#line 1090 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { // because "shared" is both an identifier and a keyword - (yyval.interm.type).init((yyvsp[0].lex).loc); - TString strShared("shared"); - parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared); +/* Line 1792 of yacc.c */ +#line 1096 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (3)].lex).loc); + parseContext.setLayoutQualifier((yyvsp[(1) - (3)].lex).loc, (yyval.interm.type), *(yyvsp[(1) - (3)].lex).string, (yyvsp[(3) - (3)].interm.intermTypedNode)); } -#line 4544 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 136: -#line 1098 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { - parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.noContraction = true; +/* Line 1792 of yacc.c */ +#line 1100 "glslang.y" + { // because "shared" is both an identifier and a keyword + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + TString strShared("shared"); + parseContext.setLayoutQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type), strShared); } -#line 4555 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 137: -#line 1107 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1108 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.noContraction = true; } -#line 4563 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 138: -#line 1110 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1117 "glslang.y" { - (yyval.interm.type) = (yyvsp[-1].interm.type); - if ((yyval.interm.type).basicType == EbtVoid) - (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType; - - (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers); - parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4576 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 139: -#line 1121 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1120 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); + if ((yyval.interm.type).basicType == EbtVoid) + (yyval.interm.type).basicType = (yyvsp[(2) - (2)].interm.type).basicType; + + (yyval.interm.type).shaderQualifiers.merge((yyvsp[(2) - (2)].interm.type).shaderQualifiers); + parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[(2) - (2)].interm.type).qualifier, false); } -#line 4584 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 140: -#line 1124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1131 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 141: -#line 1127 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1134 "glslang.y" { - parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision); - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4601 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 142: -#line 1131 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1137 "glslang.y" { - // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + parseContext.checkPrecisionQualifier((yyvsp[(1) - (1)].interm.type).loc, (yyvsp[(1) - (1)].interm.type).qualifier.precision); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4610 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 143: -#line 1135 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1141 "glslang.y" { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 144: -#line 1139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1145 "glslang.y" { // allow inheritance of storage qualifier from block declaration - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4628 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 145: -#line 1146 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1149 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); - (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant + // allow inheritance of storage qualifier from block declaration + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); } -#line 4637 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; case 146: -#line 1150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 1156 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); + (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant + } + break; + + case 147: +/* Line 1792 of yacc.c */ +#line 1160 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangVertex, "attribute"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "attribute"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "attribute"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "attribute"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "attribute"); - parseContext.globalCheck((yyvsp[0].lex).loc, "attribute"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "attribute"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 4654 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 147: -#line 1162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 148: +/* Line 1792 of yacc.c */ +#line 1172 "glslang.y" { - parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying"); - parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying"); - parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, "varying"); + parseContext.checkDeprecated((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 130, "varying"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, ECoreProfile, 420, "varying"); + parseContext.requireNotRemoved((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, "varying"); - parseContext.globalCheck((yyvsp[0].lex).loc, "varying"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "varying"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); if (parseContext.language == EShLangVertex) (yyval.interm.type).qualifier.storage = EvqVaryingOut; else (yyval.interm.type).qualifier.storage = EvqVaryingIn; } -#line 4673 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 148: -#line 1176 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 149: +/* Line 1792 of yacc.c */ +#line 1186 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "inout"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "inout"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.storage = EvqInOut; } -#line 4683 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 149: -#line 1181 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 150: +/* Line 1792 of yacc.c */ +#line 1191 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "in"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "in"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqIn; } -#line 4694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 150: -#line 1187 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 151: +/* Line 1792 of yacc.c */ +#line 1197 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "out"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "out"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later (yyval.interm.type).qualifier.storage = EvqOut; } -#line 4705 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 151: -#line 1193 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 152: +/* Line 1792 of yacc.c */ +#line 1203 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid"); - parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid"); - parseContext.globalCheck((yyvsp[0].lex).loc, "centroid"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 120, 0, "centroid"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 300, 0, "centroid"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "centroid"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.centroid = true; } -#line 4717 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 152: -#line 1200 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 153: +/* Line 1792 of yacc.c */ +#line 1210 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "patch"); - parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "patch"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.patch = true; } -#line 4728 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 153: -#line 1206 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 154: +/* Line 1792 of yacc.c */ +#line 1216 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "sample"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "sample"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.sample = true; } -#line 4738 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 154: -#line 1211 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 155: +/* Line 1792 of yacc.c */ +#line 1221 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "uniform"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "uniform"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 4748 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 155: -#line 1216 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 156: +/* Line 1792 of yacc.c */ +#line 1226 "glslang.y" { - parseContext.globalCheck((yyvsp[0].lex).loc, "buffer"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "buffer"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.storage = EvqBuffer; } -#line 4758 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 156: -#line 1221 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 157: +/* Line 1792 of yacc.c */ +#line 1231 "glslang.y" { - 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); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared"); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, EEsProfile, 310, 0, "shared"); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangCompute, "shared"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.storage = EvqShared; } -#line 4770 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 157: -#line 1228 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 158: +/* Line 1792 of yacc.c */ +#line 1238 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.coherent = true; } -#line 4779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 158: -#line 1232 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 159: +/* Line 1792 of yacc.c */ +#line 1242 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.volatil = true; } -#line 4788 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 159: -#line 1236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 160: +/* Line 1792 of yacc.c */ +#line 1246 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.restrict = true; } -#line 4797 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 160: -#line 1240 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 161: +/* Line 1792 of yacc.c */ +#line 1250 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.readonly = true; } -#line 4806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 161: -#line 1244 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 162: +/* Line 1792 of yacc.c */ +#line 1254 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.writeonly = true; } -#line 4815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 162: -#line 1248 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 163: +/* Line 1792 of yacc.c */ +#line 1258 "glslang.y" { - parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[0].lex).loc); + parseContext.spvRemoved((yyvsp[(1) - (1)].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[(1) - (1)].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; } -#line 4826 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 163: -#line 1254 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 164: +/* Line 1792 of yacc.c */ +#line 1264 "glslang.y" { - parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine"); - parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine"); - (yyval.interm.type).init((yyvsp[-3].lex).loc); + parseContext.spvRemoved((yyvsp[(1) - (4)].lex).loc, "subroutine"); + parseContext.globalCheck((yyvsp[(1) - (4)].lex).loc, "subroutine"); + (yyval.interm.type).init((yyvsp[(1) - (4)].lex).loc); (yyval.interm.type).qualifier.storage = EvqUniform; // TODO: 4.0 semantics: subroutines // 1) make sure each identifier is a type declared earlier with SUBROUTINE // 2) save all of the identifiers for future comparison with the declared function } -#line 4840 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 164: -#line 1266 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 165: +/* Line 1792 of yacc.c */ +#line 1276 "glslang.y" { // TODO: 4.0 functionality: subroutine type to list } -#line 4848 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 165: -#line 1269 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 166: +/* Line 1792 of yacc.c */ +#line 1279 "glslang.y" { } -#line 4855 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 166: -#line 1274 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 167: +/* Line 1792 of yacc.c */ +#line 1284 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); } -#line 4864 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 167: -#line 1278 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 168: +/* Line 1792 of yacc.c */ +#line 1288 "glslang.y" { - parseContext.arrayDimCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes, 0); - (yyval.interm.type) = (yyvsp[-1].interm.type); + parseContext.arrayDimCheck((yyvsp[(2) - (2)].interm).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); + (yyval.interm.type) = (yyvsp[(1) - (2)].interm.type); (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type)); - (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes; + (yyval.interm.type).arraySizes = (yyvsp[(2) - (2)].interm).arraySizes; } -#line 4875 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 168: -#line 1287 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 169: +/* Line 1792 of yacc.c */ +#line 1297 "glslang.y" { - (yyval.interm).loc = (yyvsp[-1].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (2)].lex).loc; (yyval.interm).arraySizes = new TArraySizes; (yyval.interm).arraySizes->addInnerSize(); } -#line 4885 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 169: -#line 1292 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 170: +/* Line 1792 of yacc.c */ +#line 1302 "glslang.y" { - (yyval.interm).loc = (yyvsp[-2].lex).loc; + (yyval.interm).loc = (yyvsp[(1) - (3)].lex).loc; (yyval.interm).arraySizes = new TArraySizes; TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); + parseContext.arraySizeCheck((yyvsp[(2) - (3)].interm.intermTypedNode)->getLoc(), (yyvsp[(2) - (3)].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 4898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 170: -#line 1300 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 171: +/* Line 1792 of yacc.c */ +#line 1310 "glslang.y" { - (yyval.interm) = (yyvsp[-2].interm); + (yyval.interm) = (yyvsp[(1) - (3)].interm); (yyval.interm).arraySizes->addInnerSize(); } -#line 4907 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 171: -#line 1304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 172: +/* Line 1792 of yacc.c */ +#line 1314 "glslang.y" { - (yyval.interm) = (yyvsp[-3].interm); + (yyval.interm) = (yyvsp[(1) - (4)].interm); TArraySize size; - parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size); + parseContext.arraySizeCheck((yyvsp[(3) - (4)].interm.intermTypedNode)->getLoc(), (yyvsp[(3) - (4)].interm.intermTypedNode), size); (yyval.interm).arraySizes->addInnerSize(size); } -#line 4919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 172: -#line 1314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 173: +/* Line 1792 of yacc.c */ +#line 1324 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtVoid; } -#line 4928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 173: -#line 1318 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 174: +/* Line 1792 of yacc.c */ +#line 1328 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; } -#line 4937 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 174: -#line 1322 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 175: +/* Line 1792 of yacc.c */ +#line 1332 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; } -#line 4947 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 175: -#line 1327 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 176: +/* Line 1792 of yacc.c */ +#line 1337 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; +#endif + } + break; + + case 177: +/* Line 1792 of yacc.c */ +#line 1344 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; } -#line 4956 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 176: -#line 1331 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 178: +/* Line 1792 of yacc.c */ +#line 1348 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; } -#line 4966 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 177: -#line 1336 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 179: +/* Line 1792 of yacc.c */ +#line 1353 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; } -#line 4976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 178: -#line 1341 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 180: +/* Line 1792 of yacc.c */ +#line 1358 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint64; } -#line 4986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 179: -#line 1346 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 181: +/* Line 1792 of yacc.c */ +#line 1363 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; } -#line 4995 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 180: -#line 1350 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 182: +/* Line 1792 of yacc.c */ +#line 1367 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(2); } -#line 5005 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 181: -#line 1355 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 183: +/* Line 1792 of yacc.c */ +#line 1372 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(3); } -#line 5015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 182: -#line 1360 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 184: +/* Line 1792 of yacc.c */ +#line 1377 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtFloat; (yyval.interm.type).setVector(4); } -#line 5025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 183: -#line 1365 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 185: +/* Line 1792 of yacc.c */ +#line 1382 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(2); } -#line 5036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 184: -#line 1371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 186: +/* Line 1792 of yacc.c */ +#line 1388 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(3); } -#line 5047 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 185: -#line 1377 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 187: +/* Line 1792 of yacc.c */ +#line 1394 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setVector(4); } -#line 5058 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 186: -#line 1383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 188: +/* Line 1792 of yacc.c */ +#line 1400 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(2); +#endif + } + break; + + case 189: +/* Line 1792 of yacc.c */ +#line 1408 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(3); +#endif + } + break; + + case 190: +/* Line 1792 of yacc.c */ +#line 1416 "glslang.y" + { +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; + (yyval.interm.type).setVector(4); +#endif + } + break; + + case 191: +/* Line 1792 of yacc.c */ +#line 1424 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(2); } -#line 5068 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 187: -#line 1388 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 192: +/* Line 1792 of yacc.c */ +#line 1429 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(3); } -#line 5078 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 188: -#line 1393 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 193: +/* Line 1792 of yacc.c */ +#line 1434 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtBool; (yyval.interm.type).setVector(4); } -#line 5088 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 189: -#line 1398 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 194: +/* Line 1792 of yacc.c */ +#line 1439 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(2); } -#line 5098 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 190: -#line 1403 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 195: +/* Line 1792 of yacc.c */ +#line 1444 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(3); } -#line 5108 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 191: -#line 1408 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 196: +/* Line 1792 of yacc.c */ +#line 1449 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt; (yyval.interm.type).setVector(4); } -#line 5118 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 192: -#line 1413 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 197: +/* Line 1792 of yacc.c */ +#line 1454 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(2); } -#line 5129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 193: -#line 1419 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 198: +/* Line 1792 of yacc.c */ +#line 1460 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(3); } -#line 5140 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 194: -#line 1425 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 199: +/* Line 1792 of yacc.c */ +#line 1466 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtInt64; (yyval.interm.type).setVector(4); } -#line 5151 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 195: -#line 1431 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 200: +/* Line 1792 of yacc.c */ +#line 1472 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(2); } -#line 5162 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 196: -#line 1437 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 201: +/* Line 1792 of yacc.c */ +#line 1478 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(3); } -#line 5173 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 197: -#line 1443 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 202: +/* Line 1792 of yacc.c */ +#line 1484 "glslang.y" { - parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.fullIntegerCheck((yyvsp[(1) - (1)].lex).loc, "unsigned integer vector"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtUint; (yyval.interm.type).setVector(4); } -#line 5184 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 198: -#line 1449 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 203: +/* Line 1792 of yacc.c */ +#line 1490 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(2); + } + break; + + case 204: +/* Line 1792 of yacc.c */ +#line 1496 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(3); + } + break; + + case 205: +/* Line 1792 of yacc.c */ +#line 1502 "glslang.y" + { + parseContext.int64Check((yyvsp[(1) - (1)].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtUint64; + (yyval.interm.type).setVector(4); + } + break; + + case 206: +/* Line 1792 of yacc.c */ +#line 1508 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 2); + } + break; + + case 207: +/* Line 1792 of yacc.c */ +#line 1513 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); + } + break; + + case 208: +/* Line 1792 of yacc.c */ +#line 1518 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); + } + break; + + case 209: +/* Line 1792 of yacc.c */ +#line 1523 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 2); + } + break; + + case 210: +/* Line 1792 of yacc.c */ +#line 1528 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 3); + } + break; + + case 211: +/* Line 1792 of yacc.c */ +#line 1533 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(2, 4); + } + break; + + case 212: +/* Line 1792 of yacc.c */ +#line 1538 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 2); + } + break; + + case 213: +/* Line 1792 of yacc.c */ +#line 1543 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 3); + } + break; + + case 214: +/* Line 1792 of yacc.c */ +#line 1548 "glslang.y" + { + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(3, 4); + } + break; + + case 215: +/* Line 1792 of yacc.c */ +#line 1553 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(2); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 2); } -#line 5195 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 199: -#line 1455 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 216: +/* Line 1792 of yacc.c */ +#line 1558 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(3); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 3); } -#line 5206 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 200: -#line 1461 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 217: +/* Line 1792 of yacc.c */ +#line 1563 "glslang.y" { - parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel()); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtUint64; - (yyval.interm.type).setVector(4); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat; + (yyval.interm.type).setMatrix(4, 4); } -#line 5217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 201: -#line 1467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 218: +/* Line 1792 of yacc.c */ +#line 1568 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 5227 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 202: -#line 1472 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 219: +/* Line 1792 of yacc.c */ +#line 1574 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 5237 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 203: -#line 1477 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 220: +/* Line 1792 of yacc.c */ +#line 1580 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 5247 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 204: -#line 1482 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 221: +/* Line 1792 of yacc.c */ +#line 1586 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 2); } -#line 5257 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 205: -#line 1487 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 222: +/* Line 1792 of yacc.c */ +#line 1592 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 3); } -#line 5267 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 206: -#line 1492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 223: +/* Line 1792 of yacc.c */ +#line 1598 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(2, 4); } -#line 5277 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 207: -#line 1497 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 224: +/* Line 1792 of yacc.c */ +#line 1604 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 2); } -#line 5287 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 208: -#line 1502 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 225: +/* Line 1792 of yacc.c */ +#line 1610 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 3); } -#line 5297 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 209: -#line 1507 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 226: +/* Line 1792 of yacc.c */ +#line 1616 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(3, 4); } -#line 5307 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 210: -#line 1512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 227: +/* Line 1792 of yacc.c */ +#line 1622 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 2); } -#line 5317 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 211: -#line 1517 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 228: +/* Line 1792 of yacc.c */ +#line 1628 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 3); } -#line 5327 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 212: -#line 1522 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 229: +/* Line 1792 of yacc.c */ +#line 1634 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtFloat; + parseContext.doubleCheck((yyvsp[(1) - (1)].lex).loc, "double matrix"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtDouble; (yyval.interm.type).setMatrix(4, 4); } -#line 5337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 213: -#line 1527 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 230: +/* Line 1792 of yacc.c */ +#line 1640 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); +#endif } -#line 5348 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 214: -#line 1533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 231: +/* Line 1792 of yacc.c */ +#line 1648 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); +#endif } -#line 5359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 215: -#line 1539 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 232: +/* Line 1792 of yacc.c */ +#line 1656 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); +#endif } -#line 5370 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 216: -#line 1545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 233: +/* Line 1792 of yacc.c */ +#line 1664 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 2); +#endif } -#line 5381 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 217: -#line 1551 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 234: +/* Line 1792 of yacc.c */ +#line 1672 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 3); +#endif } -#line 5392 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 218: -#line 1557 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 235: +/* Line 1792 of yacc.c */ +#line 1680 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(2, 4); +#endif } -#line 5403 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 219: -#line 1563 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 236: +/* Line 1792 of yacc.c */ +#line 1688 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 2); +#endif } -#line 5414 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 220: -#line 1569 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 237: +/* Line 1792 of yacc.c */ +#line 1696 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 3); +#endif } -#line 5425 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 221: -#line 1575 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 238: +/* Line 1792 of yacc.c */ +#line 1704 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(3, 4); +#endif } -#line 5436 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 222: -#line 1581 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 239: +/* Line 1792 of yacc.c */ +#line 1712 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 2); +#endif } -#line 5447 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 223: -#line 1587 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 240: +/* Line 1792 of yacc.c */ +#line 1720 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 3); +#endif } -#line 5458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 224: -#line 1593 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 241: +/* Line 1792 of yacc.c */ +#line 1728 "glslang.y" { - parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - (yyval.interm.type).basicType = EbtDouble; +#ifdef AMD_EXTENSIONS + parseContext.float16Check((yyvsp[(1) - (1)].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).basicType = EbtFloat16; (yyval.interm.type).setMatrix(4, 4); +#endif } -#line 5469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 225: -#line 1599 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 242: +/* Line 1792 of yacc.c */ +#line 1736 "glslang.y" { - parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.vulkanRemoved((yyvsp[(1) - (1)].lex).loc, "atomic counter types"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtAtomicUint; } -#line 5479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 226: -#line 1604 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 243: +/* Line 1792 of yacc.c */ +#line 1741 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D); } -#line 5489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 227: -#line 1609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 244: +/* Line 1792 of yacc.c */ +#line 1746 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); } -#line 5499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 228: -#line 1614 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 245: +/* Line 1792 of yacc.c */ +#line 1751 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd3D); } -#line 5509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 229: -#line 1619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 246: +/* Line 1792 of yacc.c */ +#line 1756 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube); } -#line 5519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 230: -#line 1624 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 247: +/* Line 1792 of yacc.c */ +#line 1761 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true); } -#line 5529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 231: -#line 1629 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 248: +/* Line 1792 of yacc.c */ +#line 1766 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true); } -#line 5539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 232: -#line 1634 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 249: +/* Line 1792 of yacc.c */ +#line 1771 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true); } -#line 5549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 233: -#line 1639 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 250: +/* Line 1792 of yacc.c */ +#line 1776 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true); } -#line 5559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 234: -#line 1644 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 251: +/* Line 1792 of yacc.c */ +#line 1781 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true); } -#line 5569 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 235: -#line 1649 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 252: +/* Line 1792 of yacc.c */ +#line 1786 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true); } -#line 5579 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 236: -#line 1654 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 253: +/* Line 1792 of yacc.c */ +#line 1791 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true); } -#line 5589 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 237: -#line 1659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 254: +/* Line 1792 of yacc.c */ +#line 1796 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true); } -#line 5599 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 238: -#line 1664 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 255: +/* Line 1792 of yacc.c */ +#line 1801 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true); } -#line 5609 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 239: -#line 1669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 256: +/* Line 1792 of yacc.c */ +#line 1806 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D); } -#line 5619 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 240: -#line 1674 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 257: +/* Line 1792 of yacc.c */ +#line 1811 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D); } -#line 5629 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 241: -#line 1679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 258: +/* Line 1792 of yacc.c */ +#line 1816 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd3D); } -#line 5639 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 242: -#line 1684 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 259: +/* Line 1792 of yacc.c */ +#line 1821 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube); } -#line 5649 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 243: -#line 1689 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 260: +/* Line 1792 of yacc.c */ +#line 1826 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd1D, true); } -#line 5659 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 244: -#line 1694 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 261: +/* Line 1792 of yacc.c */ +#line 1831 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true); } -#line 5669 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 245: -#line 1699 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 262: +/* Line 1792 of yacc.c */ +#line 1836 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdCube, true); } -#line 5679 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 246: -#line 1704 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 263: +/* Line 1792 of yacc.c */ +#line 1841 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D); } -#line 5689 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 247: -#line 1709 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 264: +/* Line 1792 of yacc.c */ +#line 1846 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D); } -#line 5699 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 248: -#line 1714 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 265: +/* Line 1792 of yacc.c */ +#line 1851 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd3D); } -#line 5709 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 249: -#line 1719 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 266: +/* Line 1792 of yacc.c */ +#line 1856 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube); } -#line 5719 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 250: -#line 1724 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 267: +/* Line 1792 of yacc.c */ +#line 1861 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd1D, true); } -#line 5729 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 251: -#line 1729 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 268: +/* Line 1792 of yacc.c */ +#line 1866 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true); } -#line 5739 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 252: -#line 1734 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 269: +/* Line 1792 of yacc.c */ +#line 1871 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdCube, true); } -#line 5749 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 253: -#line 1739 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 270: +/* Line 1792 of yacc.c */ +#line 1876 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect); } -#line 5759 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 254: -#line 1744 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 271: +/* Line 1792 of yacc.c */ +#line 1881 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true); } -#line 5769 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 255: -#line 1749 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 272: +/* Line 1792 of yacc.c */ +#line 1886 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdRect); } -#line 5779 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 256: -#line 1754 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 273: +/* Line 1792 of yacc.c */ +#line 1891 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdRect); } -#line 5789 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 257: -#line 1759 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 274: +/* Line 1792 of yacc.c */ +#line 1896 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer); } -#line 5799 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 258: -#line 1764 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 275: +/* Line 1792 of yacc.c */ +#line 1901 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, EsdBuffer); } -#line 5809 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 259: -#line 1769 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 276: +/* Line 1792 of yacc.c */ +#line 1906 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, EsdBuffer); } -#line 5819 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 260: -#line 1774 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 277: +/* Line 1792 of yacc.c */ +#line 1911 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true); } -#line 5829 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 261: -#line 1779 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 278: +/* Line 1792 of yacc.c */ +#line 1916 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true); } -#line 5839 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 262: -#line 1784 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 279: +/* Line 1792 of yacc.c */ +#line 1921 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true); } -#line 5849 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 263: -#line 1789 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 280: +/* Line 1792 of yacc.c */ +#line 1926 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true); } -#line 5859 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 264: -#line 1794 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 281: +/* Line 1792 of yacc.c */ +#line 1931 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true); } -#line 5869 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 265: -#line 1799 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 282: +/* Line 1792 of yacc.c */ +#line 1936 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true); } -#line 5879 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 266: -#line 1804 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 283: +/* Line 1792 of yacc.c */ +#line 1941 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(false); } -#line 5889 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 267: -#line 1809 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 284: +/* Line 1792 of yacc.c */ +#line 1946 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setPureSampler(true); } -#line 5899 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 268: -#line 1814 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 285: +/* Line 1792 of yacc.c */ +#line 1951 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D); } -#line 5909 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 269: -#line 1819 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 286: +/* Line 1792 of yacc.c */ +#line 1956 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D); } -#line 5919 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 270: -#line 1824 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 287: +/* Line 1792 of yacc.c */ +#line 1961 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D); } -#line 5929 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 271: -#line 1829 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 288: +/* Line 1792 of yacc.c */ +#line 1966 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube); } -#line 5939 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 272: -#line 1834 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 289: +/* Line 1792 of yacc.c */ +#line 1971 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true); } -#line 5949 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 273: -#line 1839 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 290: +/* Line 1792 of yacc.c */ +#line 1976 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true); } -#line 5959 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 274: -#line 1844 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 291: +/* Line 1792 of yacc.c */ +#line 1981 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true); } -#line 5969 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 275: -#line 1849 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 292: +/* Line 1792 of yacc.c */ +#line 1986 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D); } -#line 5979 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 276: -#line 1854 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 293: +/* Line 1792 of yacc.c */ +#line 1991 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D); } -#line 5989 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 277: -#line 1859 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 294: +/* Line 1792 of yacc.c */ +#line 1996 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D); } -#line 5999 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 278: -#line 1864 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 295: +/* Line 1792 of yacc.c */ +#line 2001 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube); } -#line 6009 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 279: -#line 1869 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 296: +/* Line 1792 of yacc.c */ +#line 2006 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true); } -#line 6019 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 280: -#line 1874 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 297: +/* Line 1792 of yacc.c */ +#line 2011 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true); } -#line 6029 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 281: -#line 1879 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 298: +/* Line 1792 of yacc.c */ +#line 2016 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true); } -#line 6039 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 282: -#line 1884 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 299: +/* Line 1792 of yacc.c */ +#line 2021 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D); } -#line 6049 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 283: -#line 1889 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 300: +/* Line 1792 of yacc.c */ +#line 2026 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D); } -#line 6059 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 284: -#line 1894 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 301: +/* Line 1792 of yacc.c */ +#line 2031 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D); } -#line 6069 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 285: -#line 1899 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 302: +/* Line 1792 of yacc.c */ +#line 2036 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube); } -#line 6079 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 286: -#line 1904 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 303: +/* Line 1792 of yacc.c */ +#line 2041 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true); } -#line 6089 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 287: -#line 1909 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 304: +/* Line 1792 of yacc.c */ +#line 2046 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true); } -#line 6099 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 288: -#line 1914 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 305: +/* Line 1792 of yacc.c */ +#line 2051 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true); } -#line 6109 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 289: -#line 1919 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 306: +/* Line 1792 of yacc.c */ +#line 2056 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect); } -#line 6119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 290: -#line 1924 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 307: +/* Line 1792 of yacc.c */ +#line 2061 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect); } -#line 6129 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 291: -#line 1929 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 308: +/* Line 1792 of yacc.c */ +#line 2066 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect); } -#line 6139 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 292: -#line 1934 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 309: +/* Line 1792 of yacc.c */ +#line 2071 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer); } -#line 6149 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 293: -#line 1939 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 310: +/* Line 1792 of yacc.c */ +#line 2076 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer); } -#line 6159 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 294: -#line 1944 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 311: +/* Line 1792 of yacc.c */ +#line 2081 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer); } -#line 6169 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 295: -#line 1949 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 312: +/* Line 1792 of yacc.c */ +#line 2086 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true); } -#line 6179 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 296: -#line 1954 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 313: +/* Line 1792 of yacc.c */ +#line 2091 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true); } -#line 6189 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 297: -#line 1959 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 314: +/* Line 1792 of yacc.c */ +#line 2096 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true); } -#line 6199 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 298: -#line 1964 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 315: +/* Line 1792 of yacc.c */ +#line 2101 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true); } -#line 6209 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 299: -#line 1969 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 316: +/* Line 1792 of yacc.c */ +#line 2106 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true); } -#line 6219 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 300: -#line 1974 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 317: +/* Line 1792 of yacc.c */ +#line 2111 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true); } -#line 6229 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 301: -#line 1979 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 318: +/* Line 1792 of yacc.c */ +#line 2116 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D); } -#line 6239 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 302: -#line 1984 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 319: +/* Line 1792 of yacc.c */ +#line 2121 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D); } -#line 6249 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 303: -#line 1989 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 320: +/* Line 1792 of yacc.c */ +#line 2126 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D); } -#line 6259 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 304: -#line 1994 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 321: +/* Line 1792 of yacc.c */ +#line 2131 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D); } -#line 6269 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 305: -#line 1999 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 322: +/* Line 1792 of yacc.c */ +#line 2136 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D); } -#line 6279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 306: -#line 2004 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 323: +/* Line 1792 of yacc.c */ +#line 2141 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D); } -#line 6289 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 307: -#line 2009 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 324: +/* Line 1792 of yacc.c */ +#line 2146 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D); } -#line 6299 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 308: -#line 2014 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 325: +/* Line 1792 of yacc.c */ +#line 2151 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd3D); } -#line 6309 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 309: -#line 2019 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 326: +/* Line 1792 of yacc.c */ +#line 2156 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd3D); } -#line 6319 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 310: -#line 2024 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 327: +/* Line 1792 of yacc.c */ +#line 2161 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect); } -#line 6329 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 311: -#line 2029 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 328: +/* Line 1792 of yacc.c */ +#line 2166 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdRect); } -#line 6339 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 312: -#line 2034 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 329: +/* Line 1792 of yacc.c */ +#line 2171 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdRect); } -#line 6349 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 313: -#line 2039 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 330: +/* Line 1792 of yacc.c */ +#line 2176 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube); } -#line 6359 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 314: -#line 2044 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 331: +/* Line 1792 of yacc.c */ +#line 2181 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube); } -#line 6369 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 315: -#line 2049 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 332: +/* Line 1792 of yacc.c */ +#line 2186 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube); } -#line 6379 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 316: -#line 2054 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 333: +/* Line 1792 of yacc.c */ +#line 2191 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer); } -#line 6389 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 317: -#line 2059 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 334: +/* Line 1792 of yacc.c */ +#line 2196 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer); } -#line 6399 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 318: -#line 2064 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 335: +/* Line 1792 of yacc.c */ +#line 2201 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer); } -#line 6409 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 319: -#line 2069 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 336: +/* Line 1792 of yacc.c */ +#line 2206 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true); } -#line 6419 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 320: -#line 2074 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 337: +/* Line 1792 of yacc.c */ +#line 2211 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true); } -#line 6429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 321: -#line 2079 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 338: +/* Line 1792 of yacc.c */ +#line 2216 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true); } -#line 6439 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 322: -#line 2084 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 339: +/* Line 1792 of yacc.c */ +#line 2221 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true); } -#line 6449 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 323: -#line 2089 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 340: +/* Line 1792 of yacc.c */ +#line 2226 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true); } -#line 6459 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 324: -#line 2094 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 341: +/* Line 1792 of yacc.c */ +#line 2231 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true); } -#line 6469 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 325: -#line 2099 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 342: +/* Line 1792 of yacc.c */ +#line 2236 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true); } -#line 6479 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 326: -#line 2104 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 343: +/* Line 1792 of yacc.c */ +#line 2241 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true); } -#line 6489 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 327: -#line 2109 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 344: +/* Line 1792 of yacc.c */ +#line 2246 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true); } -#line 6499 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 328: -#line 2114 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 345: +/* Line 1792 of yacc.c */ +#line 2251 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true); } -#line 6509 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 329: -#line 2119 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 346: +/* Line 1792 of yacc.c */ +#line 2256 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true); } -#line 6519 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 330: -#line 2124 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 347: +/* Line 1792 of yacc.c */ +#line 2261 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true); } -#line 6529 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 331: -#line 2129 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 348: +/* Line 1792 of yacc.c */ +#line 2266 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true); } -#line 6539 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 332: -#line 2134 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 349: +/* Line 1792 of yacc.c */ +#line 2271 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true); } -#line 6549 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 333: -#line 2139 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 350: +/* Line 1792 of yacc.c */ +#line 2276 "glslang.y" { - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true); } -#line 6559 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 334: -#line 2144 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 351: +/* Line 1792 of yacc.c */ +#line 2281 "glslang.y" { // GL_OES_EGL_image_external - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.set(EbtFloat, Esd2D); (yyval.interm.type).sampler.external = true; } -#line 6570 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 335: -#line 2150 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 352: +/* Line 1792 of yacc.c */ +#line 2287 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat); } -#line 6581 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 336: -#line 2156 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 353: +/* Line 1792 of yacc.c */ +#line 2293 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtFloat, true); } -#line 6592 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 337: -#line 2162 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 354: +/* Line 1792 of yacc.c */ +#line 2299 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt); } -#line 6603 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 338: -#line 2168 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 355: +/* Line 1792 of yacc.c */ +#line 2305 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtInt, true); } -#line 6614 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 339: -#line 2174 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 356: +/* Line 1792 of yacc.c */ +#line 2311 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint); } -#line 6625 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 340: -#line 2180 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 357: +/* Line 1792 of yacc.c */ +#line 2317 "glslang.y" { - parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.requireStage((yyvsp[(1) - (1)].lex).loc, EShLangFragment, "subpass input"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtSampler; (yyval.interm.type).sampler.setSubpass(EbtUint, true); } -#line 6636 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 341: -#line 2186 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 358: +/* Line 1792 of yacc.c */ +#line 2323 "glslang.y" { - (yyval.interm.type) = (yyvsp[0].interm.type); + (yyval.interm.type) = (yyvsp[(1) - (1)].interm.type); (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type)); } -#line 6646 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 342: -#line 2191 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 359: +/* Line 1792 of yacc.c */ +#line 2328 "glslang.y" { // // This is for user defined type names. The lexical phase looked up the // type. // - if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) { + if (const TVariable* variable = ((yyvsp[(1) - (1)].lex).symbol)->getAsVariable()) { const TType& structure = variable->getType(); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = &structure; } else - parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), ""); + parseContext.error((yyvsp[(1) - (1)].lex).loc, "expected type name", (yyvsp[(1) - (1)].lex).string->c_str(), ""); } -#line 6664 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 343: -#line 2207 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 360: +/* Line 1792 of yacc.c */ +#line 2344 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "highp precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqHigh); } -#line 6674 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 344: -#line 2212 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 361: +/* Line 1792 of yacc.c */ +#line 2349 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqMedium); } -#line 6684 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 345: -#line 2217 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 362: +/* Line 1792 of yacc.c */ +#line 2354 "glslang.y" { - parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); - (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel()); - parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow); + parseContext.profileRequires((yyvsp[(1) - (1)].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier"); + (yyval.interm.type).init((yyvsp[(1) - (1)].lex).loc, parseContext.symbolTable.atGlobalLevel()); + parseContext.handlePrecisionQualifier((yyvsp[(1) - (1)].lex).loc, (yyval.interm.type).qualifier, EpqLow); } -#line 6694 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 346: -#line 2225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); } -#line 6700 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 363: +/* Line 1792 of yacc.c */ +#line 2362 "glslang.y" + { parseContext.nestedStructCheck((yyvsp[(1) - (3)].lex).loc); } break; - case 347: -#line 2225 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 364: +/* Line 1792 of yacc.c */ +#line 2362 "glslang.y" { - TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string); - parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure); - TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true); + TType* structure = new TType((yyvsp[(5) - (6)].interm.typeList), *(yyvsp[(2) - (6)].lex).string); + parseContext.structArrayCheck((yyvsp[(2) - (6)].lex).loc, *structure); + TVariable* userTypeDef = new TVariable((yyvsp[(2) - (6)].lex).string, *structure, true); if (! parseContext.symbolTable.insert(*userTypeDef)) - parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct"); - (yyval.interm.type).init((yyvsp[-5].lex).loc); + parseContext.error((yyvsp[(2) - (6)].lex).loc, "redefinition", (yyvsp[(2) - (6)].lex).string->c_str(), "struct"); + (yyval.interm.type).init((yyvsp[(1) - (6)].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 6716 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 348: -#line 2236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); } -#line 6722 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 365: +/* Line 1792 of yacc.c */ +#line 2373 "glslang.y" + { parseContext.nestedStructCheck((yyvsp[(1) - (2)].lex).loc); } break; - case 349: -#line 2236 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 366: +/* Line 1792 of yacc.c */ +#line 2373 "glslang.y" { - TType* structure = new TType((yyvsp[-1].interm.typeList), TString("")); - (yyval.interm.type).init((yyvsp[-4].lex).loc); + TType* structure = new TType((yyvsp[(4) - (5)].interm.typeList), TString("")); + (yyval.interm.type).init((yyvsp[(1) - (5)].lex).loc); (yyval.interm.type).basicType = EbtStruct; (yyval.interm.type).userDef = structure; --parseContext.structNestingLevel; } -#line 6734 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 350: -#line 2246 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 367: +/* Line 1792 of yacc.c */ +#line 2383 "glslang.y" { - (yyval.interm.typeList) = (yyvsp[0].interm.typeList); + (yyval.interm.typeList) = (yyvsp[(1) - (1)].interm.typeList); } -#line 6742 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 351: -#line 2249 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 368: +/* Line 1792 of yacc.c */ +#line 2386 "glslang.y" { - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); - for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) { + (yyval.interm.typeList) = (yyvsp[(1) - (2)].interm.typeList); + for (unsigned int i = 0; i < (yyvsp[(2) - (2)].interm.typeList)->size(); ++i) { for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) { - if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName()) - parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str()); + if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName()) + parseContext.error((*(yyvsp[(2) - (2)].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[(2) - (2)].interm.typeList))[i].type->getFieldName().c_str()); } - (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]); + (yyval.interm.typeList)->push_back((*(yyvsp[(2) - (2)].interm.typeList))[i]); } } -#line 6757 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 352: -#line 2262 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 369: +/* Line 1792 of yacc.c */ +#line 2399 "glslang.y" { - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + if ((yyvsp[(1) - (3)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(1) - (3)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + parseContext.arraySizeRequiredCheck((yyvsp[(1) - (3)].interm.type).loc, *(yyvsp[(1) - (3)].interm.type).arraySizes); } - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); + (yyval.interm.typeList) = (yyvsp[(2) - (3)].interm.typeList); - parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); - parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); + parseContext.voidErrorCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyvsp[(2) - (3)].interm.typeList))[0].type->getFieldName(), (yyvsp[(1) - (3)].interm.type).basicType); + parseContext.precisionQualifierCheck((yyvsp[(1) - (3)].interm.type).loc, (yyvsp[(1) - (3)].interm.type).basicType, (yyvsp[(1) - (3)].interm.type).qualifier); for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[-2].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); + parseContext.arrayDimCheck((yyvsp[(1) - (3)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(1) - (3)].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(1) - (3)].interm.type)); } } -#line 6780 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 353: -#line 2280 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 370: +/* Line 1792 of yacc.c */ +#line 2417 "glslang.y" { - parseContext.globalQualifierFixCheck((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier); - if ((yyvsp[-2].interm.type).arraySizes) { - parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); - parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); + parseContext.globalQualifierFixCheck((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).qualifier); + if ((yyvsp[(2) - (4)].interm.type).arraySizes) { + parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type"); + parseContext.profileRequires((yyvsp[(2) - (4)].interm.type).loc, EEsProfile, 300, 0, "arrayed type"); if (parseContext.profile == EEsProfile) - parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes); + parseContext.arraySizeRequiredCheck((yyvsp[(2) - (4)].interm.type).loc, *(yyvsp[(2) - (4)].interm.type).arraySizes); } - (yyval.interm.typeList) = (yyvsp[-1].interm.typeList); + (yyval.interm.typeList) = (yyvsp[(3) - (4)].interm.typeList); - parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers); - parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType); - parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true); - parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier); + parseContext.checkNoShaderLayouts((yyvsp[(1) - (4)].interm.type).loc, (yyvsp[(1) - (4)].interm.type).shaderQualifiers); + parseContext.voidErrorCheck((yyvsp[(2) - (4)].interm.type).loc, (*(yyvsp[(3) - (4)].interm.typeList))[0].type->getFieldName(), (yyvsp[(2) - (4)].interm.type).basicType); + parseContext.mergeQualifiers((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).qualifier, (yyvsp[(1) - (4)].interm.type).qualifier, true); + parseContext.precisionQualifierCheck((yyvsp[(2) - (4)].interm.type).loc, (yyvsp[(2) - (4)].interm.type).basicType, (yyvsp[(2) - (4)].interm.type).qualifier); for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) { - parseContext.arrayDimCheck((yyvsp[-3].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[-2].interm.type).arraySizes); - (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[-2].interm.type)); + parseContext.arrayDimCheck((yyvsp[(1) - (4)].interm.type).loc, (*(yyval.interm.typeList))[i].type, (yyvsp[(2) - (4)].interm.type).arraySizes); + (*(yyval.interm.typeList))[i].type->mergeType((yyvsp[(2) - (4)].interm.type)); } } -#line 6806 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 354: -#line 2304 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 371: +/* Line 1792 of yacc.c */ +#line 2441 "glslang.y" { (yyval.interm.typeList) = new TTypeList; - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); + (yyval.interm.typeList)->push_back((yyvsp[(1) - (1)].interm.typeLine)); } -#line 6815 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 355: -#line 2308 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 372: +/* Line 1792 of yacc.c */ +#line 2445 "glslang.y" { - (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine)); + (yyval.interm.typeList)->push_back((yyvsp[(3) - (3)].interm.typeLine)); } -#line 6823 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 356: -#line 2314 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 373: +/* Line 1792 of yacc.c */ +#line 2451 "glslang.y" { (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string); + (yyval.interm.typeLine).loc = (yyvsp[(1) - (1)].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (1)].lex).string); } -#line 6833 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 357: -#line 2319 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 374: +/* Line 1792 of yacc.c */ +#line 2456 "glslang.y" { - parseContext.arrayDimCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes, 0); + parseContext.arrayDimCheck((yyvsp[(1) - (2)].lex).loc, (yyvsp[(2) - (2)].interm).arraySizes, 0); (yyval.interm.typeLine).type = new TType(EbtVoid); - (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc; - (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string); - (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[0].interm).arraySizes); + (yyval.interm.typeLine).loc = (yyvsp[(1) - (2)].lex).loc; + (yyval.interm.typeLine).type->setFieldName(*(yyvsp[(1) - (2)].lex).string); + (yyval.interm.typeLine).type->newArraySizes(*(yyvsp[(2) - (2)].interm).arraySizes); } -#line 6846 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 358: -#line 2330 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 375: +/* Line 1792 of yacc.c */ +#line 2467 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 6854 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 359: -#line 2333 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 376: +/* Line 1792 of yacc.c */ +#line 2470 "glslang.y" { const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode); + parseContext.requireProfile((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[(1) - (3)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (3)].interm.intermTypedNode); } -#line 6865 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 360: -#line 2339 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 377: +/* Line 1792 of yacc.c */ +#line 2476 "glslang.y" { const char* initFeature = "{ } style initializers"; - parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature); - parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); - (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode); + parseContext.requireProfile((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, initFeature); + parseContext.profileRequires((yyvsp[(1) - (4)].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature); + (yyval.interm.intermTypedNode) = (yyvsp[(2) - (4)].interm.intermTypedNode); } -#line 6876 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 361: -#line 2348 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 378: +/* Line 1792 of yacc.c */ +#line 2485 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc()); + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[(1) - (1)].interm.intermTypedNode), (yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc()); } -#line 6884 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 362: -#line 2351 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 379: +/* Line 1792 of yacc.c */ +#line 2488 "glslang.y" { - (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm.intermTypedNode), (yyvsp[(3) - (3)].interm.intermTypedNode)); } -#line 6892 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 363: -#line 2357 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6898 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 380: +/* Line 1792 of yacc.c */ +#line 2494 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 364: -#line 2361 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6904 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 381: +/* Line 1792 of yacc.c */ +#line 2498 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 365: -#line 2362 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6910 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 382: +/* Line 1792 of yacc.c */ +#line 2499 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 366: -#line 2368 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6916 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 383: +/* Line 1792 of yacc.c */ +#line 2505 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 367: -#line 2369 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6922 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 384: +/* Line 1792 of yacc.c */ +#line 2506 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 368: -#line 2370 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6928 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 385: +/* Line 1792 of yacc.c */ +#line 2507 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 369: -#line 2371 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6934 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 386: +/* Line 1792 of yacc.c */ +#line 2508 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 370: -#line 2372 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6940 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 387: +/* Line 1792 of yacc.c */ +#line 2509 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 371: -#line 2373 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6946 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 388: +/* Line 1792 of yacc.c */ +#line 2510 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 372: -#line 2374 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6952 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 389: +/* Line 1792 of yacc.c */ +#line 2511 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 373: -#line 2378 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 390: +/* Line 1792 of yacc.c */ +#line 2515 "glslang.y" { (yyval.interm.intermNode) = 0; } -#line 6958 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 374: -#line 2379 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 391: +/* Line 1792 of yacc.c */ +#line 2516 "glslang.y" { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; } -#line 6967 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 375: -#line 2383 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 392: +/* Line 1792 of yacc.c */ +#line 2520 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; } -#line 6976 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 376: -#line 2387 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 393: +/* Line 1792 of yacc.c */ +#line 2524 "glslang.y" { - if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate()) - (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode); + if ((yyvsp[(3) - (5)].interm.intermNode) && (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()) + (yyvsp[(3) - (5)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(3) - (5)].interm.intermNode); } -#line 6986 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 377: -#line 2395 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6992 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 394: +/* Line 1792 of yacc.c */ +#line 2532 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 378: -#line 2396 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); } -#line 6998 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 395: +/* Line 1792 of yacc.c */ +#line 2533 "glslang.y" + { (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } break; - case 379: -#line 2400 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 396: +/* Line 1792 of yacc.c */ +#line 2537 "glslang.y" { ++parseContext.controlFlowNestingLevel; } -#line 7006 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 380: -#line 2403 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 397: +/* Line 1792 of yacc.c */ +#line 2540 "glslang.y" { --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } -#line 7015 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 381: -#line 2407 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 398: +/* Line 1792 of yacc.c */ +#line 2544 "glslang.y" { parseContext.symbolTable.push(); ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7025 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 382: -#line 2412 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 399: +/* Line 1792 of yacc.c */ +#line 2549 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(2) - (2)].interm.intermNode); } -#line 7036 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 383: -#line 2421 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 400: +/* Line 1792 of yacc.c */ +#line 2558 "glslang.y" { (yyval.interm.intermNode) = 0; } -#line 7044 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 384: -#line 2424 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 401: +/* Line 1792 of yacc.c */ +#line 2561 "glslang.y" { - if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate()) - (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); - (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode); + if ((yyvsp[(2) - (3)].interm.intermNode) && (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()) + (yyvsp[(2) - (3)].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); + (yyval.interm.intermNode) = (yyvsp[(2) - (3)].interm.intermNode); } -#line 7054 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 385: -#line 2432 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 402: +/* Line 1792 of yacc.c */ +#line 2569 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode)); - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(1) - (1)].interm.intermNode)); + if ((yyvsp[(1) - (1)].interm.intermNode) && (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[(1) - (1)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence(0, (yyvsp[(1) - (1)].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } } -#line 7067 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 386: -#line 2440 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 403: +/* Line 1792 of yacc.c */ +#line 2577 "glslang.y" { - if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || - (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { - parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode)); + if ((yyvsp[(2) - (2)].interm.intermNode) && (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode() && ((yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase || + (yyvsp[(2) - (2)].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) { + parseContext.wrapupSwitchSubsequence((yyvsp[(1) - (2)].interm.intermNode) ? (yyvsp[(1) - (2)].interm.intermNode)->getAsAggregate() : 0, (yyvsp[(2) - (2)].interm.intermNode)); (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case } else - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); } -#line 7080 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 387: -#line 2451 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 404: +/* Line 1792 of yacc.c */ +#line 2588 "glslang.y" { (yyval.interm.intermNode) = 0; } -#line 7086 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 388: -#line 2452 "MachineIndependent/glslang.y" /* yacc.c:1646 */ - { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); } -#line 7092 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ + case 405: +/* Line 1792 of yacc.c */ +#line 2589 "glslang.y" + { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[(1) - (2)].interm.intermTypedNode)); } break; - case 389: -#line 2456 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 406: +/* Line 1792 of yacc.c */ +#line 2593 "glslang.y" { - parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc); + parseContext.boolCheck((yyvsp[(1) - (5)].lex).loc, (yyvsp[(3) - (5)].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[(3) - (5)].interm.intermTypedNode), (yyvsp[(5) - (5)].interm.nodePair), (yyvsp[(1) - (5)].lex).loc); } -#line 7101 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 390: -#line 2463 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 407: +/* Line 1792 of yacc.c */ +#line 2600 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermNode); + (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermNode); } -#line 7110 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 391: -#line 2467 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 408: +/* Line 1792 of yacc.c */ +#line 2604 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (1)].interm.intermNode); (yyval.interm.nodePair).node2 = 0; } -#line 7119 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 392: -#line 2475 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 409: +/* Line 1792 of yacc.c */ +#line 2612 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); - parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode)); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); + parseContext.boolCheck((yyvsp[(1) - (1)].interm.intermTypedNode)->getLoc(), (yyvsp[(1) - (1)].interm.intermTypedNode)); } -#line 7128 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 393: -#line 2479 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 410: +/* Line 1792 of yacc.c */ +#line 2616 "glslang.y" { - parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type)); + parseContext.boolCheck((yyvsp[(2) - (4)].lex).loc, (yyvsp[(1) - (4)].interm.type)); - TType type((yyvsp[-3].interm.type)); - TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode)); + TType type((yyvsp[(1) - (4)].interm.type)); + TIntermNode* initNode = parseContext.declareVariable((yyvsp[(2) - (4)].lex).loc, *(yyvsp[(2) - (4)].lex).string, (yyvsp[(1) - (4)].interm.type), 0, (yyvsp[(4) - (4)].interm.intermTypedNode)); if (initNode) (yyval.interm.intermTypedNode) = initNode->getAsTyped(); else (yyval.interm.intermTypedNode) = 0; } -#line 7143 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 394: -#line 2492 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 411: +/* Line 1792 of yacc.c */ +#line 2629 "glslang.y" { // start new switch sequence on the switch stack ++parseContext.controlFlowNestingLevel; @@ -7152,13 +7778,13 @@ yyreduce: parseContext.switchLevel.push_back(parseContext.statementNestingLevel); parseContext.symbolTable.push(); } -#line 7156 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 395: -#line 2500 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 412: +/* Line 1792 of yacc.c */ +#line 2637 "glslang.y" { - (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0); + (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[(1) - (8)].lex).loc, (yyvsp[(3) - (8)].interm.intermTypedNode), (yyvsp[(7) - (8)].interm.intermNode) ? (yyvsp[(7) - (8)].interm.intermNode)->getAsAggregate() : 0); delete parseContext.switchSequenceStack.back(); parseContext.switchSequenceStack.pop_back(); parseContext.switchLevel.pop_back(); @@ -7166,287 +7792,287 @@ yyreduce: --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7170 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 396: -#line 2512 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 413: +/* Line 1792 of yacc.c */ +#line 2649 "glslang.y" { (yyval.interm.intermNode) = 0; } -#line 7178 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 397: -#line 2515 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 414: +/* Line 1792 of yacc.c */ +#line 2652 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7186 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 398: -#line 2521 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 415: +/* Line 1792 of yacc.c */ +#line 2658 "glslang.y" { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", ""); + parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot appear outside switch statement", "case", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", ""); + parseContext.error((yyvsp[(1) - (3)].lex).loc, "cannot be nested inside control flow", "case", ""); else { - parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case"); - parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc); + parseContext.constantValueCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); + parseContext.integerCheck((yyvsp[(2) - (3)].interm.intermTypedNode), "case"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[(2) - (3)].interm.intermTypedNode), (yyvsp[(1) - (3)].lex).loc); } } -#line 7203 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 399: -#line 2533 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 416: +/* Line 1792 of yacc.c */ +#line 2670 "glslang.y" { (yyval.interm.intermNode) = 0; if (parseContext.switchLevel.size() == 0) - parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", ""); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot appear outside switch statement", "default", ""); else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel) - parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", ""); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "cannot be nested inside control flow", "default", ""); else - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[(1) - (2)].lex).loc); } -#line 7217 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 400: -#line 2545 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 417: +/* Line 1792 of yacc.c */ +#line 2682 "glslang.y" { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", ""); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "while loops not available", "limitation", ""); parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7230 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 401: -#line 2553 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 418: +/* Line 1792 of yacc.c */ +#line 2690 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(6) - (6)].interm.intermNode), (yyvsp[(4) - (6)].interm.intermTypedNode), 0, true, (yyvsp[(1) - (6)].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7242 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 402: -#line 2560 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 419: +/* Line 1792 of yacc.c */ +#line 2697 "glslang.y" { ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7252 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 403: -#line 2565 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 420: +/* Line 1792 of yacc.c */ +#line 2702 "glslang.y" { if (! parseContext.limits.whileLoops) - parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", ""); + parseContext.error((yyvsp[(1) - (8)].lex).loc, "do-while loops not available", "limitation", ""); - parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode)); + parseContext.boolCheck((yyvsp[(8) - (8)].lex).loc, (yyvsp[(6) - (8)].interm.intermTypedNode)); - (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[(3) - (8)].interm.intermNode), (yyvsp[(6) - (8)].interm.intermTypedNode), 0, false, (yyvsp[(4) - (8)].lex).loc); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7268 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 404: -#line 2576 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 421: +/* Line 1792 of yacc.c */ +#line 2713 "glslang.y" { parseContext.symbolTable.push(); ++parseContext.loopNestingLevel; ++parseContext.statementNestingLevel; ++parseContext.controlFlowNestingLevel; } -#line 7279 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 405: -#line 2582 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 422: +/* Line 1792 of yacc.c */ +#line 2719 "glslang.y" { parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc); - TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[(4) - (7)].interm.intermNode), (yyvsp[(2) - (7)].lex).loc); + TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[(7) - (7)].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[(5) - (7)].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[(5) - (7)].interm.nodePair).node2), true, (yyvsp[(1) - (7)].lex).loc); if (! parseContext.limits.nonInductiveForLoops) - parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc); + parseContext.inductiveLoopCheck((yyvsp[(1) - (7)].lex).loc, (yyvsp[(4) - (7)].interm.intermNode), forLoop); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[(1) - (7)].lex).loc); (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence); --parseContext.loopNestingLevel; --parseContext.statementNestingLevel; --parseContext.controlFlowNestingLevel; } -#line 7296 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 406: -#line 2597 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 423: +/* Line 1792 of yacc.c */ +#line 2734 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7304 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 407: -#line 2600 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 424: +/* Line 1792 of yacc.c */ +#line 2737 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7312 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 408: -#line 2606 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 425: +/* Line 1792 of yacc.c */ +#line 2743 "glslang.y" { - (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.intermTypedNode) = (yyvsp[(1) - (1)].interm.intermTypedNode); } -#line 7320 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 409: -#line 2609 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 426: +/* Line 1792 of yacc.c */ +#line 2746 "glslang.y" { (yyval.interm.intermTypedNode) = 0; } -#line 7328 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 410: -#line 2615 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 427: +/* Line 1792 of yacc.c */ +#line 2752 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (2)].interm.intermTypedNode); (yyval.interm.nodePair).node2 = 0; } -#line 7337 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 411: -#line 2619 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 428: +/* Line 1792 of yacc.c */ +#line 2756 "glslang.y" { - (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode); - (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode); + (yyval.interm.nodePair).node1 = (yyvsp[(1) - (3)].interm.intermTypedNode); + (yyval.interm.nodePair).node2 = (yyvsp[(3) - (3)].interm.intermTypedNode); } -#line 7346 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 412: -#line 2626 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 429: +/* Line 1792 of yacc.c */ +#line 2763 "glslang.y" { if (parseContext.loopNestingLevel <= 0) - parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "continue statement only allowed in loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[(1) - (2)].lex).loc); } -#line 7356 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 413: -#line 2631 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 430: +/* Line 1792 of yacc.c */ +#line 2768 "glslang.y" { if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0) - parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", ""); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "break statement only allowed in switch and loops", "", ""); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[(1) - (2)].lex).loc); } -#line 7366 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 414: -#line 2636 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 431: +/* Line 1792 of yacc.c */ +#line 2773 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[(1) - (2)].lex).loc); if (parseContext.currentFunctionType->getBasicType() != EbtVoid) - parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", ""); + parseContext.error((yyvsp[(1) - (2)].lex).loc, "non-void function must return a value", "return", ""); if (parseContext.inMain) parseContext.postMainReturn = true; } -#line 7378 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 415: -#line 2643 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 432: +/* Line 1792 of yacc.c */ +#line 2780 "glslang.y" { - (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode)); + (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[(1) - (3)].lex).loc, (yyvsp[(2) - (3)].interm.intermTypedNode)); } -#line 7386 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 416: -#line 2646 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 433: +/* Line 1792 of yacc.c */ +#line 2783 "glslang.y" { - parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard"); - (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc); + parseContext.requireStage((yyvsp[(1) - (2)].lex).loc, EShLangFragment, "discard"); + (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[(1) - (2)].lex).loc); } -#line 7395 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 417: -#line 2655 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 434: +/* Line 1792 of yacc.c */ +#line 2792 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7404 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 418: -#line 2659 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 435: +/* Line 1792 of yacc.c */ +#line 2796 "glslang.y" { - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode)); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (2)].interm.intermNode), (yyvsp[(2) - (2)].interm.intermNode)); parseContext.intermediate.setTreeRoot((yyval.interm.intermNode)); } -#line 7413 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 419: -#line 2666 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 436: +/* Line 1792 of yacc.c */ +#line 2803 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7421 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 420: -#line 2669 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 437: +/* Line 1792 of yacc.c */ +#line 2806 "glslang.y" { - (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); + (yyval.interm.intermNode) = (yyvsp[(1) - (1)].interm.intermNode); } -#line 7429 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 421: -#line 2675 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 438: +/* Line 1792 of yacc.c */ +#line 2812 "glslang.y" { - (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */); - (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function); + (yyvsp[(1) - (1)].interm).function = parseContext.handleFunctionDeclarator((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function, false /* not prototype */); + (yyvsp[(1) - (1)].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[(1) - (1)].interm).loc, *(yyvsp[(1) - (1)].interm).function); } -#line 7438 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; - case 422: -#line 2679 "MachineIndependent/glslang.y" /* yacc.c:1646 */ + case 439: +/* Line 1792 of yacc.c */ +#line 2816 "glslang.y" { // May be best done as post process phase on intermediate code if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue) - parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str()); + parseContext.error((yyvsp[(1) - (3)].interm).loc, "function does not return a value:", "", (yyvsp[(1) - (3)].interm).function->getName().c_str()); parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]); - (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode)); - parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc); - (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str()); + (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[(1) - (3)].interm).intermNode, (yyvsp[(3) - (3)].interm.intermNode)); + parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[(1) - (3)].interm).function->getType(), (yyvsp[(1) - (3)].interm).loc); + (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[(1) - (3)].interm).function->getMangledName().c_str()); // store the pragma information for debug and optimize and other vendor specific // information. This information can be queried from the parse tree @@ -7454,11 +8080,11 @@ yyreduce: (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug); (yyval.interm.intermNode)->getAsAggregate()->addToPragmaTable(parseContext.contextPragma.pragmaTable); } -#line 7458 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ break; -#line 7462 "MachineIndependent/glslang_tab.cpp" /* yacc.c:1646 */ +/* Line 1792 of yacc.c */ +#line 8088 "glslang_tab.cpp" default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -7480,7 +8106,7 @@ yyreduce: *++yyvsp = yyval; - /* Now 'shift' the result of the reduction. Determine what state + /* Now `shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ @@ -7495,9 +8121,9 @@ yyreduce: goto yynewstate; -/*--------------------------------------. -| yyerrlab -- here on detecting error. | -`--------------------------------------*/ +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ @@ -7548,20 +8174,20 @@ yyerrlab: if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an - error, discard it. */ + error, discard it. */ if (yychar <= YYEOF) - { - /* Return failure if at end of input. */ - if (yychar == YYEOF) - YYABORT; - } + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } else - { - yydestruct ("Error: discarding", - yytoken, &yylval, pParseContext); - yychar = YYEMPTY; - } + { + yydestruct ("Error: discarding", + yytoken, &yylval, pParseContext); + yychar = YYEMPTY; + } } /* Else will try to reuse lookahead token after shifting the error @@ -7580,7 +8206,7 @@ yyerrorlab: if (/*CONSTCOND*/ 0) goto yyerrorlab; - /* Do not reclaim the symbols of the rule whose action triggered + /* Do not reclaim the symbols of the rule which action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; @@ -7593,29 +8219,29 @@ yyerrorlab: | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: - yyerrstatus = 3; /* Each real token shifted decrements this. */ + yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) - { - yyn += YYTERROR; - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) - { - yyn = yytable[yyn]; - if (0 < yyn) - break; - } - } + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) - YYABORT; + YYABORT; yydestruct ("Error: popping", - yystos[yystate], yyvsp, pParseContext); + yystos[yystate], yyvsp, pParseContext); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); @@ -7666,14 +8292,14 @@ yyreturn: yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, pParseContext); } - /* Do not reclaim the symbols of the rule whose action triggered + /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp, pParseContext); + yystos[*yyssp], yyvsp, pParseContext); YYPOPSTACK (1); } #ifndef yyoverflow @@ -7684,7 +8310,11 @@ yyreturn: if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif - return yyresult; + /* Make sure YYID is used. */ + return YYID (yyresult); } -#line 2696 "MachineIndependent/glslang.y" /* yacc.c:1906 */ + + +/* Line 2055 of yacc.c */ +#line 2833 "glslang.y" diff --git a/glslang/MachineIndependent/glslang_tab.cpp.h b/glslang/MachineIndependent/glslang_tab.cpp.h index 2d8276af56835235446ef16f30c270003069e785..b6d27993c96c8c68c0e5164a84119b84d54cda9e 100644 --- a/glslang/MachineIndependent/glslang_tab.cpp.h +++ b/glslang/MachineIndependent/glslang_tab.cpp.h @@ -1,19 +1,19 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 2.7. */ /* Bison interface for Yacc-like parsers in C - - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - + + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -26,13 +26,13 @@ special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. - + This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -# define YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED -/* Debug traces. */ +#ifndef YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +# define YY_YY_GLSLANG_TAB_CPP_H_INCLUDED +/* Enabling traces. */ #ifndef YYDEBUG # define YYDEBUG 1 #endif @@ -40,288 +40,306 @@ extern int yydebug; #endif -/* Token type. */ +/* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE - enum yytokentype - { - ATTRIBUTE = 258, - VARYING = 259, - CONST = 260, - BOOL = 261, - FLOAT = 262, - DOUBLE = 263, - INT = 264, - UINT = 265, - INT64_T = 266, - UINT64_T = 267, - BREAK = 268, - CONTINUE = 269, - DO = 270, - ELSE = 271, - FOR = 272, - IF = 273, - DISCARD = 274, - RETURN = 275, - SWITCH = 276, - CASE = 277, - DEFAULT = 278, - SUBROUTINE = 279, - BVEC2 = 280, - BVEC3 = 281, - BVEC4 = 282, - IVEC2 = 283, - IVEC3 = 284, - IVEC4 = 285, - I64VEC2 = 286, - I64VEC3 = 287, - I64VEC4 = 288, - UVEC2 = 289, - UVEC3 = 290, - UVEC4 = 291, - U64VEC2 = 292, - U64VEC3 = 293, - U64VEC4 = 294, - VEC2 = 295, - VEC3 = 296, - VEC4 = 297, - MAT2 = 298, - MAT3 = 299, - MAT4 = 300, - CENTROID = 301, - IN = 302, - OUT = 303, - INOUT = 304, - UNIFORM = 305, - PATCH = 306, - SAMPLE = 307, - BUFFER = 308, - SHARED = 309, - COHERENT = 310, - VOLATILE = 311, - RESTRICT = 312, - READONLY = 313, - WRITEONLY = 314, - DVEC2 = 315, - DVEC3 = 316, - DVEC4 = 317, - DMAT2 = 318, - DMAT3 = 319, - DMAT4 = 320, - NOPERSPECTIVE = 321, - FLAT = 322, - SMOOTH = 323, - LAYOUT = 324, - __EXPLICITINTERPAMD = 325, - MAT2X2 = 326, - MAT2X3 = 327, - MAT2X4 = 328, - MAT3X2 = 329, - MAT3X3 = 330, - MAT3X4 = 331, - MAT4X2 = 332, - MAT4X3 = 333, - MAT4X4 = 334, - DMAT2X2 = 335, - DMAT2X3 = 336, - DMAT2X4 = 337, - DMAT3X2 = 338, - DMAT3X3 = 339, - DMAT3X4 = 340, - DMAT4X2 = 341, - DMAT4X3 = 342, - DMAT4X4 = 343, - ATOMIC_UINT = 344, - SAMPLER1D = 345, - SAMPLER2D = 346, - SAMPLER3D = 347, - SAMPLERCUBE = 348, - SAMPLER1DSHADOW = 349, - SAMPLER2DSHADOW = 350, - SAMPLERCUBESHADOW = 351, - SAMPLER1DARRAY = 352, - SAMPLER2DARRAY = 353, - SAMPLER1DARRAYSHADOW = 354, - SAMPLER2DARRAYSHADOW = 355, - ISAMPLER1D = 356, - ISAMPLER2D = 357, - ISAMPLER3D = 358, - ISAMPLERCUBE = 359, - ISAMPLER1DARRAY = 360, - ISAMPLER2DARRAY = 361, - USAMPLER1D = 362, - USAMPLER2D = 363, - USAMPLER3D = 364, - USAMPLERCUBE = 365, - USAMPLER1DARRAY = 366, - USAMPLER2DARRAY = 367, - SAMPLER2DRECT = 368, - SAMPLER2DRECTSHADOW = 369, - ISAMPLER2DRECT = 370, - USAMPLER2DRECT = 371, - SAMPLERBUFFER = 372, - ISAMPLERBUFFER = 373, - USAMPLERBUFFER = 374, - SAMPLERCUBEARRAY = 375, - SAMPLERCUBEARRAYSHADOW = 376, - ISAMPLERCUBEARRAY = 377, - USAMPLERCUBEARRAY = 378, - SAMPLER2DMS = 379, - ISAMPLER2DMS = 380, - USAMPLER2DMS = 381, - SAMPLER2DMSARRAY = 382, - ISAMPLER2DMSARRAY = 383, - USAMPLER2DMSARRAY = 384, - SAMPLEREXTERNALOES = 385, - SAMPLER = 386, - SAMPLERSHADOW = 387, - TEXTURE1D = 388, - TEXTURE2D = 389, - TEXTURE3D = 390, - TEXTURECUBE = 391, - TEXTURE1DARRAY = 392, - TEXTURE2DARRAY = 393, - ITEXTURE1D = 394, - ITEXTURE2D = 395, - ITEXTURE3D = 396, - ITEXTURECUBE = 397, - ITEXTURE1DARRAY = 398, - ITEXTURE2DARRAY = 399, - UTEXTURE1D = 400, - UTEXTURE2D = 401, - UTEXTURE3D = 402, - UTEXTURECUBE = 403, - UTEXTURE1DARRAY = 404, - UTEXTURE2DARRAY = 405, - TEXTURE2DRECT = 406, - ITEXTURE2DRECT = 407, - UTEXTURE2DRECT = 408, - TEXTUREBUFFER = 409, - ITEXTUREBUFFER = 410, - UTEXTUREBUFFER = 411, - TEXTURECUBEARRAY = 412, - ITEXTURECUBEARRAY = 413, - UTEXTURECUBEARRAY = 414, - TEXTURE2DMS = 415, - ITEXTURE2DMS = 416, - UTEXTURE2DMS = 417, - TEXTURE2DMSARRAY = 418, - ITEXTURE2DMSARRAY = 419, - UTEXTURE2DMSARRAY = 420, - SUBPASSINPUT = 421, - SUBPASSINPUTMS = 422, - ISUBPASSINPUT = 423, - ISUBPASSINPUTMS = 424, - USUBPASSINPUT = 425, - USUBPASSINPUTMS = 426, - IMAGE1D = 427, - IIMAGE1D = 428, - UIMAGE1D = 429, - IMAGE2D = 430, - IIMAGE2D = 431, - UIMAGE2D = 432, - IMAGE3D = 433, - IIMAGE3D = 434, - UIMAGE3D = 435, - IMAGE2DRECT = 436, - IIMAGE2DRECT = 437, - UIMAGE2DRECT = 438, - IMAGECUBE = 439, - IIMAGECUBE = 440, - UIMAGECUBE = 441, - IMAGEBUFFER = 442, - IIMAGEBUFFER = 443, - UIMAGEBUFFER = 444, - IMAGE1DARRAY = 445, - IIMAGE1DARRAY = 446, - UIMAGE1DARRAY = 447, - IMAGE2DARRAY = 448, - IIMAGE2DARRAY = 449, - UIMAGE2DARRAY = 450, - IMAGECUBEARRAY = 451, - IIMAGECUBEARRAY = 452, - UIMAGECUBEARRAY = 453, - IMAGE2DMS = 454, - IIMAGE2DMS = 455, - UIMAGE2DMS = 456, - IMAGE2DMSARRAY = 457, - IIMAGE2DMSARRAY = 458, - UIMAGE2DMSARRAY = 459, - STRUCT = 460, - VOID = 461, - WHILE = 462, - IDENTIFIER = 463, - TYPE_NAME = 464, - FLOATCONSTANT = 465, - DOUBLECONSTANT = 466, - INTCONSTANT = 467, - UINTCONSTANT = 468, - INT64CONSTANT = 469, - UINT64CONSTANT = 470, - BOOLCONSTANT = 471, - LEFT_OP = 472, - RIGHT_OP = 473, - INC_OP = 474, - DEC_OP = 475, - LE_OP = 476, - GE_OP = 477, - EQ_OP = 478, - NE_OP = 479, - AND_OP = 480, - OR_OP = 481, - XOR_OP = 482, - MUL_ASSIGN = 483, - DIV_ASSIGN = 484, - ADD_ASSIGN = 485, - MOD_ASSIGN = 486, - LEFT_ASSIGN = 487, - RIGHT_ASSIGN = 488, - AND_ASSIGN = 489, - XOR_ASSIGN = 490, - OR_ASSIGN = 491, - SUB_ASSIGN = 492, - LEFT_PAREN = 493, - RIGHT_PAREN = 494, - LEFT_BRACKET = 495, - RIGHT_BRACKET = 496, - LEFT_BRACE = 497, - RIGHT_BRACE = 498, - DOT = 499, - COMMA = 500, - COLON = 501, - EQUAL = 502, - SEMICOLON = 503, - BANG = 504, - DASH = 505, - TILDE = 506, - PLUS = 507, - STAR = 508, - SLASH = 509, - PERCENT = 510, - LEFT_ANGLE = 511, - RIGHT_ANGLE = 512, - VERTICAL_BAR = 513, - CARET = 514, - AMPERSAND = 515, - QUESTION = 516, - INVARIANT = 517, - PRECISE = 518, - HIGH_PRECISION = 519, - MEDIUM_PRECISION = 520, - LOW_PRECISION = 521, - PRECISION = 522, - PACKED = 523, - RESOURCE = 524, - SUPERP = 525 - }; + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + ATTRIBUTE = 258, + VARYING = 259, + CONST = 260, + BOOL = 261, + FLOAT = 262, + DOUBLE = 263, + INT = 264, + UINT = 265, + INT64_T = 266, + UINT64_T = 267, + FLOAT16_T = 268, + BREAK = 269, + CONTINUE = 270, + DO = 271, + ELSE = 272, + FOR = 273, + IF = 274, + DISCARD = 275, + RETURN = 276, + SWITCH = 277, + CASE = 278, + DEFAULT = 279, + SUBROUTINE = 280, + BVEC2 = 281, + BVEC3 = 282, + BVEC4 = 283, + IVEC2 = 284, + IVEC3 = 285, + IVEC4 = 286, + I64VEC2 = 287, + I64VEC3 = 288, + I64VEC4 = 289, + UVEC2 = 290, + UVEC3 = 291, + UVEC4 = 292, + U64VEC2 = 293, + U64VEC3 = 294, + U64VEC4 = 295, + VEC2 = 296, + VEC3 = 297, + VEC4 = 298, + MAT2 = 299, + MAT3 = 300, + MAT4 = 301, + CENTROID = 302, + IN = 303, + OUT = 304, + INOUT = 305, + UNIFORM = 306, + PATCH = 307, + SAMPLE = 308, + BUFFER = 309, + SHARED = 310, + COHERENT = 311, + VOLATILE = 312, + RESTRICT = 313, + READONLY = 314, + WRITEONLY = 315, + DVEC2 = 316, + DVEC3 = 317, + DVEC4 = 318, + DMAT2 = 319, + DMAT3 = 320, + DMAT4 = 321, + F16VEC2 = 322, + F16VEC3 = 323, + F16VEC4 = 324, + F16MAT2 = 325, + F16MAT3 = 326, + F16MAT4 = 327, + NOPERSPECTIVE = 328, + FLAT = 329, + SMOOTH = 330, + LAYOUT = 331, + __EXPLICITINTERPAMD = 332, + MAT2X2 = 333, + MAT2X3 = 334, + MAT2X4 = 335, + MAT3X2 = 336, + MAT3X3 = 337, + MAT3X4 = 338, + MAT4X2 = 339, + MAT4X3 = 340, + MAT4X4 = 341, + DMAT2X2 = 342, + DMAT2X3 = 343, + DMAT2X4 = 344, + DMAT3X2 = 345, + DMAT3X3 = 346, + DMAT3X4 = 347, + DMAT4X2 = 348, + DMAT4X3 = 349, + DMAT4X4 = 350, + F16MAT2X2 = 351, + F16MAT2X3 = 352, + F16MAT2X4 = 353, + F16MAT3X2 = 354, + F16MAT3X3 = 355, + F16MAT3X4 = 356, + F16MAT4X2 = 357, + F16MAT4X3 = 358, + F16MAT4X4 = 359, + ATOMIC_UINT = 360, + SAMPLER1D = 361, + SAMPLER2D = 362, + SAMPLER3D = 363, + SAMPLERCUBE = 364, + SAMPLER1DSHADOW = 365, + SAMPLER2DSHADOW = 366, + SAMPLERCUBESHADOW = 367, + SAMPLER1DARRAY = 368, + SAMPLER2DARRAY = 369, + SAMPLER1DARRAYSHADOW = 370, + SAMPLER2DARRAYSHADOW = 371, + ISAMPLER1D = 372, + ISAMPLER2D = 373, + ISAMPLER3D = 374, + ISAMPLERCUBE = 375, + ISAMPLER1DARRAY = 376, + ISAMPLER2DARRAY = 377, + USAMPLER1D = 378, + USAMPLER2D = 379, + USAMPLER3D = 380, + USAMPLERCUBE = 381, + USAMPLER1DARRAY = 382, + USAMPLER2DARRAY = 383, + SAMPLER2DRECT = 384, + SAMPLER2DRECTSHADOW = 385, + ISAMPLER2DRECT = 386, + USAMPLER2DRECT = 387, + SAMPLERBUFFER = 388, + ISAMPLERBUFFER = 389, + USAMPLERBUFFER = 390, + SAMPLERCUBEARRAY = 391, + SAMPLERCUBEARRAYSHADOW = 392, + ISAMPLERCUBEARRAY = 393, + USAMPLERCUBEARRAY = 394, + SAMPLER2DMS = 395, + ISAMPLER2DMS = 396, + USAMPLER2DMS = 397, + SAMPLER2DMSARRAY = 398, + ISAMPLER2DMSARRAY = 399, + USAMPLER2DMSARRAY = 400, + SAMPLEREXTERNALOES = 401, + SAMPLER = 402, + SAMPLERSHADOW = 403, + TEXTURE1D = 404, + TEXTURE2D = 405, + TEXTURE3D = 406, + TEXTURECUBE = 407, + TEXTURE1DARRAY = 408, + TEXTURE2DARRAY = 409, + ITEXTURE1D = 410, + ITEXTURE2D = 411, + ITEXTURE3D = 412, + ITEXTURECUBE = 413, + ITEXTURE1DARRAY = 414, + ITEXTURE2DARRAY = 415, + UTEXTURE1D = 416, + UTEXTURE2D = 417, + UTEXTURE3D = 418, + UTEXTURECUBE = 419, + UTEXTURE1DARRAY = 420, + UTEXTURE2DARRAY = 421, + TEXTURE2DRECT = 422, + ITEXTURE2DRECT = 423, + UTEXTURE2DRECT = 424, + TEXTUREBUFFER = 425, + ITEXTUREBUFFER = 426, + UTEXTUREBUFFER = 427, + TEXTURECUBEARRAY = 428, + ITEXTURECUBEARRAY = 429, + UTEXTURECUBEARRAY = 430, + TEXTURE2DMS = 431, + ITEXTURE2DMS = 432, + UTEXTURE2DMS = 433, + TEXTURE2DMSARRAY = 434, + ITEXTURE2DMSARRAY = 435, + UTEXTURE2DMSARRAY = 436, + SUBPASSINPUT = 437, + SUBPASSINPUTMS = 438, + ISUBPASSINPUT = 439, + ISUBPASSINPUTMS = 440, + USUBPASSINPUT = 441, + USUBPASSINPUTMS = 442, + IMAGE1D = 443, + IIMAGE1D = 444, + UIMAGE1D = 445, + IMAGE2D = 446, + IIMAGE2D = 447, + UIMAGE2D = 448, + IMAGE3D = 449, + IIMAGE3D = 450, + UIMAGE3D = 451, + IMAGE2DRECT = 452, + IIMAGE2DRECT = 453, + UIMAGE2DRECT = 454, + IMAGECUBE = 455, + IIMAGECUBE = 456, + UIMAGECUBE = 457, + IMAGEBUFFER = 458, + IIMAGEBUFFER = 459, + UIMAGEBUFFER = 460, + IMAGE1DARRAY = 461, + IIMAGE1DARRAY = 462, + UIMAGE1DARRAY = 463, + IMAGE2DARRAY = 464, + IIMAGE2DARRAY = 465, + UIMAGE2DARRAY = 466, + IMAGECUBEARRAY = 467, + IIMAGECUBEARRAY = 468, + UIMAGECUBEARRAY = 469, + IMAGE2DMS = 470, + IIMAGE2DMS = 471, + UIMAGE2DMS = 472, + IMAGE2DMSARRAY = 473, + IIMAGE2DMSARRAY = 474, + UIMAGE2DMSARRAY = 475, + STRUCT = 476, + VOID = 477, + WHILE = 478, + IDENTIFIER = 479, + TYPE_NAME = 480, + FLOATCONSTANT = 481, + DOUBLECONSTANT = 482, + INTCONSTANT = 483, + UINTCONSTANT = 484, + INT64CONSTANT = 485, + UINT64CONSTANT = 486, + BOOLCONSTANT = 487, + FLOAT16CONSTANT = 488, + LEFT_OP = 489, + RIGHT_OP = 490, + INC_OP = 491, + DEC_OP = 492, + LE_OP = 493, + GE_OP = 494, + EQ_OP = 495, + NE_OP = 496, + AND_OP = 497, + OR_OP = 498, + XOR_OP = 499, + MUL_ASSIGN = 500, + DIV_ASSIGN = 501, + ADD_ASSIGN = 502, + MOD_ASSIGN = 503, + LEFT_ASSIGN = 504, + RIGHT_ASSIGN = 505, + AND_ASSIGN = 506, + XOR_ASSIGN = 507, + OR_ASSIGN = 508, + SUB_ASSIGN = 509, + LEFT_PAREN = 510, + RIGHT_PAREN = 511, + LEFT_BRACKET = 512, + RIGHT_BRACKET = 513, + LEFT_BRACE = 514, + RIGHT_BRACE = 515, + DOT = 516, + COMMA = 517, + COLON = 518, + EQUAL = 519, + SEMICOLON = 520, + BANG = 521, + DASH = 522, + TILDE = 523, + PLUS = 524, + STAR = 525, + SLASH = 526, + PERCENT = 527, + LEFT_ANGLE = 528, + RIGHT_ANGLE = 529, + VERTICAL_BAR = 530, + CARET = 531, + AMPERSAND = 532, + QUESTION = 533, + INVARIANT = 534, + PRECISE = 535, + HIGH_PRECISION = 536, + MEDIUM_PRECISION = 537, + LOW_PRECISION = 538, + PRECISION = 539, + PACKED = 540, + RESOURCE = 541, + SUPERP = 542 + }; #endif -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE { -#line 66 "MachineIndependent/glslang.y" /* yacc.c:1909 */ +/* Line 2058 of yacc.c */ +#line 66 "glslang.y" struct { glslang::TSourceLoc loc; @@ -355,16 +373,28 @@ union YYSTYPE }; } interm; -#line 359 "MachineIndependent/glslang_tab.cpp.h" /* yacc.c:1909 */ -}; -typedef union YYSTYPE YYSTYPE; +/* Line 2058 of yacc.c */ +#line 379 "glslang_tab.cpp.h" +} YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif - +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus int yyparse (glslang::TParseContext* pParseContext); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ -#endif /* !YY_YY_MACHINEINDEPENDENT_GLSLANG_TAB_CPP_H_INCLUDED */ +#endif /* !YY_YY_GLSLANG_TAB_CPP_H_INCLUDED */ diff --git a/glslang/MachineIndependent/intermOut.cpp b/glslang/MachineIndependent/intermOut.cpp index 0ef37c471bc99359ca70494bb86f28e38cb4d978..f8c963b72e7781ee6d1a3b608ff28720b6651753 100644 --- a/glslang/MachineIndependent/intermOut.cpp +++ b/glslang/MachineIndependent/intermOut.cpp @@ -163,6 +163,8 @@ bool TOutputTraverser::visitBinary(TVisit /* visit */, TIntermBinary* node) case EOpGreaterThan: out.debug << "Compare Greater Than"; break; case EOpLessThanEqual: out.debug << "Compare Less Than or Equal"; break; case EOpGreaterThanEqual: out.debug << "Compare Greater Than or Equal"; break; + case EOpVectorEqual: out.debug << "Equal"; break; + case EOpVectorNotEqual: out.debug << "NotEqual"; break; case EOpVectorTimesScalar: out.debug << "vector-scale"; break; case EOpVectorTimesMatrix: out.debug << "vector-times-matrix"; break; @@ -304,6 +306,11 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpPackUint2x32: out.debug << "packUint2x32"; break; case EOpUnpackUint2x32: out.debug << "unpackUint2x32"; break; +#ifdef AMD_EXTENSIONS + case EOpPackFloat2x16: out.debug << "packFloat2x16"; break; + case EOpUnpackFloat2x16: out.debug << "unpackFloat2x16"; break; +#endif + case EOpLength: out.debug << "length"; break; case EOpNormalize: out.debug << "normalize"; break; case EOpDPdx: out.debug << "dPdx"; break; @@ -373,6 +380,21 @@ bool TOutputTraverser::visitUnary(TVisit /* visit */, TIntermUnary* node) case EOpCubeFaceIndex: out.debug << "cubeFaceIndex"; break; case EOpCubeFaceCoord: out.debug << "cubeFaceCoord"; break; + + case EOpConvBoolToFloat16: out.debug << "Convert bool to float16"; break; + case EOpConvIntToFloat16: out.debug << "Convert int to float16"; break; + case EOpConvUintToFloat16: out.debug << "Convert uint to float16"; break; + case EOpConvFloatToFloat16: out.debug << "Convert float to float16"; break; + case EOpConvDoubleToFloat16: out.debug << "Convert double to float16"; break; + case EOpConvInt64ToFloat16: out.debug << "Convert int64 to float16"; break; + case EOpConvUint64ToFloat16: out.debug << "Convert uint64 to float16"; break; + case EOpConvFloat16ToBool: out.debug << "Convert float16 to bool"; break; + case EOpConvFloat16ToInt: out.debug << "Convert float16 to int"; break; + case EOpConvFloat16ToUint: out.debug << "Convert float16 to uint"; break; + case EOpConvFloat16ToFloat: out.debug << "Convert float16 to float"; break; + case EOpConvFloat16ToDouble: out.debug << "Convert float16 to double"; break; + case EOpConvFloat16ToInt64: out.debug << "Convert float16 to int64"; break; + case EOpConvFloat16ToUint64: out.debug << "Convert float16 to uint64"; break; #endif default: out.debug.message(EPrefixError, "Bad unary op"); @@ -447,6 +469,21 @@ bool TOutputTraverser::visitAggregate(TVisit /* visit */, TIntermAggregate* node case EOpConstructDMat4x2: out.debug << "Construct dmat4x2"; break; case EOpConstructDMat4x3: out.debug << "Construct dmat4x3"; break; case EOpConstructDMat4x4: out.debug << "Construct dmat4"; break; +#ifdef AMD_EXTENSIONS + case EOpConstructFloat16: out.debug << "Construct float16_t"; break; + case EOpConstructF16Vec2: out.debug << "Construct f16vec2"; break; + case EOpConstructF16Vec3: out.debug << "Construct f16vec3"; break; + case EOpConstructF16Vec4: out.debug << "Construct f16vec4"; break; + case EOpConstructF16Mat2x2: out.debug << "Construct f16mat2"; break; + case EOpConstructF16Mat2x3: out.debug << "Construct f16mat2x3"; break; + case EOpConstructF16Mat2x4: out.debug << "Construct f16mat2x4"; break; + case EOpConstructF16Mat3x2: out.debug << "Construct f16mat3x2"; break; + case EOpConstructF16Mat3x3: out.debug << "Construct f16mat3"; break; + case EOpConstructF16Mat3x4: out.debug << "Construct f16mat3x4"; break; + case EOpConstructF16Mat4x2: out.debug << "Construct f16mat4x2"; break; + case EOpConstructF16Mat4x3: out.debug << "Construct f16mat4x3"; break; + case EOpConstructF16Mat4x4: out.debug << "Construct f16mat4"; break; +#endif case EOpConstructStruct: out.debug << "Construct structure"; break; case EOpConstructTextureSampler: out.debug << "Construct combined texture-sampler"; break; @@ -636,6 +673,9 @@ static void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const break; case EbtFloat: case EbtDouble: +#ifdef AMD_EXTENSIONS + case EbtFloat16: +#endif { const double value = constUnion[i].getDConst(); // Print infinity in a portable way, for test stability. diff --git a/glslang/MachineIndependent/iomapper.cpp b/glslang/MachineIndependent/iomapper.cpp new file mode 100644 index 0000000000000000000000000000000000000000..269d65495458a22c95d1ab368ef17a262ed97bc9 --- /dev/null +++ b/glslang/MachineIndependent/iomapper.cpp @@ -0,0 +1,404 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//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 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. +// +//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. +// + +#include "../Include/Common.h" +#include "../Include/InfoSink.h" +#include "iomapper.h" +#include "LiveTraverser.h" +#include "localintermediate.h" + +#include "gl_types.h" + +#include <unordered_set> +#include <unordered_map> + +// +// Map IO bindings. +// +// High-level algorithm for one stage: +// +// 1. Traverse all code (live+dead) to find the explicitly provided bindings. +// +// 2. Traverse (just) the live code to determine which non-provided bindings +// require auto-numbering. We do not auto-number dead ones. +// +// 3. Traverse all the code to apply the bindings: +// a. explicitly given bindings are offset according to their type +// b. implicit live bindings are auto-numbered into the holes, using +// any open binding slot. +// c. implicit dead bindings are left un-bound. +// + + +namespace glslang { + +struct TVarEntryInfo +{ + int id; + TIntermSymbol* symbol; + bool live; + int newBinding; + int newSet; + + struct TOrderById + { + inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) + { + return l.id < r.id; + } + }; + + struct TOrderByPriority + { + // ordering: + // 1) has both binding and set + // 2) has binding but no set + // 3) has no binding but set + // 4) has no binding and no set + inline bool operator()(const TVarEntryInfo& l, const TVarEntryInfo& r) + { + const TQualifier& lq = l.symbol->getQualifier(); + const TQualifier& rq = r.symbol->getQualifier(); + + // simple rules: + // has binding gives 2 points + // has set gives 1 point + // who has the most points is more important. + int lPoints = (lq.hasBinding() ? 2 : 0) + (lq.hasSet() ? 1 : 0); + int rPoints = (rq.hasBinding() ? 2 : 0) + (rq.hasSet() ? 1 : 0); + + if (lPoints == rPoints) + return l.id < r.id; + return lPoints > rPoints; + } + }; +}; + + + +typedef std::vector<TVarEntryInfo> TVarLiveMap; + +class TVarGatherTraverser : public TLiveTraverser +{ +public: + TVarGatherTraverser(const TIntermediate& i, TVarLiveMap& vars, bool traverseDeadCode) + : TLiveTraverser(i, traverseDeadCode, true, true, false) + , varLiveList(vars) + { + } + + + virtual void visitSymbol(TIntermSymbol* base) + { + if (base->getQualifier().storage == EvqUniform) { + TVarEntryInfo ent = { base->getId(), base, !traverseAll }; + TVarLiveMap::iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById()); + if (at != varLiveList.end() && at->id == ent.id) + at->live = at->live || !traverseAll; // update live state + else + varLiveList.insert(at, ent); + } + } + +private: + TVarLiveMap& varLiveList; +}; + +class TVarSetTraverser : public TLiveTraverser +{ +public: + TVarSetTraverser(const TIntermediate& i, const TVarLiveMap& vars) + : TLiveTraverser(i, true, true, true, false) + , varLiveList(vars) + { + } + + + virtual void visitSymbol(TIntermSymbol* base) + { + TVarEntryInfo ent = { base->getId() }; + TVarLiveMap::const_iterator at = std::lower_bound(varLiveList.begin(), varLiveList.end(), ent, TVarEntryInfo::TOrderById()); + if (at == varLiveList.end()) + return; + if (!(at->id == ent.id)) + return; + + if (at->newBinding != -1) + base->getWritableType().getQualifier().layoutBinding = at->newBinding; + if (at->newSet != -1) + base->getWritableType().getQualifier().layoutSet = at->newSet; + } + + private: + const TVarLiveMap& varLiveList; +}; + +struct TResolverAdaptor +{ + TResolverAdaptor(EShLanguage s, TIoMapResolver& r, TInfoSink& i, bool& e) + : resolver(r) + , stage(s) + , infoSink(i) + , error(e) + { + } + + inline void operator()(TVarEntryInfo& ent) + { + const bool isValid = resolver.validateBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + if (isValid) { + ent.newBinding = resolver.resolveBinding(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + ent.newSet = resolver.resolveSet(stage, ent.symbol->getName().c_str(), ent.symbol->getType(), ent.live); + + if (ent.newBinding != -1) { + if (ent.newBinding >= int(TQualifier::layoutBindingEnd)) { + TString err = "mapped binding out of range: " + ent.symbol->getName(); + + infoSink.info.message(EPrefixInternalError, err.c_str()); + error = true; + } + } + if (ent.newSet != -1) { + if (ent.newSet >= int(TQualifier::layoutSetEnd)) { + TString err = "mapped set out of range: " + ent.symbol->getName(); + + infoSink.info.message(EPrefixInternalError, err.c_str()); + error = true; + } + } + } else { + TString errorMsg = "Invalid binding: " + ent.symbol->getName(); + infoSink.info.message(EPrefixInternalError, errorMsg.c_str()); + error = true; + } + } + + EShLanguage stage; + TIoMapResolver& resolver; + TInfoSink& infoSink; + bool& error; +}; + +/* + * Basic implementation of glslang::TIoMapResolver that replaces the + * previous offset behaviour. + * It does the same, uses the offsets for th corresponding uniform + * types. Also respects the EOptionAutoMapBindings flag and binds + * them if needed. + */ +struct TDefaultIoResolver : public glslang::TIoMapResolver +{ + int baseSamplerBinding; + int baseTextureBinding; + int baseImageBinding; + int baseUboBinding; + bool doAutoMapping; + typedef std::vector<int> TSlotSet; + typedef std::unordered_map<int, TSlotSet> TSlotSetMap; + TSlotSetMap slots; + + TSlotSet::iterator findSlot(int set, int slot) + { + return std::lower_bound(slots[set].begin(), slots[set].end(), slot); + } + + bool checkEmpty(int set, int slot) + { + TSlotSet::iterator at = findSlot(set, slot); + return !(at != slots[set].end() && *at == slot); + } + + int reserveSlot(int set, int slot) + { + TSlotSet::iterator at = findSlot(set, slot); + slots[set].insert(at, slot); + return slot; + } + + int getFreeSlot(int set, int base) + { + TSlotSet::iterator at = findSlot(set, base); + if (at == slots[set].end()) + return reserveSlot(set, base); + + // look in locksteps, if they not match, then there is a free slot + for (; at != slots[set].end(); ++at, ++base) + if (*at != base) + break; + return reserveSlot(set, base); + } + + bool validateBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + if (type.getQualifier().hasBinding()) { + int set; + if (type.getQualifier().hasSet()) + set = type.getQualifier().layoutSet; + else + set = 0; + + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isPureSampler()) + return checkEmpty(set, baseSamplerBinding + type.getQualifier().layoutBinding); + + if (sampler.isTexture()) + return checkEmpty(set, baseTextureBinding + type.getQualifier().layoutBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return checkEmpty(set, baseUboBinding + type.getQualifier().layoutBinding); + } + return true; + } + + int resolveBinding(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool is_live) override + { + int set; + if (type.getQualifier().hasSet()) + set = type.getQualifier().layoutSet; + else + set = 0; + + if (type.getQualifier().hasBinding()) { + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isImage()) + return reserveSlot(set, baseImageBinding + type.getQualifier().layoutBinding); + + if (sampler.isPureSampler()) + return reserveSlot(set, baseSamplerBinding + type.getQualifier().layoutBinding); + + if (sampler.isTexture()) + return reserveSlot(set, baseTextureBinding + type.getQualifier().layoutBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return reserveSlot(set, baseUboBinding + type.getQualifier().layoutBinding); + } else if (is_live && doAutoMapping) { + // find free slot, the caller did make sure it passes all vars with binding + // first and now all are passed that do not have a binding and needs one + if (type.getBasicType() == glslang::EbtSampler) { + const glslang::TSampler& sampler = type.getSampler(); + if (sampler.isImage()) + return getFreeSlot(set, baseImageBinding); + + if (sampler.isPureSampler()) + return getFreeSlot(set, baseSamplerBinding); + + if (sampler.isTexture()) + return getFreeSlot(set, baseTextureBinding); + } + + if (type.getQualifier().isUniformOrBuffer()) + return getFreeSlot(set, baseUboBinding); + } + + return -1; + } + + int resolveSet(EShLanguage /*stage*/, const char* /*name*/, const glslang::TType& type, bool /*is_live*/) override + { + if (type.getQualifier().hasSet()) + return type.getQualifier().layoutSet; + return 0; + } +}; + +// Map I/O variables to provided offsets, and make bindings for +// unbound but live variables. +// +// Returns false if the input is too malformed to do this. +bool TIoMapper::addStage(EShLanguage stage, TIntermediate &intermediate, TInfoSink &infoSink, TIoMapResolver *resolver) +{ + // Trivial return if there is nothing to do. + if (intermediate.getShiftSamplerBinding() == 0 && + intermediate.getShiftTextureBinding() == 0 && + intermediate.getShiftImageBinding() == 0 && + intermediate.getShiftUboBinding() == 0 && + intermediate.getAutoMapBindings() == false && + resolver == nullptr) + return true; + + if (intermediate.getNumEntryPoints() != 1 || intermediate.isRecursive()) + return false; + + TIntermNode* root = intermediate.getTreeRoot(); + if (root == nullptr) + return false; + + // if no resolver is provided, use the default resolver with the given shifts and auto map settings + TDefaultIoResolver defaultResolver; + if (resolver == nullptr) { + defaultResolver.baseSamplerBinding = intermediate.getShiftSamplerBinding(); + defaultResolver.baseTextureBinding = intermediate.getShiftTextureBinding(); + defaultResolver.baseImageBinding = intermediate.getShiftImageBinding(); + defaultResolver.baseUboBinding = intermediate.getShiftUboBinding(); + defaultResolver.doAutoMapping = intermediate.getAutoMapBindings(); + + resolver = &defaultResolver; + } + + TVarLiveMap varMap; + TVarGatherTraverser iter_binding_all(intermediate, varMap, true); + TVarGatherTraverser iter_binding_live(intermediate, varMap, false); + + root->traverse(&iter_binding_all); + iter_binding_live.pushFunction(intermediate.getEntryPointMangledName().c_str()); + + while (!iter_binding_live.functions.empty()) { + TIntermNode* function = iter_binding_live.functions.back(); + iter_binding_live.functions.pop_back(); + function->traverse(&iter_binding_live); + } + + // sort entries by priority. see TVarEntryInfo::TOrderByPriority for info. + std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderByPriority()); + + bool hadError = false; + TResolverAdaptor doResolve(stage, *resolver, infoSink, hadError); + std::for_each(varMap.begin(), varMap.end(), doResolve); + + if (!hadError) { + // sort by id again, so we can use lower bound to find entries + std::sort(varMap.begin(), varMap.end(), TVarEntryInfo::TOrderById()); + TVarSetTraverser iter_iomap(intermediate, varMap); + root->traverse(&iter_iomap); + } + + return !hadError; +} + +} // end namespace glslang diff --git a/glslang/MachineIndependent/iomapper.h b/glslang/MachineIndependent/iomapper.h new file mode 100644 index 0000000000000000000000000000000000000000..ff47543d2c5f3a03930122c623ba4a052b615534 --- /dev/null +++ b/glslang/MachineIndependent/iomapper.h @@ -0,0 +1,63 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//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 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. +// +//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. +// + +#ifndef _IOMAPPER_INCLUDED +#define _IOMAPPER_INCLUDED + +#include "../Public/ShaderLang.h" + +// +// A reflection database and its interface, consistent with the OpenGL API reflection queries. +// + +class TInfoSink; + +namespace glslang { + +class TIntermediate; + +// I/O mapper +class TIoMapper { +public: + TIoMapper() {} + virtual ~TIoMapper() {} + + // grow the reflection stage by stage + bool addStage(EShLanguage, TIntermediate&, TInfoSink&, TIoMapResolver*); +}; + +} // end namespace glslang + +#endif // _IOMAPPER_INCLUDED diff --git a/glslang/MachineIndependent/linkValidate.cpp b/glslang/MachineIndependent/linkValidate.cpp index f213dd6cf37c5e945921731f69b1f87e93a25ac7..3834fde32b0811f245370ba48deadf712eea6159 100644 --- a/glslang/MachineIndependent/linkValidate.cpp +++ b/glslang/MachineIndependent/linkValidate.cpp @@ -60,6 +60,13 @@ void TIntermediate::error(TInfoSink& infoSink, const char* message) ++numErrors; } +// Link-time warning. +void TIntermediate::warn(TInfoSink& infoSink, const char* message) +{ + infoSink.info.prefix(EPrefixWarning); + infoSink.info << "Linking " << StageName(language) << " stage: " << message << "\n"; +} + // TODO: 4.4 offset/align: "Two blocks linked together in the same program with the same block // name must have the exact same set of members qualified with offset and their integral-constant // expression values must be the same, or a link-time error results." @@ -75,19 +82,21 @@ void TIntermediate::merge(TInfoSink& infoSink, TIntermediate& unit) if (source != unit.source) error(infoSink, "can't link compilation units from different source languages"); - if (source == EShSourceHlsl && unit.getNumEntryPoints() > 0) { + if (unit.getNumEntryPoints() > 0) { if (getNumEntryPoints() > 0) error(infoSink, "can't handle multiple entry points per stage"); - else - entryPointName = unit.entryPointName; + else { + entryPointName = unit.getEntryPointName(); + entryPointMangledName = unit.getEntryPointMangledName(); + } } - numEntryPoints += unit.numEntryPoints; - numErrors += unit.numErrors; + numEntryPoints += unit.getNumEntryPoints(); + numErrors += unit.getNumErrors(); numPushConstants += unit.numPushConstants; callGraph.insert(callGraph.end(), unit.callGraph.begin(), unit.callGraph.end()); if (originUpperLeft != unit.originUpperLeft || pixelCenterInteger != unit.pixelCenterInteger) - error(infoSink, "gl_FragCoord redeclarations must match across shaders\n"); + error(infoSink, "gl_FragCoord redeclarations must match across shaders"); if (! earlyFragmentTests) earlyFragmentTests = unit.earlyFragmentTests; @@ -368,16 +377,24 @@ void TIntermediate::mergeErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sy // // Also, lock in defaults of things not set, including array sizes. // -void TIntermediate::finalCheck(TInfoSink& infoSink) +void TIntermediate::finalCheck(TInfoSink& infoSink, bool keepUncalled) { - if (source == EShSourceGlsl && numEntryPoints < 1) - error(infoSink, "Missing entry point: Each stage requires one entry point"); + if (getTreeRoot() == nullptr) + return; + + if (numEntryPoints < 1) { + if (source == EShSourceGlsl) + error(infoSink, "Missing entry point: Each stage requires one entry point"); + else + warn(infoSink, "Entry point not found"); + } if (numPushConstants > 1) error(infoSink, "Only one push_constant block is allowed per stage"); - // recursion checking + // recursion and missing body checking checkCallGraphCycles(infoSink); + checkCallGraphBodies(infoSink, keepUncalled); // overlap/alias/missing I/O, etc. inOutLocationCheck(infoSink); @@ -488,7 +505,7 @@ void TIntermediate::finalCheck(TInfoSink& infoSink) // void TIntermediate::checkCallGraphCycles(TInfoSink& infoSink) { - // Reset everything, once. + // Clear fields we'll use for this. for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { call->visited = false; call->currentPath = false; @@ -563,6 +580,85 @@ void TIntermediate::checkCallGraphCycles(TInfoSink& infoSink) } while (newRoot); // redundant loop check; should always exit via the 'break' above } +// +// See which functions are reachable from the entry point and which have bodies. +// Reachable ones with missing bodies are errors. +// Unreachable bodies are dead code. +// +void TIntermediate::checkCallGraphBodies(TInfoSink& infoSink, bool keepUncalled) +{ + // Clear fields we'll use for this. + for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { + call->visited = false; + call->calleeBodyPosition = -1; + } + + // The top level of the AST includes function definitions (bodies). + // Compare these to function calls in the call graph. + // We'll end up knowing which have bodies, and if so, + // how to map the call-graph node to the location in the AST. + TIntermSequence &functionSequence = getTreeRoot()->getAsAggregate()->getSequence(); + std::vector<bool> reachable(functionSequence.size(), true); // so that non-functions are reachable + for (int f = 0; f < (int)functionSequence.size(); ++f) { + glslang::TIntermAggregate* node = functionSequence[f]->getAsAggregate(); + if (node && (node->getOp() == glslang::EOpFunction)) { + if (node->getName().compare(getEntryPointMangledName().c_str()) != 0) + reachable[f] = false; // so that function bodies are unreachable, until proven otherwise + for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { + if (call->callee == node->getName()) + call->calleeBodyPosition = f; + } + } + } + + // Start call-graph traversal by visiting the entry point nodes. + for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { + if (call->caller.compare(getEntryPointMangledName().c_str()) == 0) + call->visited = true; + } + + // Propagate 'visited' through the call-graph to every part of the graph it + // can reach (seeded with the entry-point setting above). + bool changed; + do { + changed = false; + for (auto call1 = callGraph.begin(); call1 != callGraph.end(); ++call1) { + if (call1->visited) { + for (TGraph::iterator call2 = callGraph.begin(); call2 != callGraph.end(); ++call2) { + if (! call2->visited) { + if (call1->callee == call2->caller) { + changed = true; + call2->visited = true; + } + } + } + } + } + } while (changed); + + // Any call-graph node set to visited but without a callee body is an error. + for (TGraph::iterator call = callGraph.begin(); call != callGraph.end(); ++call) { + if (call->visited) { + if (call->calleeBodyPosition == -1) { + error(infoSink, "No function definition (body) found: "); + infoSink.info << " " << call->callee << "\n"; + } else + reachable[call->calleeBodyPosition] = true; + } + } + + // Bodies in the AST not reached by the call graph are dead; + // clear them out, since they can't be reached and also can't + // be translated further due to possibility of being ill defined. + if (! keepUncalled) { + for (int f = 0; f < (int)functionSequence.size(); ++f) { + if (! reachable[f]) + functionSequence[f] = nullptr; + } + functionSequence.erase(std::remove(functionSequence.begin(), functionSequence.end(), nullptr), functionSequence.end()); + } +} + // // Satisfy rules for location qualifiers on inputs and outputs // @@ -950,6 +1046,9 @@ int TIntermediate::getBaseAlignmentScalar(const TType& type, int& size) case EbtInt64: case EbtUint64: case EbtDouble: size = 8; return 8; +#ifdef AMD_EXTENSIONS + case EbtFloat16: size = 2; return 2; +#endif default: size = 4; return 4; } } diff --git a/glslang/MachineIndependent/localintermediate.h b/glslang/MachineIndependent/localintermediate.h index 3ce615ee2d3885175edfc6c1e6a09e80da27c0fd..6f6db92d5fd6c1471e2996ea9deacf16797a5464 100644 --- a/glslang/MachineIndependent/localintermediate.h +++ b/glslang/MachineIndependent/localintermediate.h @@ -67,7 +67,9 @@ struct TVectorFields { // by TIntermediate. // -// Used for detecting recursion: A "call" is a pair: <caller, callee>. +// Used for call-graph algorithms for detecting recursion, missing bodies, and dead bodies. +// A "call" is a pair: <caller, callee>. +// There can be duplicates. General assumption is the list is small. struct TCall { TCall(const TString& pCaller, const TString& pCallee) : caller(pCaller), callee(pCallee) { } TString caller; @@ -75,6 +77,7 @@ struct TCall { bool visited; bool currentPath; bool errorGiven; + int calleeBodyPosition; }; // A generic 1-D range. @@ -141,7 +144,14 @@ public: invocations(TQualifier::layoutNotSet), vertices(TQualifier::layoutNotSet), inputPrimitive(ElgNone), outputPrimitive(ElgNone), pixelCenterInteger(false), originUpperLeft(false), vertexSpacing(EvsNone), vertexOrder(EvoNone), pointMode(false), earlyFragmentTests(false), depthLayout(EldNone), depthReplacing(false), blendEquations(0), - multiStream(false), xfbMode(false) + multiStream(false), xfbMode(false), + shiftSamplerBinding(0), + shiftTextureBinding(0), + shiftImageBinding(0), + shiftUboBinding(0), + autoMapBindings(false), + flattenUniformArrays(false), + useUnknownFormat(false) { localSize[0] = 1; localSize[1] = 1; @@ -163,6 +173,22 @@ public: void setEntryPointMangledName(const char* ep) { entryPointMangledName = ep; } const std::string& getEntryPointName() const { return entryPointName; } const std::string& getEntryPointMangledName() const { return entryPointMangledName; } + + void setShiftSamplerBinding(unsigned int shift) { shiftSamplerBinding = shift; } + unsigned int getShiftSamplerBinding() const { return shiftSamplerBinding; } + void setShiftTextureBinding(unsigned int shift) { shiftTextureBinding = shift; } + unsigned int getShiftTextureBinding() const { return shiftTextureBinding; } + void setShiftImageBinding(unsigned int shift) { shiftImageBinding = shift; } + unsigned int getShiftImageBinding() const { return shiftImageBinding; } + void setShiftUboBinding(unsigned int shift) { shiftUboBinding = shift; } + unsigned int getShiftUboBinding() const { return shiftUboBinding; } + void setAutoMapBindings(bool map) { autoMapBindings = map; } + bool getAutoMapBindings() const { return autoMapBindings; } + void setFlattenUniformArrays(bool flatten) { flattenUniformArrays = flatten; } + bool getFlattenUniformArrays() const { return flattenUniformArrays; } + void setNoStorageFormat(bool b) { useUnknownFormat = b; } + bool getNoStorageFormat() const { return useUnknownFormat; } + void setVersion(int v) { version = v; } int getVersion() const { return version; } void setProfile(EProfile p) { profile = p; } @@ -184,6 +210,7 @@ public: TIntermSymbol* addSymbol(const TVariable&); TIntermSymbol* addSymbol(const TVariable&, const TSourceLoc&); TIntermSymbol* addSymbol(const TType&, const TSourceLoc&); + TIntermSymbol* addSymbol(const TIntermSymbol&); TIntermTyped* addConversion(TOperator, const TType&, TIntermTyped*) const; TIntermTyped* addShapeConversion(TOperator, const TType&, TIntermTyped*); TIntermTyped* addBinaryMath(TOperator, TIntermTyped* left, TIntermTyped* right, TSourceLoc); @@ -197,6 +224,7 @@ public: TIntermAggregate* growAggregate(TIntermNode* left, TIntermNode* right, const TSourceLoc&); TIntermAggregate* makeAggregate(TIntermNode* node); TIntermAggregate* makeAggregate(TIntermNode* node, const TSourceLoc&); + TIntermAggregate* makeAggregate(const TSourceLoc&); TIntermTyped* setAggregateOperator(TIntermNode*, TOperator, const TType& type, TSourceLoc); bool areAllChildConst(TIntermAggregate* aggrNode); TIntermNode* addSelection(TIntermTyped* cond, TIntermNodePair code, const TSourceLoc&); @@ -218,6 +246,16 @@ public: TIntermBranch* addBranch(TOperator, TIntermTyped*, const TSourceLoc&); TIntermTyped* addSwizzle(TVectorFields&, const TSourceLoc&); + // Low level functions to add nodes (no conversions or other higher level transformations) + // If a type is provided, the node's type will be set to it. + TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc) const; + TIntermBinary* addBinaryNode(TOperator op, TIntermTyped* left, TIntermTyped* right, TSourceLoc, const TType&) const; + TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc) const; + TIntermUnary* addUnaryNode(TOperator op, TIntermTyped* child, TSourceLoc, const TType&) const; + + // Add conversion from node's type to given basic type. + TIntermTyped* convertToBasicType(TOperator op, TBasicType basicType, TIntermTyped* node) const; + // Constant folding (in Constant.cpp) TIntermTyped* fold(TIntermAggregate* aggrNode); TIntermTyped* foldConstructor(TIntermAggregate* aggrNode); @@ -229,7 +267,6 @@ public: // Linkage related void addSymbolLinkageNodes(TIntermAggregate*& linkage, EShLanguage, TSymbolTable&); - void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&); void addSymbolLinkageNode(TIntermAggregate*& linkage, const TSymbol&); bool setInvocations(int i) @@ -327,7 +364,7 @@ public: void addToCallGraph(TInfoSink&, const TString& caller, const TString& callee); void merge(TInfoSink&, TIntermediate&); - void finalCheck(TInfoSink&); + void finalCheck(TInfoSink&, bool keepUncalled); void addIoAccessed(const TString& name) { ioAccessed.insert(name); } bool inIoAccessed(const TString& name) const { return ioAccessed.find(name) != ioAccessed.end(); } @@ -348,25 +385,40 @@ public: int addXfbBufferOffset(const TType&); unsigned int computeTypeXfbSize(const TType&, bool& containsDouble) const; static int getBaseAlignment(const TType&, int& size, int& stride, bool std140, bool rowMajor); + bool promote(TIntermOperator*); protected: TIntermSymbol* addSymbol(int Id, const TString&, const TType&, const TConstUnionArray&, TIntermTyped* subtree, const TSourceLoc&); void error(TInfoSink& infoSink, const char*); + void warn(TInfoSink& infoSink, const char*); void mergeBodies(TInfoSink&, TIntermSequence& globals, const TIntermSequence& unitGlobals); void mergeLinkerObjects(TInfoSink&, TIntermSequence& linkerObjects, const TIntermSequence& unitLinkerObjects); void mergeImplicitArraySizes(TType&, const TType&); void mergeErrorCheck(TInfoSink&, const TIntermSymbol&, const TIntermSymbol&, bool crossStage); void checkCallGraphCycles(TInfoSink&); + void checkCallGraphBodies(TInfoSink&, bool keepUncalled); void inOutLocationCheck(TInfoSink&); TIntermSequence& findLinkerObjects() const; bool userOutputUsed() const; static int getBaseAlignmentScalar(const TType&, int& size); bool isSpecializationOperation(const TIntermOperator&) const; - + bool promoteUnary(TIntermUnary&); + bool promoteBinary(TIntermBinary&); + void addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTable&, const TString&); + bool promoteAggregate(TIntermAggregate&); + const EShLanguage language; // stage, known at construction time EShSource source; // source language, known a bit later std::string entryPointName; std::string entryPointMangledName; + unsigned int shiftSamplerBinding; + unsigned int shiftTextureBinding; + unsigned int shiftImageBinding; + unsigned int shiftUboBinding; + bool autoMapBindings; + bool flattenUniformArrays; + bool useUnknownFormat; + EProfile profile; int version; SpvVersion spvVersion; diff --git a/glslang/MachineIndependent/parseVersions.h b/glslang/MachineIndependent/parseVersions.h index dc51682beb274634c8dbc4669f7ef7acd5f02463..acb57507a468886cd34944a5254f0c5a4bf1303f 100755 --- a/glslang/MachineIndependent/parseVersions.h +++ b/glslang/MachineIndependent/parseVersions.h @@ -76,6 +76,9 @@ public: virtual void updateExtensionBehavior(int line, const char* const extension, const char* behavior); virtual void fullIntegerCheck(const TSourceLoc&, const char* op); virtual void doubleCheck(const TSourceLoc&, const char* op); +#ifdef AMD_EXTENSIONS + virtual void float16Check(const TSourceLoc&, const char* op, bool builtIn = false); +#endif virtual void int64Check(const TSourceLoc&, const char* op, bool builtIn = false); virtual void spvRemoved(const TSourceLoc&, const char* op); virtual void vulkanRemoved(const TSourceLoc&, const char* op); @@ -107,6 +110,7 @@ public: void getPreamble(std::string&); bool relaxedErrors() const { return (messages & EShMsgRelaxedErrors) != 0; } bool suppressWarnings() const { return (messages & EShMsgSuppressWarnings) != 0; } + bool isReadingHLSL() const { return (messages & EShMsgReadHlsl) == EShMsgReadHlsl; } TInfoSink& infoSink; diff --git a/glslang/MachineIndependent/preprocessor/Pp.cpp b/glslang/MachineIndependent/preprocessor/Pp.cpp index d28e7bebd872584090a2db51c9e160a87b08bc87..1985b8bccf71b9ab4a519e0abfd6d346193b953d 100644 --- a/glslang/MachineIndependent/preprocessor/Pp.cpp +++ b/glslang/MachineIndependent/preprocessor/Pp.cpp @@ -705,6 +705,9 @@ int TPpContext::CPPerror(TPpToken* ppToken) while (token != '\n' && token != EndOfInput) { if (token == PpAtomConstInt || token == PpAtomConstUint || token == PpAtomConstInt64 || token == PpAtomConstUint64 || +#ifdef AMD_EXTENSIONS + token == PpAtomConstFloat16 || +#endif token == PpAtomConstFloat || token == PpAtomConstDouble) { message.append(ppToken->name); } else if (token == PpAtomIdentifier || token == PpAtomConstString) { @@ -739,6 +742,9 @@ int TPpContext::CPPpragma(TPpToken* ppToken) case PpAtomConstUint64: case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif tokens.push_back(ppToken->name); break; default: @@ -891,7 +897,9 @@ int TPpContext::readCPPline(TPpToken* ppToken) token = CPPifdef(0, ppToken); break; case PpAtomInclude: - parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); + if(!parseContext.isReadingHLSL()) { + parseContext.ppRequireExtensions(ppToken->loc, 1, &E_GL_GOOGLE_include_directive, "#include"); + } token = CPPinclude(ppToken); break; case PpAtomLine: @@ -925,36 +933,38 @@ int TPpContext::readCPPline(TPpToken* ppToken) return token; } -TPpContext::TokenStream* TPpContext::PrescanMacroArg(TokenStream* a, TPpToken* ppToken, bool newLineOkay) +// Macro-expand a macro argument 'arg' to create 'expandedArg'. +// Does not replace 'arg'. +// Returns nullptr if no expanded argument is created. +TPpContext::TokenStream* TPpContext::PrescanMacroArg(TokenStream* arg, TPpToken* ppToken, bool newLineOkay) { int token; - TokenStream *n; - RewindTokenStream(a); + RewindTokenStream(arg); do { - token = ReadToken(a, ppToken); + token = ReadToken(arg, ppToken); if (token == PpAtomIdentifier && LookUpSymbol(ppToken->atom)) break; } while (token != EndOfInput); if (token == EndOfInput) - return a; + return nullptr; - n = new TokenStream; + TokenStream* expandedArg = new TokenStream; pushInput(new tMarkerInput(this)); - pushTokenStreamInput(a); + pushTokenStreamInput(arg); while ((token = scanToken(ppToken)) != tMarkerInput::marker) { if (token == PpAtomIdentifier && MacroExpand(ppToken->atom, ppToken, false, newLineOkay) != 0) continue; - RecordToken(n, token, ppToken); + RecordToken(expandedArg, token, ppToken); } popInput(); - delete a; - return n; + return expandedArg; } // -// Return the next token for a macro expansion, handling macro args. +// Return the next token for a macro expansion, handling macro arguments, +// whose semantics are dependent on being adjacent to ##. // int TPpContext::tMacroInput::scan(TPpToken* ppToken) { @@ -963,6 +973,39 @@ int TPpContext::tMacroInput::scan(TPpToken* ppToken) token = pp->ReadToken(mac->body, ppToken); } while (token == ' '); // handle white space in macro + // Hash operators basically turn off a round of macro substitution + // (the round done on the argument before the round done on the RHS of the + // macro definition): + // + // "A parameter in the replacement list, unless preceded by a # or ## + // preprocessing token or followed by a ## preprocessing token (see below), + // is replaced by the corresponding argument after all macros contained + // therein have been expanded." + // + // "If, in the replacement list, a parameter is immediately preceded or + // followed by a ## preprocessing token, the parameter is replaced by the + // corresponding argument's preprocessing token sequence." + + bool pasting = false; + if (postpaste) { + // don't expand next token + pasting = true; + postpaste = false; + } + + if (prepaste) { + // already know we should be on a ##, verify + assert(token == PpAtomPaste); + prepaste = false; + postpaste = true; + } + + // see if are preceding a ## + if (peekMacPasting()) { + prepaste = true; + pasting = true; + } + // TODO: preprocessor: properly handle whitespace (or lack of it) between tokens when expanding if (token == PpAtomIdentifier) { int i; @@ -970,7 +1013,10 @@ int TPpContext::tMacroInput::scan(TPpToken* ppToken) if (mac->args[i] == ppToken->atom) break; if (i >= 0) { - pp->pushTokenStreamInput(args[i]); + TokenStream* arg = expandedArgs[i]; + if (arg == nullptr || pasting) + arg = args[i]; + pp->pushTokenStreamInput(arg, prepaste); return pp->scanToken(ppToken); } @@ -982,6 +1028,31 @@ int TPpContext::tMacroInput::scan(TPpToken* ppToken) return token; } +// See if the next non-white-space token in the macro is ## +bool TPpContext::tMacroInput::peekMacPasting() +{ + // don't return early, have to restore this + size_t savePos = mac->body->current; + + // skip white-space + int ltoken; + do { + ltoken = pp->lReadByte(mac->body); + } while (ltoken == ' '); + + // check for ## + bool pasting = false; + if (ltoken == '#') { + ltoken = pp->lReadByte(mac->body); + if (ltoken == '#') + pasting = true; + } + + mac->body->current = savePos; + + return pasting; +} + // return a textual zero, for scanning a macro that was never defined int TPpContext::tZeroInput::scan(TPpToken* ppToken) { @@ -1072,6 +1143,9 @@ int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool in->args.resize(in->mac->argc); for (int i = 0; i < in->mac->argc; i++) in->args[i] = new TokenStream; + in->expandedArgs.resize(in->mac->argc); + for (int i = 0; i < in->mac->argc; i++) + in->expandedArgs[i] = nullptr; int arg = 0; bool tokenRecorded = false; do { @@ -1135,8 +1209,11 @@ int TPpContext::MacroExpand(int atom, TPpToken* ppToken, bool expandUndef, bool } parseContext.ppError(loc, "Too many args in macro", "macro expansion", GetAtomString(atom)); } + + // We need both expanded and non-expanded forms of the argument, for whether or + // not token pasting is in play. for (int i = 0; i < in->mac->argc; i++) - in->args[i] = PrescanMacroArg(in->args[i], ppToken, newLineOkay); + in->expandedArgs[i] = PrescanMacroArg(in->args[i], ppToken, newLineOkay); } pushInput(in); diff --git a/glslang/MachineIndependent/preprocessor/PpContext.h b/glslang/MachineIndependent/preprocessor/PpContext.h index 013c90e5675a5c7ff9184b8450a7f7e5386fd79f..707280f0f5869b4b7980e2c3e06c92e05315ec93 100644 --- a/glslang/MachineIndependent/preprocessor/PpContext.h +++ b/glslang/MachineIndependent/preprocessor/PpContext.h @@ -129,6 +129,7 @@ public: void setPreamble(const char* preamble, size_t length); const char* tokenize(TPpToken* ppToken); + int tokenPaste(TPpToken&); class tInput { public: @@ -138,6 +139,8 @@ public: virtual int scan(TPpToken*) = 0; virtual int getch() = 0; virtual void ungetch() = 0; + virtual bool peekPasting() { return false; } // true when about to see ## + virtual bool endOfReplacementList() { return false; } // true when at the end of a macro replacement list (RHS of #define) // Will be called when we start reading tokens from this instance virtual void notifyActivated() {} @@ -235,6 +238,8 @@ protected: } int getChar() { return inputStack.back()->getch(); } void ungetChar() { inputStack.back()->ungetch(); } + bool peekPasting() { return !inputStack.empty() && inputStack.back()->peekPasting(); } + bool endOfReplacementList() { return inputStack.empty() || inputStack.back()->endOfReplacementList(); } static const int maxMacroArgs = 64; static const int maxIfNesting = 64; @@ -245,18 +250,29 @@ protected: class tMacroInput : public tInput { public: - tMacroInput(TPpContext* pp) : tInput(pp) { } + tMacroInput(TPpContext* pp) : tInput(pp), prepaste(false), postpaste(false) { } virtual ~tMacroInput() { for (size_t i = 0; i < args.size(); ++i) delete args[i]; + for (size_t i = 0; i < expandedArgs.size(); ++i) + delete expandedArgs[i]; } virtual int scan(TPpToken*); virtual int getch() { assert(0); return EndOfInput; } virtual void ungetch() { assert(0); } + bool peekPasting() override { return prepaste; } + bool endOfReplacementList() override { return mac->body->current >= mac->body->data.size(); } + MacroSymbol *mac; TVector<TokenStream*> args; + TVector<TokenStream*> expandedArgs; + + protected: + bool peekMacPasting(); + bool prepaste; // true if we are just before ## + bool postpaste; // true if we are right after ## }; class tMarkerInput : public tInput { @@ -329,17 +345,19 @@ protected: void RecordToken(TokenStream* pTok, int token, TPpToken* ppToken); void RewindTokenStream(TokenStream *pTok); int ReadToken(TokenStream* pTok, TPpToken* ppToken); - void pushTokenStreamInput(TokenStream *ts); + void pushTokenStreamInput(TokenStream *ts, bool pasting = false); void UngetToken(int token, TPpToken* ppToken); class tTokenInput : public tInput { public: - tTokenInput(TPpContext* pp, TokenStream* t) : tInput(pp), tokens(t) { } + tTokenInput(TPpContext* pp, TokenStream* t, bool prepasting) : tInput(pp), tokens(t), lastTokenPastes(prepasting) { } virtual int scan(TPpToken *); virtual int getch() { assert(0); return EndOfInput; } virtual void ungetch() { assert(0); } + virtual bool peekPasting() override; protected: TokenStream *tokens; + bool lastTokenPastes; // true if the last token in the input is to be pasted, rather than consumed as a token }; class tUngotTokenInput : public tInput { diff --git a/glslang/MachineIndependent/preprocessor/PpScanner.cpp b/glslang/MachineIndependent/preprocessor/PpScanner.cpp index 7daebb3dbac8d397a474095a63e7fcf117261b45..bc5c08661e7e2042145692b426694a54089c6a81 100644 --- a/glslang/MachineIndependent/preprocessor/PpScanner.cpp +++ b/glslang/MachineIndependent/preprocessor/PpScanner.cpp @@ -117,6 +117,10 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) int declen; int str_len; int isDouble = 0; +#ifdef AMD_EXTENSIONS + int isFloat16 = 0; + bool enableFloat16 = parseContext.version >= 450 && parseContext.extensionTurnedOn(E_GL_AMD_gpu_shader_half_float); +#endif declen = 0; @@ -200,6 +204,28 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) len = 1,str_len=1; } } +#ifdef AMD_EXTENSIONS + } else if (enableFloat16 && (ch == 'h' || ch == 'H')) { + parseContext.float16Check(ppToken->loc, "half floating-point suffix"); + if (!HasDecimalOrExponent) + parseContext.ppError(ppToken->loc, "float literal needs a decimal point or exponent", "", ""); + int ch2 = getChar(); + if (ch2 != 'f' && ch2 != 'F') { + ungetChar(); + ungetChar(); + } + else { + if (len < MaxTokenLength) { + str[len++] = (char)ch; + str[len++] = (char)ch2; + isFloat16 = 1; + } + else { + parseContext.ppError(ppToken->loc, "float literal too long", "", ""); + len = 1, str_len = 1; + } + } +#endif } else if (ch == 'f' || ch == 'F') { parseContext.profileRequires(ppToken->loc, EEsProfile, 300, nullptr, "floating-point suffix"); if (! parseContext.relaxedErrors()) @@ -222,6 +248,10 @@ int TPpContext::lFloatConst(int len, int ch, TPpToken* ppToken) if (isDouble) return PpAtomConstDouble; +#ifdef AMD_EXTENSIONS + else if (isFloat16) + return PpAtomConstFloat16; +#endif else return PpAtomConstFloat; } @@ -709,6 +739,11 @@ const char* TPpContext::tokenize(TPpToken* ppToken) for(;;) { token = scanToken(ppToken); ppToken->token = token; + + // Handle token-pasting logic + token = tokenPaste(*ppToken); + ppToken->token = token; + if (token == EndOfInput) { missingEndifCheck(); return nullptr; @@ -744,6 +779,9 @@ const char* TPpContext::tokenize(TPpToken* ppToken) case PpAtomConstInt64: case PpAtomConstUint64: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif tokenString = ppToken->name; break; case PpAtomConstString: @@ -767,6 +805,47 @@ const char* TPpContext::tokenize(TPpToken* ppToken) } } +// +// Do all token-pasting related combining of two pasted tokens when getting a +// stream of tokens from a replacement list. Degenerates to no processing if a +// replacement list is not the source of the token stream. +// +int TPpContext::tokenPaste(TPpToken& ppToken) +{ + // starting with ## is illegal, skip to next token + if (ppToken.token == PpAtomPaste) { + parseContext.ppError(ppToken.loc, "unexpected location", "##", ""); + ppToken.token = scanToken(&ppToken); + } + + // ## can be chained, process all in the chain at once + while (peekPasting()) { + TPpToken pastedPpToken; + + // next token has to be ## + pastedPpToken.token = scanToken(&pastedPpToken); + assert(pastedPpToken.token == PpAtomPaste); + + if (endOfReplacementList()) { + parseContext.ppError(ppToken.loc, "unexpected location; end of replacement list", "##", ""); + break; + } + + // get the token after the ## + scanToken(&pastedPpToken); + + // combine the tokens + if (strlen(ppToken.name) + strlen(pastedPpToken.name) > MaxTokenLength) + parseContext.ppError(ppToken.loc, "combined tokens are too long", "##", ""); + strncat(ppToken.name, pastedPpToken.name, MaxTokenLength - strlen(ppToken.name)); + ppToken.atom = LookUpAddString(ppToken.name); + if (ppToken.token != PpAtomIdentifier) + parseContext.ppError(ppToken.loc, "only supported for preprocessing identifiers", "##", ""); + } + + return ppToken.token; +} + // Checks if we've seen balanced #if...#endif void TPpContext::missingEndifCheck() { diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.cpp b/glslang/MachineIndependent/preprocessor/PpTokens.cpp index f5a0513c2b06c0c2a08c0a9c6b8d04cbcb5aeab0..724cedd0b8798f8aa278e407f9c01e99bc2a03f4 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.cpp +++ b/glslang/MachineIndependent/preprocessor/PpTokens.cpp @@ -144,6 +144,9 @@ void TPpContext::RecordToken(TokenStream *pTok, int token, TPpToken* ppToken) case PpAtomConstUint64: case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif str = ppToken->name; while (*str) { lAddByte(pTok, (unsigned char) *str); @@ -157,7 +160,7 @@ void TPpContext::RecordToken(TokenStream *pTok, int token, TPpToken* ppToken) } /* -* Reset a token stream in preperation for reading. +* Reset a token stream in preparation for reading. */ void TPpContext::RewindTokenStream(TokenStream *pTok) { @@ -184,9 +187,7 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) if (lReadByte(pTok) == '#') { parseContext.requireProfile(ppToken->loc, ~EEsProfile, "token pasting (##)"); parseContext.profileRequires(ppToken->loc, ~EEsProfile, 130, 0, "token pasting (##)"); - parseContext.error(ppToken->loc, "token pasting not implemented (internal error)", "##", ""); - //return PpAtomPaste; - return ReadToken(pTok, ppToken); + ltoken = PpAtomPaste; } else lUnreadByte(pTok); } @@ -195,6 +196,9 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) case PpAtomIdentifier: case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif case PpAtomConstInt: case PpAtomConstUint: case PpAtomConstInt64: @@ -221,14 +225,17 @@ int TPpContext::ReadToken(TokenStream *pTok, TPpToken *ppToken) break; case PpAtomConstFloat: case PpAtomConstDouble: +#ifdef AMD_EXTENSIONS + case PpAtomConstFloat16: +#endif ppToken->dval = atof(ppToken->name); break; case PpAtomConstInt: if (len > 0 && tokenText[0] == '0') { if (len > 1 && (tokenText[1] == 'x' || tokenText[1] == 'X')) - ppToken->ival = strtol(ppToken->name, 0, 16); + ppToken->ival = (int)strtol(ppToken->name, 0, 16); else - ppToken->ival = strtol(ppToken->name, 0, 8); + ppToken->ival = (int)strtol(ppToken->name, 0, 8); } else ppToken->ival = atoi(ppToken->name); break; @@ -270,9 +277,34 @@ int TPpContext::tTokenInput::scan(TPpToken* ppToken) return pp->ReadToken(tokens, ppToken); } -void TPpContext::pushTokenStreamInput(TokenStream* ts) +// We are pasting if the entire macro is preceding a pasting operator +// (lastTokenPastes) and we are also on the last token. +bool TPpContext::tTokenInput::peekPasting() +{ + if (! lastTokenPastes) + return false; + // Getting here means the last token will be pasted. + + // Are we at the last non-whitespace token? + size_t savePos = tokens->current; + bool moreTokens = false; + do { + int byte = pp->lReadByte(tokens); + if (byte == EndOfInput) + break; + if (byte != ' ') { + moreTokens = true; + break; + } + } while (true); + tokens->current = savePos; + + return !moreTokens; +} + +void TPpContext::pushTokenStreamInput(TokenStream* ts, bool prepasting) { - pushInput(new tTokenInput(this, ts)); + pushInput(new tTokenInput(this, ts, prepasting)); RewindTokenStream(ts); } diff --git a/glslang/MachineIndependent/preprocessor/PpTokens.h b/glslang/MachineIndependent/preprocessor/PpTokens.h index fd4d40767c37477a439b379fcb608661967862d5..c84431d3685ac340385e9179f9ecb89547e01611 100644 --- a/glslang/MachineIndependent/preprocessor/PpTokens.h +++ b/glslang/MachineIndependent/preprocessor/PpTokens.h @@ -123,6 +123,9 @@ enum EFixedAtoms { PpAtomConstUint64, PpAtomConstFloat, PpAtomConstDouble, +#ifdef AMD_EXTENSIONS + PpAtomConstFloat16, +#endif PpAtomConstString, // Identifiers diff --git a/glslang/MachineIndependent/propagateNoContraction.cpp b/glslang/MachineIndependent/propagateNoContraction.cpp index e599f4d9ff105259bbf9e08fe8311e3fa68764b7..caa6e200d5e97c47840492e88fd23407ad99ffc1 100644 --- a/glslang/MachineIndependent/propagateNoContraction.cpp +++ b/glslang/MachineIndependent/propagateNoContraction.cpp @@ -670,7 +670,7 @@ protected: // Gets the struct dereference index that leads to 'precise' object. ObjectAccessChain precise_accesschain_index_str = getFrontElement(remained_accesschain_); - unsigned precise_accesschain_index = strtoul(precise_accesschain_index_str.c_str(), nullptr, 10); + unsigned precise_accesschain_index = (unsigned)strtoul(precise_accesschain_index_str.c_str(), nullptr, 10); // Gets the node pointed by the access chain index extracted before. glslang::TIntermTyped* potential_precise_node = node->getSequence()[precise_accesschain_index]->getAsTyped(); diff --git a/glslang/MachineIndependent/reflection.cpp b/glslang/MachineIndependent/reflection.cpp index d557765635464291699bdbebcccead3a93d46698..31bd1725571665d9c9ca1e440a1d2698e2de2156 100644 --- a/glslang/MachineIndependent/reflection.cpp +++ b/glslang/MachineIndependent/reflection.cpp @@ -109,7 +109,7 @@ public: TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name); if (it == reflection.nameToIndex.end()) { reflection.nameToIndex[name] = (int)reflection.indexToAttribute.size(); - reflection.indexToAttribute.push_back(TObjectReflection(name, 0, mapToGlType(type), 0, 0)); + reflection.indexToAttribute.push_back(TObjectReflection(name, type, 0, mapToGlType(type), 0, 0)); } } } @@ -245,7 +245,8 @@ public: TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name); if (it == reflection.nameToIndex.end()) { reflection.nameToIndex[name] = (int)reflection.indexToUniform.size(); - reflection.indexToUniform.push_back(TObjectReflection(name, offset, mapToGlType(*terminalType), arraySize, blockIndex)); + reflection.indexToUniform.push_back(TObjectReflection(name, *terminalType, offset, mapToGlType(*terminalType), + arraySize, blockIndex)); } else if (arraySize > 1) { int& reflectedArraySize = reflection.indexToUniform[it->second].size; reflectedArraySize = std::max(arraySize, reflectedArraySize); @@ -296,12 +297,18 @@ public: if (block) { offset = 0; anonymous = IsAnonymous(base->getName()); + + const TString& blockName = base->getType().getTypeName(); + if (base->getType().isArray()) { + TType derefType(base->getType(), 0); + assert(! anonymous); for (int e = 0; e < base->getType().getCumulativeArraySize(); ++e) - blockIndex = addBlockName(base->getType().getTypeName() + "[" + String(e) + "]", getBlockSize(base->getType())); + blockIndex = addBlockName(blockName + "[" + String(e) + "]", derefType, + getBlockSize(base->getType())); } else - blockIndex = addBlockName(base->getType().getTypeName(), getBlockSize(base->getType())); + blockIndex = addBlockName(blockName, base->getType(), getBlockSize(base->getType())); } // Process the dereference chain, backward, accumulating the pieces for later forward traversal. @@ -334,14 +341,14 @@ public: blowUpActiveAggregate(base->getType(), baseName, derefs, derefs.begin(), offset, blockIndex, arraySize); } - int addBlockName(const TString& name, int size) + int addBlockName(const TString& name, const TType& type, int size) { int blockIndex; TReflection::TNameToIndex::const_iterator it = reflection.nameToIndex.find(name); if (reflection.nameToIndex.find(name) == reflection.nameToIndex.end()) { blockIndex = (int)reflection.indexToUniformBlock.size(); reflection.nameToIndex[name] = blockIndex; - reflection.indexToUniformBlock.push_back(TObjectReflection(name, -1, -1, size, -1)); + reflection.indexToUniformBlock.push_back(TObjectReflection(name, type, -1, -1, size, -1)); } else blockIndex = it->second; @@ -529,6 +536,9 @@ public: switch (type.getBasicType()) { case EbtFloat: return GL_FLOAT_VEC2 + offset; case EbtDouble: return GL_DOUBLE_VEC2 + offset; +#ifdef AMD_EXTENSIONS + case EbtFloat16: return GL_FLOAT16_VEC2_NV + offset; +#endif case EbtInt: return GL_INT_VEC2 + offset; case EbtUint: return GL_UNSIGNED_INT_VEC2 + offset; case EbtInt64: return GL_INT64_ARB + offset; @@ -588,6 +598,32 @@ public: default: return 0; } } +#ifdef AMD_EXTENSIONS + case EbtFloat16: + switch (type.getMatrixCols()) { + case 2: + switch (type.getMatrixRows()) { + case 2: return GL_FLOAT16_MAT2_AMD; + case 3: return GL_FLOAT16_MAT2x3_AMD; + case 4: return GL_FLOAT16_MAT2x4_AMD; + default: return 0; + } + case 3: + switch (type.getMatrixRows()) { + case 2: return GL_FLOAT16_MAT3x2_AMD; + case 3: return GL_FLOAT16_MAT3_AMD; + case 4: return GL_FLOAT16_MAT3x4_AMD; + default: return 0; + } + case 4: + switch (type.getMatrixRows()) { + case 2: return GL_FLOAT16_MAT4x2_AMD; + case 3: return GL_FLOAT16_MAT4x3_AMD; + case 4: return GL_FLOAT16_MAT4_AMD; + default: return 0; + } + } +#endif default: return 0; } @@ -596,6 +632,9 @@ public: switch (type.getBasicType()) { case EbtFloat: return GL_FLOAT; case EbtDouble: return GL_DOUBLE; +#ifdef AMD_EXTENSIONS + case EbtFloat16: return GL_FLOAT16_NV; +#endif case EbtInt: return GL_INT; case EbtUint: return GL_UNSIGNED_INT; case EbtInt64: return GL_INT64_ARB; diff --git a/glslang/MachineIndependent/reflection.h b/glslang/MachineIndependent/reflection.h index 8880602c99df84b1d105990b5d7494a15af7db6e..13f5177c0f44d160535c27b5a3a4b4e659bd96f5 100644 --- a/glslang/MachineIndependent/reflection.h +++ b/glslang/MachineIndependent/reflection.h @@ -1,5 +1,5 @@ // -//Copyright (C) 2013 LunarG, Inc. +//Copyright (C) 2013-2016 LunarG, Inc. // //All rights reserved. // @@ -37,6 +37,7 @@ #define _REFLECTION_INCLUDED #include "../Public/ShaderLang.h" +#include "../Include/Types.h" #include <list> #include <set> @@ -54,20 +55,41 @@ class TReflectionTraverser; // Data needed for just a single object at the granularity exchanged by the reflection API class TObjectReflection { public: - TObjectReflection(const TString& pName, int pOffset, int pGLDefineType, int pSize, int pIndex) : - name(pName), offset(pOffset), glDefineType(pGLDefineType), size(pSize), index(pIndex) { } - void dump() const { printf("%s: offset %d, type %x, size %d, index %d\n", name.c_str(), offset, glDefineType, size, index); } + TObjectReflection(const TString& pName, const TType& pType, int pOffset, int pGLDefineType, int pSize, int pIndex) : + name(pName), type(pType.clone()), + offset(pOffset), glDefineType(pGLDefineType), size(pSize), index(pIndex) { } + + void dump() const { + printf("%s: offset %d, type %x, size %d, index %d, binding %d\n", + name.c_str(), offset, glDefineType, size, index, getBinding() ); + } + + const TType* const getType() const { return type; } + TString name; int offset; int glDefineType; int size; // data size in bytes for a block, array size for a (non-block) object that's an array int index; + + static TObjectReflection badReflection() { return TObjectReflection(); } + +protected: + int getBinding() const { + if (type == nullptr || type->getQualifier().layoutBinding == TQualifier::layoutBindingEnd) + return -1; + return type->getQualifier().layoutBinding; + } + + TObjectReflection() : type(nullptr), offset(-1), glDefineType(-1), size(-1), index(-1) { } + + const TType* type; }; // The full reflection database class TReflection { public: - TReflection() : badReflection("__bad__", -1, -1, -1, -1) {} + TReflection() : badReflection(TObjectReflection::badReflection()) { } virtual ~TReflection() {} // grow the reflection stage by stage diff --git a/glslang/OSDependent/Unix/ossource.cpp b/glslang/OSDependent/Unix/ossource.cpp index 8e583ea78f0fe1e4fe17b841639940fb48fed331..7e84d4eb2335c4e281261ac8e702f4ba2ac1084b 100644 --- a/glslang/OSDependent/Unix/ossource.cpp +++ b/glslang/OSDependent/Unix/ossource.cpp @@ -165,11 +165,29 @@ bool OS_FreeTLSIndex(OS_TLSIndex nIndex) return false; } -// TODO: non-windows: if we need these on linux, flesh them out -void InitGlobalLock() { } -void GetGlobalLock() { } -void ReleaseGlobalLock() { } +namespace { +pthread_mutex_t gMutex; +} + +void InitGlobalLock() +{ + pthread_mutexattr_t mutexattr; + pthread_mutexattr_init(&mutexattr); + pthread_mutexattr_settype(&mutexattr, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(&gMutex, &mutexattr); +} + +void GetGlobalLock() +{ + pthread_mutex_lock(&gMutex); +} + +void ReleaseGlobalLock() +{ + pthread_mutex_unlock(&gMutex); +} +// TODO: non-windows: if we need these on linux, flesh them out void* OS_CreateThread(TThreadEntrypoint /*entry*/) { return 0; diff --git a/glslang/Public/ShaderLang.h b/glslang/Public/ShaderLang.h index d1121595866f5bb62cdfc361349034f95ccaed70..afdc7d1eb26e3b0f160c980c85c3a2b01c2d349a 100644 --- a/glslang/Public/ShaderLang.h +++ b/glslang/Public/ShaderLang.h @@ -1,5 +1,7 @@ // //Copyright (C) 2002-2005 3Dlabs Inc. Ltd. +//Copyright (C) 2013-2016 LunarG, Inc. +// //All rights reserved. // //Redistribution and use in source and binary forms, with or without @@ -101,6 +103,8 @@ typedef enum { namespace glslang { +class TType; + typedef enum { EShSourceNone, EShSourceGlsl, @@ -142,6 +146,7 @@ enum EShMessages { EShMsgOnlyPreprocessor = (1 << 5), // only print out errors produced by the preprocessor EShMsgReadHlsl = (1 << 6), // use HLSL parsing rules and semantics EShMsgCascadingErrors = (1 << 7), // get cascading errors; risks error-recovery issues, instead of an early exit + EShMsgKeepUncalled = (1 << 8), // for testing, don't eliminate uncalled functions }; // @@ -300,6 +305,14 @@ public: const char* const* s, const int* l, const char* const* names, int n); void setPreamble(const char* s) { preamble = s; } void setEntryPoint(const char* entryPoint); + void setSourceEntryPoint(const char* sourceEntryPointName); + void setShiftSamplerBinding(unsigned int base); + void setShiftTextureBinding(unsigned int base); + void setShiftImageBinding(unsigned int base); + void setShiftUboBinding(unsigned int base); + void setAutoMapBindings(bool map); + void setFlattenUniformArrays(bool flatten); + void setNoStorageFormat(bool useUnknownFormat); // Interface to #include handlers. // @@ -363,9 +376,7 @@ public: // Signals that the parser will no longer use the contents of the // specified IncludeResult. virtual void releaseInclude(IncludeResult* result) = 0; -#ifdef __ANDROID__ - virtual ~Includer() {} // Pacify -Werror=non-virtual-dtor -#endif + virtual ~Includer() {} }; // Returns an error message for any #include directive. @@ -426,6 +437,9 @@ protected: const char* preamble; int numStrings; + // a function in the source string can be renamed FROM this TO the name given in setEntryPoint. + std::string sourceEntryPointName; + friend class TProgram; private: @@ -433,8 +447,38 @@ private: }; class TReflection; +class TIoMapper; + +// Allows to customize the binding layout after linking. +// All used uniform variables will invoke at least validateBinding. +// If validateBinding returned true then the other resolveBinding +// and resolveSet are invoked to resolve the binding and descriptor +// set index respectively. +// Invocations happen in a particular order: +// 1) var with binding and set already defined +// 2) var with binding but no set defined +// 3) var with set but no binding defined +// 4) var with no binding and no set defined +// +// NOTE: that still limit checks are applied to bindings and sets +// and may result in an error. +class TIoMapResolver +{ +public: + virtual ~TIoMapResolver() {} + + // Should return true if the resulting/current binding would be ok. + // Basic idea is to do aliasing binding checks with this. + virtual bool validateBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return a value >= 0 if the current binding should be overridden. + // Return -1 if the current binding (including no binding) should be kept. + virtual int resolveBinding(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; + // Should return a value >= 0 if the current set should be overriden. + // Return -1 if the current set (including no set) should be kept. + virtual int resolveSet(EShLanguage stage, const char* name, const TType& type, bool is_live) = 0; +}; -// Make one TProgram per set of shaders that will get linked together. Add all +// Make one TProgram per set of shaders that will get linked together. Add all // the shaders that are to be linked together. After calling shader.parse() // for all shaders, call link(). // @@ -455,21 +499,30 @@ public: // Reflection Interface bool buildReflection(); // call first, to do liveness analysis, index mapping, etc.; returns false on failure - int getNumLiveUniformVariables(); // can be used for glGetProgramiv(GL_ACTIVE_UNIFORMS) - int getNumLiveUniformBlocks(); // can be used for glGetProgramiv(GL_ACTIVE_UNIFORM_BLOCKS) - const char* getUniformName(int index); // can be used for "name" part of glGetActiveUniform() - const char* getUniformBlockName(int blockIndex); // can be used for glGetActiveUniformBlockName() - int getUniformBlockSize(int blockIndex); // can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE) - int getUniformIndex(const char* name); // can be used for glGetUniformIndices() - int getUniformBlockIndex(int index); // can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX) - int getUniformType(int index); // can be used for glGetActiveUniformsiv(GL_UNIFORM_TYPE) - int getUniformBufferOffset(int index); // can be used for glGetActiveUniformsiv(GL_UNIFORM_OFFSET) - int getUniformArraySize(int index); // can be used for glGetActiveUniformsiv(GL_UNIFORM_SIZE) - int getNumLiveAttributes(); // can be used for glGetProgramiv(GL_ACTIVE_ATTRIBUTES) - const char *getAttributeName(int index); // can be used for glGetActiveAttrib() - int getAttributeType(int index); // can be used for glGetActiveAttrib() + int getNumLiveUniformVariables() const; // can be used for glGetProgramiv(GL_ACTIVE_UNIFORMS) + int getNumLiveUniformBlocks() const; // can be used for glGetProgramiv(GL_ACTIVE_UNIFORM_BLOCKS) + const char* getUniformName(int index) const; // can be used for "name" part of glGetActiveUniform() + const char* getUniformBlockName(int blockIndex) const; // can be used for glGetActiveUniformBlockName() + int getUniformBlockSize(int blockIndex) const; // can be used for glGetActiveUniformBlockiv(UNIFORM_BLOCK_DATA_SIZE) + int getUniformIndex(const char* name) const; // can be used for glGetUniformIndices() + int getUniformBlockIndex(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_BLOCK_INDEX) + int getUniformType(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_TYPE) + int getUniformBufferOffset(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_OFFSET) + int getUniformArraySize(int index) const; // can be used for glGetActiveUniformsiv(GL_UNIFORM_SIZE) + int getNumLiveAttributes() const; // can be used for glGetProgramiv(GL_ACTIVE_ATTRIBUTES) + const char *getAttributeName(int index) const; // can be used for glGetActiveAttrib() + int getAttributeType(int index) const; // can be used for glGetActiveAttrib() + const TType* getUniformTType(int index) const; // returns a TType* + const TType* getUniformBlockTType(int index) const; // returns a TType* + const TType* getAttributeTType(int index) const; // returns a TType* + void dumpReflection(); + // I/O mapping: apply base offsets and map live unbound variables + // If resolver is not provided it uses the previous approach + // and respects auto assignment and offsets. + bool mapIO(TIoMapResolver* resolver = NULL); + protected: bool linkStage(EShLanguage, EShMessages); @@ -479,6 +532,7 @@ protected: bool newedIntermediate[EShLangCount]; // track which intermediate were "new" versus reusing a singleton unit in a stage TInfoSink* infoSink; TReflection* reflection; + TIoMapper* ioMapper; bool linked; private: diff --git a/gtests/AST.FromFile.cpp b/gtests/AST.FromFile.cpp index 7c31df01348d10a970e22efad3c0b41def4a32c1..70705337f52a8bb14862536fa85ebfed262d69e1 100644 --- a/gtests/AST.FromFile.cpp +++ b/gtests/AST.FromFile.cpp @@ -43,7 +43,7 @@ using CompileToAstTest = GlslangTest<::testing::TestWithParam<std::string>>; TEST_P(CompileToAstTest, FromFile) { - loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::OpenGL, Target::AST); } @@ -178,6 +178,7 @@ INSTANTIATE_TEST_CASE_P( "syntaxError.frag", "test.frag", "texture.frag", + "tokenPaste.vert", "types.frag", "uniformArray.frag", "variableArrayIndex.frag", diff --git a/gtests/BuiltInResource.FromFile.cpp b/gtests/BuiltInResource.FromFile.cpp index 4d68d873bbfa754883e47cfeff45283fd0a24220..da81fe98c39fd289d30d34cffd5af1603fbdc0c8 100644 --- a/gtests/BuiltInResource.FromFile.cpp +++ b/gtests/BuiltInResource.FromFile.cpp @@ -46,7 +46,7 @@ using DefaultResourceTest = GlslangTest<::testing::Test>; TEST_F(DefaultResourceTest, FromFile) { - const std::string path = GLSLANG_TEST_DIRECTORY "/baseResults/test.conf"; + const std::string path = GlobalTestSettings.testRoot + "/baseResults/test.conf"; std::string expectedConfig; tryLoadFile(path, "expected resource limit", &expectedConfig); const std::string realConfig = glslang::GetDefaultTBuiltInResourceString(); diff --git a/gtests/CMakeLists.txt b/gtests/CMakeLists.txt index 8a91eef3a8a2065d07bbbe11e3953dc618a3d7bd..268caff7f934d2100616c668cea03f89fc4eee2b 100644 --- a/gtests/CMakeLists.txt +++ b/gtests/CMakeLists.txt @@ -14,6 +14,7 @@ if (TARGET gmock) ${CMAKE_CURRENT_SOURCE_DIR}/AST.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/BuiltInResource.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Config.FromFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/HexFloat.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Hlsl.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Link.FromFile.cpp ${CMAKE_CURRENT_SOURCE_DIR}/Pp.FromFile.cpp @@ -28,8 +29,12 @@ if (TARGET gmock) install(TARGETS glslangtests RUNTIME DESTINATION bin) + set(GLSLANG_TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../Test") + # Supply a default test root directory, so that manual testing + # doesn't have to specify the --test-root option in the normal + # case that you want to use the tests from the same source tree. target_compile_definitions(glslangtests - PRIVATE GLSLANG_TEST_DIRECTORY="${CMAKE_CURRENT_SOURCE_DIR}/../Test") + PRIVATE GLSLANG_TEST_DIRECTORY="${GLSLANG_TEST_DIRECTORY}") target_include_directories(glslangtests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR} @@ -38,5 +43,6 @@ if (TARGET gmock) target_link_libraries(glslangtests PRIVATE SPVRemapper glslang OSDependent OGLCompiler HLSL glslang SPIRV glslang-default-resource-limits gmock) - add_test(NAME glslang-gtests COMMAND glslangtests) + add_test(NAME glslang-gtests + COMMAND glslangtests --test-root "${GLSLANG_TEST_DIRECTORY}") endif() diff --git a/gtests/Config.FromFile.cpp b/gtests/Config.FromFile.cpp index 7bc6a70e2139a48e3d46ea10dfb16c6ddbae40f1..a6e93dcfa9beb210b0dbe082e073489b1a7c113e 100644 --- a/gtests/Config.FromFile.cpp +++ b/gtests/Config.FromFile.cpp @@ -54,8 +54,8 @@ TEST_P(ConfigTest, FromFile) // Get the contents for input shader and limit configurations. std::string shaderContents, configContents; - tryLoadFile(GLSLANG_TEST_DIRECTORY "/" + testCase.input, "input", &shaderContents); - tryLoadFile(GLSLANG_TEST_DIRECTORY "/" + testCase.config, "limits config", &configContents); + tryLoadFile(GlobalTestSettings.testRoot + "/" + testCase.input, "input", &shaderContents); + tryLoadFile(GlobalTestSettings.testRoot + "/" + testCase.config, "limits config", &configContents); // Decode limit configurations. TBuiltInResource resources = {}; @@ -86,7 +86,7 @@ TEST_P(ConfigTest, FromFile) // Check with expected results. const std::string expectedOutputFname = - GLSLANG_TEST_DIRECTORY "/baseResults/" + testCase.output; + GlobalTestSettings.testRoot + "/baseResults/" + testCase.output; std::string expectedOutput; tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); diff --git a/gtests/HexFloat.cpp b/gtests/HexFloat.cpp new file mode 100644 index 0000000000000000000000000000000000000000..ddbee1f4641e14473487fa7bde113f31d21d8716 --- /dev/null +++ b/gtests/HexFloat.cpp @@ -0,0 +1,1231 @@ +// Copyright (c) 2015-2016 The Khronos Group Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include <cfloat> +#include <cmath> +#include <cstdio> +#include <sstream> +#include <string> +#include <tuple> + +#include <gmock/gmock.h> +#include "SPIRV/hex_float.h" + +namespace { +using ::testing::Eq; +using spvutils::BitwiseCast; +using spvutils::Float16; +using spvutils::FloatProxy; +using spvutils::HexFloat; +using spvutils::ParseNormalFloat; + +// In this file "encode" means converting a number into a string, +// and "decode" means converting a string into a number. + +using HexFloatTest = + ::testing::TestWithParam<std::pair<FloatProxy<float>, std::string>>; +using DecodeHexFloatTest = + ::testing::TestWithParam<std::pair<std::string, FloatProxy<float>>>; +using HexDoubleTest = + ::testing::TestWithParam<std::pair<FloatProxy<double>, std::string>>; +using DecodeHexDoubleTest = + ::testing::TestWithParam<std::pair<std::string, FloatProxy<double>>>; + +// Hex-encodes a float value. +template <typename T> +std::string EncodeViaHexFloat(const T& value) { + std::stringstream ss; + ss << spvutils::HexFloat<T>(value); + return ss.str(); +} + +// The following two tests can't be DRY because they take different parameter +// types. + +TEST_P(HexFloatTest, EncodeCorrectly) { + EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); +} + +TEST_P(HexDoubleTest, EncodeCorrectly) { + EXPECT_THAT(EncodeViaHexFloat(GetParam().first), Eq(GetParam().second)); +} + +// Decodes a hex-float string. +template <typename T> +FloatProxy<T> Decode(const std::string& str) { + spvutils::HexFloat<FloatProxy<T>> decoded(0.f); + EXPECT_TRUE((std::stringstream(str) >> decoded).eof()); + return decoded.value(); +} + +TEST_P(HexFloatTest, DecodeCorrectly) { + EXPECT_THAT(Decode<float>(GetParam().second), Eq(GetParam().first)); +} + +TEST_P(HexDoubleTest, DecodeCorrectly) { + EXPECT_THAT(Decode<double>(GetParam().second), Eq(GetParam().first)); +} + +INSTANTIATE_TEST_CASE_P( + Float32Tests, HexFloatTest, + ::testing::ValuesIn(std::vector<std::pair<FloatProxy<float>, std::string>>({ + {0.f, "0x0p+0"}, + {1.f, "0x1p+0"}, + {2.f, "0x1p+1"}, + {3.f, "0x1.8p+1"}, + {0.5f, "0x1p-1"}, + {0.25f, "0x1p-2"}, + {0.75f, "0x1.8p-1"}, + {-0.f, "-0x0p+0"}, + {-1.f, "-0x1p+0"}, + {-0.5f, "-0x1p-1"}, + {-0.25f, "-0x1p-2"}, + {-0.75f, "-0x1.8p-1"}, + + // Larger numbers + {512.f, "0x1p+9"}, + {-512.f, "-0x1p+9"}, + {1024.f, "0x1p+10"}, + {-1024.f, "-0x1p+10"}, + {1024.f + 8.f, "0x1.02p+10"}, + {-1024.f - 8.f, "-0x1.02p+10"}, + + // Small numbers + {1.0f / 512.f, "0x1p-9"}, + {1.0f / -512.f, "-0x1p-9"}, + {1.0f / 1024.f, "0x1p-10"}, + {1.0f / -1024.f, "-0x1p-10"}, + {1.0f / 1024.f + 1.0f / 8.f, "0x1.02p-3"}, + {1.0f / -1024.f - 1.0f / 8.f, "-0x1.02p-3"}, + + // lowest non-denorm + {float(ldexp(1.0f, -126)), "0x1p-126"}, + {float(ldexp(-1.0f, -126)), "-0x1p-126"}, + + // Denormalized values + {float(ldexp(1.0f, -127)), "0x1p-127"}, + {float(ldexp(1.0f, -127) / 2.0f), "0x1p-128"}, + {float(ldexp(1.0f, -127) / 4.0f), "0x1p-129"}, + {float(ldexp(1.0f, -127) / 8.0f), "0x1p-130"}, + {float(ldexp(-1.0f, -127)), "-0x1p-127"}, + {float(ldexp(-1.0f, -127) / 2.0f), "-0x1p-128"}, + {float(ldexp(-1.0f, -127) / 4.0f), "-0x1p-129"}, + {float(ldexp(-1.0f, -127) / 8.0f), "-0x1p-130"}, + + {float(ldexp(1.0, -127) + (ldexp(1.0, -127) / 2.0f)), "0x1.8p-127"}, + {float(ldexp(1.0, -127) / 2.0 + (ldexp(1.0, -127) / 4.0f)), + "0x1.8p-128"}, + + })),); + +INSTANTIATE_TEST_CASE_P( + Float32NanTests, HexFloatTest, + ::testing::ValuesIn(std::vector<std::pair<FloatProxy<float>, std::string>>({ + // Various NAN and INF cases + {uint32_t(0xFF800000), "-0x1p+128"}, // -inf + {uint32_t(0x7F800000), "0x1p+128"}, // inf + {uint32_t(0xFFC00000), "-0x1.8p+128"}, // -nan + {uint32_t(0xFF800100), "-0x1.0002p+128"}, // -nan + {uint32_t(0xFF800c00), "-0x1.0018p+128"}, // -nan + {uint32_t(0xFF80F000), "-0x1.01ep+128"}, // -nan + {uint32_t(0xFFFFFFFF), "-0x1.fffffep+128"}, // -nan + {uint32_t(0x7FC00000), "0x1.8p+128"}, // +nan + {uint32_t(0x7F800100), "0x1.0002p+128"}, // +nan + {uint32_t(0x7f800c00), "0x1.0018p+128"}, // +nan + {uint32_t(0x7F80F000), "0x1.01ep+128"}, // +nan + {uint32_t(0x7FFFFFFF), "0x1.fffffep+128"}, // +nan + })),); + +INSTANTIATE_TEST_CASE_P( + Float64Tests, HexDoubleTest, + ::testing::ValuesIn( + std::vector<std::pair<FloatProxy<double>, std::string>>({ + {0., "0x0p+0"}, + {1., "0x1p+0"}, + {2., "0x1p+1"}, + {3., "0x1.8p+1"}, + {0.5, "0x1p-1"}, + {0.25, "0x1p-2"}, + {0.75, "0x1.8p-1"}, + {-0., "-0x0p+0"}, + {-1., "-0x1p+0"}, + {-0.5, "-0x1p-1"}, + {-0.25, "-0x1p-2"}, + {-0.75, "-0x1.8p-1"}, + + // Larger numbers + {512., "0x1p+9"}, + {-512., "-0x1p+9"}, + {1024., "0x1p+10"}, + {-1024., "-0x1p+10"}, + {1024. + 8., "0x1.02p+10"}, + {-1024. - 8., "-0x1.02p+10"}, + + // Large outside the range of normal floats + {ldexp(1.0, 128), "0x1p+128"}, + {ldexp(1.0, 129), "0x1p+129"}, + {ldexp(-1.0, 128), "-0x1p+128"}, + {ldexp(-1.0, 129), "-0x1p+129"}, + {ldexp(1.0, 128) + ldexp(1.0, 90), "0x1.0000000004p+128"}, + {ldexp(1.0, 129) + ldexp(1.0, 120), "0x1.008p+129"}, + {ldexp(-1.0, 128) + ldexp(1.0, 90), "-0x1.fffffffff8p+127"}, + {ldexp(-1.0, 129) + ldexp(1.0, 120), "-0x1.ffp+128"}, + + // Small numbers + {1.0 / 512., "0x1p-9"}, + {1.0 / -512., "-0x1p-9"}, + {1.0 / 1024., "0x1p-10"}, + {1.0 / -1024., "-0x1p-10"}, + {1.0 / 1024. + 1.0 / 8., "0x1.02p-3"}, + {1.0 / -1024. - 1.0 / 8., "-0x1.02p-3"}, + + // Small outside the range of normal floats + {ldexp(1.0, -128), "0x1p-128"}, + {ldexp(1.0, -129), "0x1p-129"}, + {ldexp(-1.0, -128), "-0x1p-128"}, + {ldexp(-1.0, -129), "-0x1p-129"}, + {ldexp(1.0, -128) + ldexp(1.0, -90), "0x1.0000000004p-90"}, + {ldexp(1.0, -129) + ldexp(1.0, -120), "0x1.008p-120"}, + {ldexp(-1.0, -128) + ldexp(1.0, -90), "0x1.fffffffff8p-91"}, + {ldexp(-1.0, -129) + ldexp(1.0, -120), "0x1.ffp-121"}, + + // lowest non-denorm + {ldexp(1.0, -1022), "0x1p-1022"}, + {ldexp(-1.0, -1022), "-0x1p-1022"}, + + // Denormalized values + {ldexp(1.0, -1023), "0x1p-1023"}, + {ldexp(1.0, -1023) / 2.0, "0x1p-1024"}, + {ldexp(1.0, -1023) / 4.0, "0x1p-1025"}, + {ldexp(1.0, -1023) / 8.0, "0x1p-1026"}, + {ldexp(-1.0, -1024), "-0x1p-1024"}, + {ldexp(-1.0, -1024) / 2.0, "-0x1p-1025"}, + {ldexp(-1.0, -1024) / 4.0, "-0x1p-1026"}, + {ldexp(-1.0, -1024) / 8.0, "-0x1p-1027"}, + + {ldexp(1.0, -1023) + (ldexp(1.0, -1023) / 2.0), "0x1.8p-1023"}, + {ldexp(1.0, -1023) / 2.0 + (ldexp(1.0, -1023) / 4.0), + "0x1.8p-1024"}, + + })),); + +INSTANTIATE_TEST_CASE_P( + Float64NanTests, HexDoubleTest, + ::testing::ValuesIn(std::vector< + std::pair<FloatProxy<double>, std::string>>({ + // Various NAN and INF cases + {uint64_t(0xFFF0000000000000LL), "-0x1p+1024"}, //-inf + {uint64_t(0x7FF0000000000000LL), "0x1p+1024"}, //+inf + {uint64_t(0xFFF8000000000000LL), "-0x1.8p+1024"}, // -nan + {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, // -nan + {uint64_t(0xFFF0000000000001LL), "-0x1.0000000000001p+1024"}, // -nan + {uint64_t(0xFFF0000300000000LL), "-0x1.00003p+1024"}, // -nan + {uint64_t(0xFFFFFFFFFFFFFFFFLL), "-0x1.fffffffffffffp+1024"}, // -nan + {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, // +nan + {uint64_t(0x7FF0F00000000000LL), "0x1.0fp+1024"}, // +nan + {uint64_t(0x7FF0000000000001LL), "0x1.0000000000001p+1024"}, // -nan + {uint64_t(0x7FF0000300000000LL), "0x1.00003p+1024"}, // -nan + {uint64_t(0x7FFFFFFFFFFFFFFFLL), "0x1.fffffffffffffp+1024"}, // -nan + })),); + +TEST(HexFloatStreamTest, OperatorLeftShiftPreservesFloatAndFill) { + std::stringstream s; + s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " + << FloatProxy<float>(uint32_t(0xFF800100)) << " " << std::setw(4) << 9; + EXPECT_THAT(s.str(), Eq(std::string("xx10 -0x1.0002p+128 xx11"))); +} + +TEST(HexDoubleStreamTest, OperatorLeftShiftPreservesFloatAndFill) { + std::stringstream s; + s << std::setw(4) << std::oct << std::setfill('x') << 8 << " " + << FloatProxy<double>(uint64_t(0x7FF0F00000000000LL)) << " " << std::setw(4) + << 9; + EXPECT_THAT(s.str(), Eq(std::string("xx10 0x1.0fp+1024 xx11"))); +} + +TEST_P(DecodeHexFloatTest, DecodeCorrectly) { + EXPECT_THAT(Decode<float>(GetParam().first), Eq(GetParam().second)); +} + +TEST_P(DecodeHexDoubleTest, DecodeCorrectly) { + EXPECT_THAT(Decode<double>(GetParam().first), Eq(GetParam().second)); +} + +INSTANTIATE_TEST_CASE_P( + Float32DecodeTests, DecodeHexFloatTest, + ::testing::ValuesIn(std::vector<std::pair<std::string, FloatProxy<float>>>({ + {"0x0p+000", 0.f}, + {"0x0p0", 0.f}, + {"0x0p-0", 0.f}, + + // flush to zero cases + {"0x1p-500", 0.f}, // Exponent underflows. + {"-0x1p-500", -0.f}, + {"0x0.00000000001p-126", 0.f}, // Fraction causes underflow. + {"-0x0.0000000001p-127", -0.f}, + {"-0x0.01p-142", -0.f}, // Fraction causes additional underflow. + {"0x0.01p-142", 0.f}, + + // Some floats that do not encode the same way as they decode. + {"0x2p+0", 2.f}, + {"0xFFp+0", 255.f}, + {"0x0.8p+0", 0.5f}, + {"0x0.4p+0", 0.25f}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float32DecodeInfTests, DecodeHexFloatTest, + ::testing::ValuesIn(std::vector<std::pair<std::string, FloatProxy<float>>>({ + // inf cases + {"-0x1p+128", uint32_t(0xFF800000)}, // -inf + {"0x32p+127", uint32_t(0x7F800000)}, // inf + {"0x32p+500", uint32_t(0x7F800000)}, // inf + {"-0x32p+127", uint32_t(0xFF800000)}, // -inf + })),); + +INSTANTIATE_TEST_CASE_P( + Float64DecodeTests, DecodeHexDoubleTest, + ::testing::ValuesIn( + std::vector<std::pair<std::string, FloatProxy<double>>>({ + {"0x0p+000", 0.}, + {"0x0p0", 0.}, + {"0x0p-0", 0.}, + + // flush to zero cases + {"0x1p-5000", 0.}, // Exponent underflows. + {"-0x1p-5000", -0.}, + {"0x0.0000000000000001p-1023", 0.}, // Fraction causes underflow. + {"-0x0.000000000000001p-1024", -0.}, + {"-0x0.01p-1090", -0.f}, // Fraction causes additional underflow. + {"0x0.01p-1090", 0.}, + + // Some floats that do not encode the same way as they decode. + {"0x2p+0", 2.}, + {"0xFFp+0", 255.}, + {"0x0.8p+0", 0.5}, + {"0x0.4p+0", 0.25}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float64DecodeInfTests, DecodeHexDoubleTest, + ::testing::ValuesIn( + std::vector<std::pair<std::string, FloatProxy<double>>>({ + // inf cases + {"-0x1p+1024", uint64_t(0xFFF0000000000000)}, // -inf + {"0x32p+1023", uint64_t(0x7FF0000000000000)}, // inf + {"0x32p+5000", uint64_t(0x7FF0000000000000)}, // inf + {"-0x32p+1023", uint64_t(0xFFF0000000000000)}, // -inf + })),); + +TEST(FloatProxy, ValidConversion) { + EXPECT_THAT(FloatProxy<float>(1.f).getAsFloat(), Eq(1.0f)); + EXPECT_THAT(FloatProxy<float>(32.f).getAsFloat(), Eq(32.0f)); + EXPECT_THAT(FloatProxy<float>(-1.f).getAsFloat(), Eq(-1.0f)); + EXPECT_THAT(FloatProxy<float>(0.f).getAsFloat(), Eq(0.0f)); + EXPECT_THAT(FloatProxy<float>(-0.f).getAsFloat(), Eq(-0.0f)); + EXPECT_THAT(FloatProxy<float>(1.2e32f).getAsFloat(), Eq(1.2e32f)); + + EXPECT_TRUE(std::isinf(FloatProxy<float>(uint32_t(0xFF800000)).getAsFloat())); + EXPECT_TRUE(std::isinf(FloatProxy<float>(uint32_t(0x7F800000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0xFFC00000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0xFF800100)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0xFF800c00)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0xFF80F000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0xFFFFFFFF)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0x7FC00000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0x7F800100)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0x7f800c00)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0x7F80F000)).getAsFloat())); + EXPECT_TRUE(std::isnan(FloatProxy<float>(uint32_t(0x7FFFFFFF)).getAsFloat())); + + EXPECT_THAT(FloatProxy<float>(uint32_t(0xFF800000)).data(), Eq(0xFF800000u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0x7F800000)).data(), Eq(0x7F800000u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0xFFC00000)).data(), Eq(0xFFC00000u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0xFF800100)).data(), Eq(0xFF800100u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0xFF800c00)).data(), Eq(0xFF800c00u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0xFF80F000)).data(), Eq(0xFF80F000u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0xFFFFFFFF)).data(), Eq(0xFFFFFFFFu)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0x7FC00000)).data(), Eq(0x7FC00000u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0x7F800100)).data(), Eq(0x7F800100u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0x7f800c00)).data(), Eq(0x7f800c00u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0x7F80F000)).data(), Eq(0x7F80F000u)); + EXPECT_THAT(FloatProxy<float>(uint32_t(0x7FFFFFFF)).data(), Eq(0x7FFFFFFFu)); +} + +TEST(FloatProxy, Nan) { + EXPECT_TRUE(FloatProxy<float>(uint32_t(0xFFC00000)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0xFF800100)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0xFF800c00)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0xFF80F000)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0xFFFFFFFF)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0x7FC00000)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0x7F800100)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0x7f800c00)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0x7F80F000)).isNan()); + EXPECT_TRUE(FloatProxy<float>(uint32_t(0x7FFFFFFF)).isNan()); +} + +TEST(FloatProxy, Negation) { + EXPECT_THAT((-FloatProxy<float>(1.f)).getAsFloat(), Eq(-1.0f)); + EXPECT_THAT((-FloatProxy<float>(0.f)).getAsFloat(), Eq(-0.0f)); + + EXPECT_THAT((-FloatProxy<float>(-1.f)).getAsFloat(), Eq(1.0f)); + EXPECT_THAT((-FloatProxy<float>(-0.f)).getAsFloat(), Eq(0.0f)); + + EXPECT_THAT((-FloatProxy<float>(32.f)).getAsFloat(), Eq(-32.0f)); + EXPECT_THAT((-FloatProxy<float>(-32.f)).getAsFloat(), Eq(32.0f)); + + EXPECT_THAT((-FloatProxy<float>(1.2e32f)).getAsFloat(), Eq(-1.2e32f)); + EXPECT_THAT((-FloatProxy<float>(-1.2e32f)).getAsFloat(), Eq(1.2e32f)); + + EXPECT_THAT( + (-FloatProxy<float>(std::numeric_limits<float>::infinity())).getAsFloat(), + Eq(-std::numeric_limits<float>::infinity())); + EXPECT_THAT((-FloatProxy<float>(-std::numeric_limits<float>::infinity())) + .getAsFloat(), + Eq(std::numeric_limits<float>::infinity())); +} + +// Test conversion of FloatProxy values to strings. +// +// In previous cases, we always wrapped the FloatProxy value in a HexFloat +// before conversion to a string. In the following cases, the FloatProxy +// decides for itself whether to print as a regular number or as a hex float. + +using FloatProxyFloatTest = + ::testing::TestWithParam<std::pair<FloatProxy<float>, std::string>>; +using FloatProxyDoubleTest = + ::testing::TestWithParam<std::pair<FloatProxy<double>, std::string>>; + +// Converts a float value to a string via a FloatProxy. +template <typename T> +std::string EncodeViaFloatProxy(const T& value) { + std::stringstream ss; + ss << value; + return ss.str(); +} + +// Converts a floating point string so that the exponent prefix +// is 'e', and the exponent value does not have leading zeros. +// The Microsoft runtime library likes to write things like "2.5E+010". +// Convert that to "2.5e+10". +// We don't care what happens to strings that are not floating point +// strings. +std::string NormalizeExponentInFloatString(std::string in) { + std::string result; + // Reserve one spot for the terminating null, even when the sscanf fails. + std::vector<char> prefix(in.size() + 1); + char e; + char plus_or_minus; + int exponent; // in base 10 + if ((4 == std::sscanf(in.c_str(), "%[-+.0123456789]%c%c%d", prefix.data(), &e, + &plus_or_minus, &exponent)) && + (e == 'e' || e == 'E') && + (plus_or_minus == '-' || plus_or_minus == '+')) { + // It looks like a floating point value with exponent. + std::stringstream out; + out << prefix.data() << 'e' << plus_or_minus << exponent; + result = out.str(); + } else { + result = in; + } + return result; +} + +TEST(NormalizeFloat, Sample) { + EXPECT_THAT(NormalizeExponentInFloatString(""), Eq("")); + EXPECT_THAT(NormalizeExponentInFloatString("1e-12"), Eq("1e-12")); + EXPECT_THAT(NormalizeExponentInFloatString("1E+14"), Eq("1e+14")); + EXPECT_THAT(NormalizeExponentInFloatString("1e-0012"), Eq("1e-12")); + EXPECT_THAT(NormalizeExponentInFloatString("1.263E+014"), Eq("1.263e+14")); +} + +// The following two tests can't be DRY because they take different parameter +// types. +TEST_P(FloatProxyFloatTest, EncodeCorrectly) { + EXPECT_THAT( + NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), + Eq(GetParam().second)); +} + +TEST_P(FloatProxyDoubleTest, EncodeCorrectly) { + EXPECT_THAT( + NormalizeExponentInFloatString(EncodeViaFloatProxy(GetParam().first)), + Eq(GetParam().second)); +} + +INSTANTIATE_TEST_CASE_P( + Float32Tests, FloatProxyFloatTest, + ::testing::ValuesIn(std::vector<std::pair<FloatProxy<float>, std::string>>({ + // Zero + {0.f, "0"}, + // Normal numbers + {1.f, "1"}, + {-0.25f, "-0.25"}, + {1000.0f, "1000"}, + + // Still normal numbers, but with large magnitude exponents. + {float(ldexp(1.f, 126)), "8.50706e+37"}, + {float(ldexp(-1.f, -126)), "-1.17549e-38"}, + + // denormalized values are printed as hex floats. + {float(ldexp(1.0f, -127)), "0x1p-127"}, + {float(ldexp(1.5f, -128)), "0x1.8p-128"}, + {float(ldexp(1.25, -129)), "0x1.4p-129"}, + {float(ldexp(1.125, -130)), "0x1.2p-130"}, + {float(ldexp(-1.0f, -127)), "-0x1p-127"}, + {float(ldexp(-1.0f, -128)), "-0x1p-128"}, + {float(ldexp(-1.0f, -129)), "-0x1p-129"}, + {float(ldexp(-1.5f, -130)), "-0x1.8p-130"}, + + // NaNs + {FloatProxy<float>(uint32_t(0xFFC00000)), "-0x1.8p+128"}, + {FloatProxy<float>(uint32_t(0xFF800100)), "-0x1.0002p+128"}, + + {std::numeric_limits<float>::infinity(), "0x1p+128"}, + {-std::numeric_limits<float>::infinity(), "-0x1p+128"}, + })),); + +INSTANTIATE_TEST_CASE_P( + Float64Tests, FloatProxyDoubleTest, + ::testing::ValuesIn( + std::vector<std::pair<FloatProxy<double>, std::string>>({ + {0., "0"}, + {1., "1"}, + {-0.25, "-0.25"}, + {1000.0, "1000"}, + + // Large outside the range of normal floats + {ldexp(1.0, 128), "3.40282366920938e+38"}, + {ldexp(1.5, 129), "1.02084710076282e+39"}, + {ldexp(-1.0, 128), "-3.40282366920938e+38"}, + {ldexp(-1.5, 129), "-1.02084710076282e+39"}, + + // Small outside the range of normal floats + {ldexp(1.5, -129), "2.20405190779179e-39"}, + {ldexp(-1.5, -129), "-2.20405190779179e-39"}, + + // lowest non-denorm + {ldexp(1.0, -1022), "2.2250738585072e-308"}, + {ldexp(-1.0, -1022), "-2.2250738585072e-308"}, + + // Denormalized values + {ldexp(1.125, -1023), "0x1.2p-1023"}, + {ldexp(-1.375, -1024), "-0x1.6p-1024"}, + + // NaNs + {uint64_t(0x7FF8000000000000LL), "0x1.8p+1024"}, + {uint64_t(0xFFF0F00000000000LL), "-0x1.0fp+1024"}, + + // Infinity + {std::numeric_limits<double>::infinity(), "0x1p+1024"}, + {-std::numeric_limits<double>::infinity(), "-0x1p+1024"}, + + })),); + +// double is used so that unbiased_exponent can be used with the output +// of ldexp directly. +int32_t unbiased_exponent(double f) { + return spvutils::HexFloat<spvutils::FloatProxy<float>>( + static_cast<float>(f)).getUnbiasedNormalizedExponent(); +} + +int16_t unbiased_half_exponent(uint16_t f) { + return spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>>(f) + .getUnbiasedNormalizedExponent(); +} + +TEST(HexFloatOperationTest, UnbiasedExponent) { + // Float cases + EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, 0))); + EXPECT_EQ(-32, unbiased_exponent(ldexp(1.0f, -32))); + EXPECT_EQ(42, unbiased_exponent(ldexp(1.0f, 42))); + EXPECT_EQ(125, unbiased_exponent(ldexp(1.0f, 125))); + // Saturates to 128 + EXPECT_EQ(128, unbiased_exponent(ldexp(1.0f, 256))); + + EXPECT_EQ(-100, unbiased_exponent(ldexp(1.0f, -100))); + EXPECT_EQ(-127, unbiased_exponent(ldexp(1.0f, -127))); // First denorm + EXPECT_EQ(-128, unbiased_exponent(ldexp(1.0f, -128))); + EXPECT_EQ(-129, unbiased_exponent(ldexp(1.0f, -129))); + EXPECT_EQ(-140, unbiased_exponent(ldexp(1.0f, -140))); + // Smallest representable number + EXPECT_EQ(-126 - 23, unbiased_exponent(ldexp(1.0f, -126 - 23))); + // Should get rounded to 0 first. + EXPECT_EQ(0, unbiased_exponent(ldexp(1.0f, -127 - 23))); + + // Float16 cases + // The exponent is represented in the bits 0x7C00 + // The offset is -15 + EXPECT_EQ(0, unbiased_half_exponent(0x3C00)); + EXPECT_EQ(3, unbiased_half_exponent(0x4800)); + EXPECT_EQ(-1, unbiased_half_exponent(0x3800)); + EXPECT_EQ(-14, unbiased_half_exponent(0x0400)); + EXPECT_EQ(16, unbiased_half_exponent(0x7C00)); + EXPECT_EQ(10, unbiased_half_exponent(0x6400)); + + // Smallest representable number + EXPECT_EQ(-24, unbiased_half_exponent(0x0001)); +} + +// Creates a float that is the sum of 1/(2 ^ fractions[i]) for i in factions +float float_fractions(const std::vector<uint32_t>& fractions) { + float f = 0; + for(int32_t i: fractions) { + f += std::ldexp(1.0f, -i); + } + return f; +} + +// Returns the normalized significand of a HexFloat<FloatProxy<float>> +// that was created by calling float_fractions with the input fractions, +// raised to the power of exp. +uint32_t normalized_significand(const std::vector<uint32_t>& fractions, uint32_t exp) { + return spvutils::HexFloat<spvutils::FloatProxy<float>>( + static_cast<float>(ldexp(float_fractions(fractions), exp))) + .getNormalizedSignificand(); +} + +// Sets the bits from MSB to LSB of the significand part of a float. +// For example 0 would set the bit 23 (counting from LSB to MSB), +// and 1 would set the 22nd bit. +uint32_t bits_set(const std::vector<uint32_t>& bits) { + const uint32_t top_bit = 1u << 22u; + uint32_t val= 0; + for(uint32_t i: bits) { + val |= top_bit >> i; + } + return val; +} + +// The same as bits_set but for a Float16 value instead of 32-bit floating +// point. +uint16_t half_bits_set(const std::vector<uint32_t>& bits) { + const uint32_t top_bit = 1u << 9u; + uint32_t val= 0; + for(uint32_t i: bits) { + val |= top_bit >> i; + } + return static_cast<uint16_t>(val); +} + +TEST(HexFloatOperationTest, NormalizedSignificand) { + // For normalized numbers (the following) it should be a simple matter + // of getting rid of the top implicit bit + EXPECT_EQ(bits_set({}), normalized_significand({0}, 0)); + EXPECT_EQ(bits_set({0}), normalized_significand({0, 1}, 0)); + EXPECT_EQ(bits_set({0, 1}), normalized_significand({0, 1, 2}, 0)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 0)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 32)); + EXPECT_EQ(bits_set({1}), normalized_significand({0, 2}, 126)); + + // For denormalized numbers we expect the normalized significand to + // shift as if it were normalized. This means, in practice that the + // top_most set bit will be cut off. Looks very similar to above (on purpose) + EXPECT_EQ(bits_set({}), normalized_significand({0}, -127)); + EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -128)); + EXPECT_EQ(bits_set({3}), normalized_significand({0, 4}, -127)); + EXPECT_EQ(bits_set({}), normalized_significand({22}, -127)); + EXPECT_EQ(bits_set({0}), normalized_significand({21, 22}, -127)); +} + +// Returns the 32-bit floating point value created by +// calling setFromSignUnbiasedExponentAndNormalizedSignificand +// on a HexFloat<FloatProxy<float>> +float set_from_sign(bool negative, int32_t unbiased_exponent, + uint32_t significand, bool round_denorm_up) { + spvutils::HexFloat<spvutils::FloatProxy<float>> f(0.f); + f.setFromSignUnbiasedExponentAndNormalizedSignificand( + negative, unbiased_exponent, significand, round_denorm_up); + return f.value().getAsFloat(); +} + +TEST(HexFloatOperationTests, + SetFromSignUnbiasedExponentAndNormalizedSignificand) { + + EXPECT_EQ(1.f, set_from_sign(false, 0, 0, false)); + + // Tests insertion of various denormalized numbers with and without round up. + EXPECT_EQ(static_cast<float>(ldexp(1.f, -149)), set_from_sign(false, -149, 0, false)); + EXPECT_EQ(static_cast<float>(ldexp(1.f, -149)), set_from_sign(false, -149, 0, true)); + EXPECT_EQ(0.f, set_from_sign(false, -150, 1, false)); + EXPECT_EQ(static_cast<float>(ldexp(1.f, -149)), set_from_sign(false, -150, 1, true)); + + EXPECT_EQ(ldexp(1.0f, -127), set_from_sign(false, -127, 0, false)); + EXPECT_EQ(ldexp(1.0f, -128), set_from_sign(false, -128, 0, false)); + EXPECT_EQ(float_fractions({0, 1, 2, 5}), + set_from_sign(false, 0, bits_set({0, 1, 4}), false)); + EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -32), + set_from_sign(false, -32, bits_set({0, 1, 4}), false)); + EXPECT_EQ(ldexp(float_fractions({0, 1, 2, 5}), -128), + set_from_sign(false, -128, bits_set({0, 1, 4}), false)); + + // The negative cases from above. + EXPECT_EQ(-1.f, set_from_sign(true, 0, 0, false)); + EXPECT_EQ(-ldexp(1.0, -127), set_from_sign(true, -127, 0, false)); + EXPECT_EQ(-ldexp(1.0, -128), set_from_sign(true, -128, 0, false)); + EXPECT_EQ(-float_fractions({0, 1, 2, 5}), + set_from_sign(true, 0, bits_set({0, 1, 4}), false)); + EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -32), + set_from_sign(true, -32, bits_set({0, 1, 4}), false)); + EXPECT_EQ(-ldexp(float_fractions({0, 1, 2, 5}), -128), + set_from_sign(true, -128, bits_set({0, 1, 4}), false)); +} + +TEST(HexFloatOperationTests, NonRounding) { + // Rounding from 32-bit hex-float to 32-bit hex-float should be trivial, + // except in the denorm case which is a bit more complex. + using HF = spvutils::HexFloat<spvutils::FloatProxy<float>>; + bool carry_bit = false; + + spvutils::round_direction rounding[] = { + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; + + // Everything fits, so this should be straight-forward + for (spvutils::round_direction round : rounding) { + EXPECT_EQ(bits_set({}), HF(0.f).getRoundedNormalizedSignificand<HF>( + round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ(bits_set({0}), + HF(float_fractions({0, 1})) + .getRoundedNormalizedSignificand<HF>(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ(bits_set({1, 3}), + HF(float_fractions({0, 2, 4})) + .getRoundedNormalizedSignificand<HF>(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ( + bits_set({0, 1, 4}), + HF(static_cast<float>(-ldexp(float_fractions({0, 1, 2, 5}), -128))) + .getRoundedNormalizedSignificand<HF>(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + + EXPECT_EQ( + bits_set({0, 1, 4, 22}), + HF(static_cast<float>(float_fractions({0, 1, 2, 5, 23}))) + .getRoundedNormalizedSignificand<HF>(round, &carry_bit)); + EXPECT_FALSE(carry_bit); + } +} + +struct RoundSignificandCase { + float source_float; + std::pair<int16_t, bool> expected_results; + spvutils::round_direction round; +}; + +using HexFloatRoundTest = + ::testing::TestWithParam<RoundSignificandCase>; + +TEST_P(HexFloatRoundTest, RoundDownToFP16) { + using HF = spvutils::HexFloat<spvutils::FloatProxy<float>>; + using HF16 = spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>>; + + HF input_value(GetParam().source_float); + bool carry_bit = false; + EXPECT_EQ(GetParam().expected_results.first, + input_value.getRoundedNormalizedSignificand<HF16>( + GetParam().round, &carry_bit)); + EXPECT_EQ(carry_bit, GetParam().expected_results.second); +} + +// clang-format off +INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatRoundTest, + ::testing::ValuesIn(std::vector<RoundSignificandCase>( + { + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToZero}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNearestEven}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0}), std::make_pair(half_bits_set({}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNearestEven}, + + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 10, 11}), std::make_pair(half_bits_set({0, 8}), false), spvutils::kRoundToNearestEven}, + + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, + + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToPositiveInfinity}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNegativeInfinity}, + {-float_fractions({0, 1, 11, 12}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, + + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 11, 22}), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, + + // Carries + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToZero}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToPositiveInfinity}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), false), spvutils::kRoundToNegativeInfinity}, + {float_fractions({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}), std::make_pair(half_bits_set({}), true), spvutils::kRoundToNearestEven}, + + // Cases where original number was denorm. Note: this should have no effect + // the number is pre-normalized. + {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -128)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToZero}, + {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -129)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToPositiveInfinity}, + {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -131)), std::make_pair(half_bits_set({0}), false), spvutils::kRoundToNegativeInfinity}, + {static_cast<float>(ldexp(float_fractions({0, 1, 11, 13}), -130)), std::make_pair(half_bits_set({0, 9}), false), spvutils::kRoundToNearestEven}, + })),); +// clang-format on + +struct UpCastSignificandCase { + uint16_t source_half; + uint32_t expected_result; +}; + +using HexFloatRoundUpSignificandTest = + ::testing::TestWithParam<UpCastSignificandCase>; +TEST_P(HexFloatRoundUpSignificandTest, Widening) { + using HF = spvutils::HexFloat<spvutils::FloatProxy<float>>; + using HF16 = spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>>; + bool carry_bit = false; + + spvutils::round_direction rounding[] = { + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + carry_bit = false; + HF16 input_value(GetParam().source_half); + EXPECT_EQ( + GetParam().expected_result, + input_value.getRoundedNormalizedSignificand<HF>(round, &carry_bit)) + << std::hex << "0x" + << input_value.getRoundedNormalizedSignificand<HF>(round, &carry_bit) + << " 0x" << GetParam().expected_result; + EXPECT_FALSE(carry_bit); + } +} + +INSTANTIATE_TEST_CASE_P(F16toF32, HexFloatRoundUpSignificandTest, + // 0xFC00 of the source 16-bit hex value cover the sign and the exponent. + // They are ignored for this test. + ::testing::ValuesIn(std::vector<UpCastSignificandCase>( + { + {0x3F00, 0x600000}, + {0x0F00, 0x600000}, + {0x0F01, 0x602000}, + {0x0FFF, 0x7FE000}, + })),); + +struct DownCastTest { + float source_float; + uint16_t expected_half; + std::vector<spvutils::round_direction> directions; +}; + +std::string get_round_text(spvutils::round_direction direction) { +#define CASE(round_direction) \ + case round_direction: \ + return #round_direction + + switch (direction) { + CASE(spvutils::kRoundToZero); + CASE(spvutils::kRoundToPositiveInfinity); + CASE(spvutils::kRoundToNegativeInfinity); + CASE(spvutils::kRoundToNearestEven); + } +#undef CASE + return ""; +} + +using HexFloatFP32To16Tests = ::testing::TestWithParam<DownCastTest>; + +TEST_P(HexFloatFP32To16Tests, NarrowingCasts) { + using HF = spvutils::HexFloat<spvutils::FloatProxy<float>>; + using HF16 = spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>>; + HF f(GetParam().source_float); + for (auto round : GetParam().directions) { + HF16 half(0); + f.castTo(half, round); + EXPECT_EQ(GetParam().expected_half, half.value().getAsFloat().get_value()) + << get_round_text(round) << " " << std::hex + << spvutils::BitwiseCast<uint32_t>(GetParam().source_float) + << " cast to: " << half.value().getAsFloat().get_value(); + } +} + +const uint16_t positive_infinity = 0x7C00; +const uint16_t negative_infinity = 0xFC00; + +INSTANTIATE_TEST_CASE_P(F32ToF16, HexFloatFP32To16Tests, + ::testing::ValuesIn(std::vector<DownCastTest>( + { + // Exactly representable as half. + {0.f, 0x0, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-0.f, 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {1.0f, 0x3C00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-1.0f, 0xBC00, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + {float_fractions({0, 1, 10}) , 0x3E01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-float_fractions({0, 1, 10}) , 0xBE01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(ldexp(float_fractions({0, 1, 10}), 3)), 0x4A01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(-ldexp(float_fractions({0, 1, 10}), 3)), 0xCA01, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + + // Underflow + {static_cast<float>(ldexp(1.0f, -25)), 0x0, {spvutils::kRoundToZero, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(ldexp(1.0f, -25)), 0x1, {spvutils::kRoundToPositiveInfinity}}, + {static_cast<float>(-ldexp(1.0f, -25)), 0x8000, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(-ldexp(1.0f, -25)), 0x8001, {spvutils::kRoundToNegativeInfinity}}, + {static_cast<float>(ldexp(1.0f, -24)), 0x1, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + // Overflow + {static_cast<float>(ldexp(1.0f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(ldexp(1.0f, 18)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(ldexp(1.3f, 16)), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(-ldexp(1.0f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(-ldexp(1.0f, 18)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {static_cast<float>(-ldexp(1.3f, 16)), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + // Transfer of Infinities + {std::numeric_limits<float>::infinity(), positive_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + {-std::numeric_limits<float>::infinity(), negative_infinity, {spvutils::kRoundToZero, spvutils::kRoundToPositiveInfinity, spvutils::kRoundToNegativeInfinity, spvutils::kRoundToNearestEven}}, + + // Nans are below because we cannot test for equality. + })),); + +struct UpCastCase{ + uint16_t source_half; + float expected_float; +}; + +using HexFloatFP16To32Tests = ::testing::TestWithParam<UpCastCase>; +TEST_P(HexFloatFP16To32Tests, WideningCasts) { + using HF = spvutils::HexFloat<spvutils::FloatProxy<float>>; + using HF16 = spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>>; + HF16 f(GetParam().source_half); + + spvutils::round_direction rounding[] = { + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + HF flt(0.f); + f.castTo(flt, round); + EXPECT_EQ(GetParam().expected_float, flt.value().getAsFloat()) + << get_round_text(round) << " " << std::hex + << spvutils::BitwiseCast<uint16_t>(GetParam().source_half) + << " cast to: " << flt.value().getAsFloat(); + } +} + +INSTANTIATE_TEST_CASE_P(F16ToF32, HexFloatFP16To32Tests, + ::testing::ValuesIn(std::vector<UpCastCase>( + { + {0x0000, 0.f}, + {0x8000, -0.f}, + {0x3C00, 1.0f}, + {0xBC00, -1.0f}, + {0x3F00, float_fractions({0, 1, 2})}, + {0xBF00, -float_fractions({0, 1, 2})}, + {0x3F01, float_fractions({0, 1, 2, 10})}, + {0xBF01, -float_fractions({0, 1, 2, 10})}, + + // denorm + {0x0001, static_cast<float>(ldexp(1.0, -24))}, + {0x0002, static_cast<float>(ldexp(1.0, -23))}, + {0x8001, static_cast<float>(-ldexp(1.0, -24))}, + {0x8011, static_cast<float>(-ldexp(1.0, -20) + -ldexp(1.0, -24))}, + + // inf + {0x7C00, std::numeric_limits<float>::infinity()}, + {0xFC00, -std::numeric_limits<float>::infinity()}, + })),); + +TEST(HexFloatOperationTests, NanTests) { + using HF = spvutils::HexFloat<spvutils::FloatProxy<float>>; + using HF16 = spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>>; + spvutils::round_direction rounding[] = { + spvutils::kRoundToZero, + spvutils::kRoundToNearestEven, + spvutils::kRoundToPositiveInfinity, + spvutils::kRoundToNegativeInfinity}; + + // Everything fits, so everything should just be bit-shifts. + for (spvutils::round_direction round : rounding) { + HF16 f16(0); + HF f(0.f); + HF(std::numeric_limits<float>::quiet_NaN()).castTo(f16, round); + EXPECT_TRUE(f16.value().isNan()); + HF(std::numeric_limits<float>::signaling_NaN()).castTo(f16, round); + EXPECT_TRUE(f16.value().isNan()); + + HF16(0x7C01).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0x7C11).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0xFC01).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0x7C10).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + HF16(0xFF00).castTo(f, round); + EXPECT_TRUE(f.value().isNan()); + } +} + +// A test case for parsing good and bad HexFloat<FloatProxy<T>> literals. +template <typename T> +struct FloatParseCase { + std::string literal; + bool negate_value; + bool expect_success; + HexFloat<FloatProxy<T>> expected_value; +}; + +using ParseNormalFloatTest = ::testing::TestWithParam<FloatParseCase<float>>; + +TEST_P(ParseNormalFloatTest, Samples) { + std::stringstream input(GetParam().literal); + HexFloat<FloatProxy<float>> parsed_value(0.0f); + ParseNormalFloat(input, GetParam().negate_value, parsed_value); + EXPECT_NE(GetParam().expect_success, input.fail()) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + if (GetParam().expect_success) { + EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + } +} + +// Returns a FloatParseCase with expected failure. +template <typename T> +FloatParseCase<T> BadFloatParseCase(std::string literal, bool negate_value, + T expected_value) { + HexFloat<FloatProxy<T>> proxy_expected_value(expected_value); + return FloatParseCase<T>{literal, negate_value, false, proxy_expected_value}; +} + +// Returns a FloatParseCase that should successfully parse to a given value. +template <typename T> +FloatParseCase<T> GoodFloatParseCase(std::string literal, bool negate_value, + T expected_value) { + HexFloat<FloatProxy<T>> proxy_expected_value(expected_value); + return FloatParseCase<T>{literal, negate_value, true, proxy_expected_value}; +} + +INSTANTIATE_TEST_CASE_P( + FloatParse, ParseNormalFloatTest, + ::testing::ValuesIn(std::vector<FloatParseCase<float>>{ + // Failing cases due to trivially incorrect syntax. + BadFloatParseCase("abc", false, 0.0f), + BadFloatParseCase("abc", true, 0.0f), + + // Valid cases. + GoodFloatParseCase("0", false, 0.0f), + GoodFloatParseCase("0.0", false, 0.0f), + GoodFloatParseCase("-0.0", false, -0.0f), + GoodFloatParseCase("2.0", false, 2.0f), + GoodFloatParseCase("-2.0", false, -2.0f), + GoodFloatParseCase("+2.0", false, 2.0f), + // Cases with negate_value being true. + GoodFloatParseCase("0.0", true, -0.0f), + GoodFloatParseCase("2.0", true, -2.0f), + + // When negate_value is true, we should not accept a + // leading minus or plus. + BadFloatParseCase("-0.0", true, 0.0f), + BadFloatParseCase("-2.0", true, 0.0f), + BadFloatParseCase("+0.0", true, 0.0f), + BadFloatParseCase("+2.0", true, 0.0f), + + // Overflow is an error for 32-bit float parsing. + BadFloatParseCase("1e40", false, FLT_MAX), + BadFloatParseCase("1e40", true, -FLT_MAX), + BadFloatParseCase("-1e40", false, -FLT_MAX), + // We can't have -1e40 and negate_value == true since + // that represents an original case of "--1e40" which + // is invalid. + }),); + +using ParseNormalFloat16Test = + ::testing::TestWithParam<FloatParseCase<Float16>>; + +TEST_P(ParseNormalFloat16Test, Samples) { + std::stringstream input(GetParam().literal); + HexFloat<FloatProxy<Float16>> parsed_value(0); + ParseNormalFloat(input, GetParam().negate_value, parsed_value); + EXPECT_NE(GetParam().expect_success, input.fail()) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + if (GetParam().expect_success) { + EXPECT_THAT(parsed_value.value(), Eq(GetParam().expected_value.value())) + << " literal: " << GetParam().literal + << " negate: " << GetParam().negate_value; + } +} + +INSTANTIATE_TEST_CASE_P( + Float16Parse, ParseNormalFloat16Test, + ::testing::ValuesIn(std::vector<FloatParseCase<Float16>>{ + // Failing cases due to trivially incorrect syntax. + BadFloatParseCase<Float16>("abc", false, uint16_t{0}), + BadFloatParseCase<Float16>("abc", true, uint16_t{0}), + + // Valid cases. + GoodFloatParseCase<Float16>("0", false, uint16_t{0}), + GoodFloatParseCase<Float16>("0.0", false, uint16_t{0}), + GoodFloatParseCase<Float16>("-0.0", false, uint16_t{0x8000}), + GoodFloatParseCase<Float16>("2.0", false, uint16_t{0x4000}), + GoodFloatParseCase<Float16>("-2.0", false, uint16_t{0xc000}), + GoodFloatParseCase<Float16>("+2.0", false, uint16_t{0x4000}), + // Cases with negate_value being true. + GoodFloatParseCase<Float16>("0.0", true, uint16_t{0x8000}), + GoodFloatParseCase<Float16>("2.0", true, uint16_t{0xc000}), + + // When negate_value is true, we should not accept a leading minus or + // plus. + BadFloatParseCase<Float16>("-0.0", true, uint16_t{0}), + BadFloatParseCase<Float16>("-2.0", true, uint16_t{0}), + BadFloatParseCase<Float16>("+0.0", true, uint16_t{0}), + BadFloatParseCase<Float16>("+2.0", true, uint16_t{0}), + }),); + +// A test case for detecting infinities. +template <typename T> +struct OverflowParseCase { + std::string input; + bool expect_success; + T expected_value; +}; + +using FloatProxyParseOverflowFloatTest = + ::testing::TestWithParam<OverflowParseCase<float>>; + +TEST_P(FloatProxyParseOverflowFloatTest, Sample) { + std::istringstream input(GetParam().input); + HexFloat<FloatProxy<float>> value(0.0f); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()); + if (GetParam().expect_success) { + EXPECT_THAT(value.value().getAsFloat(), GetParam().expected_value); + } +} + +INSTANTIATE_TEST_CASE_P( + FloatOverflow, FloatProxyParseOverflowFloatTest, + ::testing::ValuesIn(std::vector<OverflowParseCase<float>>({ + {"0", true, 0.0f}, + {"0.0", true, 0.0f}, + {"1.0", true, 1.0f}, + {"1e38", true, 1e38f}, + {"-1e38", true, -1e38f}, + {"1e40", false, FLT_MAX}, + {"-1e40", false, -FLT_MAX}, + {"1e400", false, FLT_MAX}, + {"-1e400", false, -FLT_MAX}, + })),); + +using FloatProxyParseOverflowDoubleTest = + ::testing::TestWithParam<OverflowParseCase<double>>; + +TEST_P(FloatProxyParseOverflowDoubleTest, Sample) { + std::istringstream input(GetParam().input); + HexFloat<FloatProxy<double>> value(0.0); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()); + if (GetParam().expect_success) { + EXPECT_THAT(value.value().getAsFloat(), Eq(GetParam().expected_value)); + } +} + +INSTANTIATE_TEST_CASE_P( + DoubleOverflow, FloatProxyParseOverflowDoubleTest, + ::testing::ValuesIn(std::vector<OverflowParseCase<double>>({ + {"0", true, 0.0}, + {"0.0", true, 0.0}, + {"1.0", true, 1.0}, + {"1e38", true, 1e38}, + {"-1e38", true, -1e38}, + {"1e40", true, 1e40}, + {"-1e40", true, -1e40}, + {"1e400", false, DBL_MAX}, + {"-1e400", false, -DBL_MAX}, + })),); + +using FloatProxyParseOverflowFloat16Test = + ::testing::TestWithParam<OverflowParseCase<uint16_t>>; + +TEST_P(FloatProxyParseOverflowFloat16Test, Sample) { + std::istringstream input(GetParam().input); + HexFloat<FloatProxy<Float16>> value(0); + input >> value; + EXPECT_NE(GetParam().expect_success, input.fail()) << " literal: " + << GetParam().input; + if (GetParam().expect_success) { + EXPECT_THAT(value.value().data(), Eq(GetParam().expected_value)) + << " literal: " << GetParam().input; + } +} + +INSTANTIATE_TEST_CASE_P( + Float16Overflow, FloatProxyParseOverflowFloat16Test, + ::testing::ValuesIn(std::vector<OverflowParseCase<uint16_t>>({ + {"0", true, uint16_t{0}}, + {"0.0", true, uint16_t{0}}, + {"1.0", true, uint16_t{0x3c00}}, + // Overflow for 16-bit float is an error, and returns max or + // lowest value. + {"1e38", false, uint16_t{0x7bff}}, + {"1e40", false, uint16_t{0x7bff}}, + {"1e400", false, uint16_t{0x7bff}}, + {"-1e38", false, uint16_t{0xfbff}}, + {"-1e40", false, uint16_t{0xfbff}}, + {"-1e400", false, uint16_t{0xfbff}}, + })),); + +TEST(FloatProxy, Max) { + EXPECT_THAT(FloatProxy<Float16>::max().getAsFloat().get_value(), + Eq(uint16_t{0x7bff})); + EXPECT_THAT(FloatProxy<float>::max().getAsFloat(), + Eq(std::numeric_limits<float>::max())); + EXPECT_THAT(FloatProxy<double>::max().getAsFloat(), + Eq(std::numeric_limits<double>::max())); +} + +TEST(FloatProxy, Lowest) { + EXPECT_THAT(FloatProxy<Float16>::lowest().getAsFloat().get_value(), + Eq(uint16_t{0xfbff})); + EXPECT_THAT(FloatProxy<float>::lowest().getAsFloat(), + Eq(std::numeric_limits<float>::lowest())); + EXPECT_THAT(FloatProxy<double>::lowest().getAsFloat(), + Eq(std::numeric_limits<double>::lowest())); +} + +// TODO(awoloszyn): Add fp16 tests and HexFloatTraits. +} // anonymous namespace diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp index 01cc0323edd7e5e130f88c354cc54a05a2e8f091..f0332aac611a530100e9b89a977f472d8bbb072b 100644 --- a/gtests/Hlsl.FromFile.cpp +++ b/gtests/Hlsl.FromFile.cpp @@ -58,27 +58,42 @@ std::string FileNameAsCustomTestSuffix( } using HlslCompileTest = GlslangTest<::testing::TestWithParam<FileNameEntryPointPair>>; +using HlslCompileAndFlattenTest = GlslangTest<::testing::TestWithParam<FileNameEntryPointPair>>; // Compiling HLSL to SPIR-V under Vulkan semantics. Expected to successfully // generate both AST and SPIR-V. TEST_P(HlslCompileTest, FromFile) { - loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, Source::HLSL, Semantics::Vulkan, Target::BothASTAndSpv, GetParam().entryPoint); } +TEST_P(HlslCompileAndFlattenTest, FromFile) +{ + loadFileCompileFlattenUniformsAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, + Target::BothASTAndSpv, GetParam().entryPoint); +} + // clang-format off INSTANTIATE_TEST_CASE_P( ToSpirv, HlslCompileTest, ::testing::ValuesIn(std::vector<FileNameEntryPointPair>{ + {"hlsl.amend.frag", "f1"}, {"hlsl.array.frag", "PixelShaderFunction"}, + {"hlsl.array.implicit-size.frag", "PixelShaderFunction"}, + {"hlsl.array.multidim.frag", "main"}, {"hlsl.assoc.frag", "PixelShaderFunction"}, {"hlsl.attribute.frag", "PixelShaderFunction"}, + {"hlsl.attribute.expression.comp", "main"}, + {"hlsl.basic.comp", "main"}, + {"hlsl.basic.geom", "main"}, {"hlsl.buffer.frag", "PixelShaderFunction"}, {"hlsl.calculatelod.dx10.frag", "main"}, {"hlsl.calculatelodunclamped.dx10.frag", "main"}, {"hlsl.cast.frag", "PixelShaderFunction"}, + {"hlsl.comparison.vec.frag", "main"}, {"hlsl.conditional.frag", "PixelShaderFunction"}, {"hlsl.constructexpr.frag", "main"}, {"hlsl.depthGreater.frag", "PixelShaderFunction"}, @@ -89,6 +104,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.entry-out.frag", "PixelShaderFunction"}, {"hlsl.float1.frag", "PixelShaderFunction"}, {"hlsl.float4.frag", "PixelShaderFunction"}, + {"hlsl.flatten.return.frag", "main"}, {"hlsl.forLoop.frag", "PixelShaderFunction"}, {"hlsl.gather.array.dx10.frag", "main"}, {"hlsl.gather.basic.dx10.frag", "main"}, @@ -100,8 +116,10 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.gatherRGBA.offset.dx10.frag", "main"}, {"hlsl.gatherRGBA.offsetarray.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.frag", "main"}, + {"hlsl.getdimensions.rw.dx10.frag", "main"}, {"hlsl.getdimensions.dx10.vert", "main"}, {"hlsl.getsampleposition.dx10.frag", "main"}, + {"hlsl.identifier.sample.frag", "main"}, {"hlsl.if.frag", "PixelShaderFunction"}, {"hlsl.inoutquals.frag", "main"}, {"hlsl.init.frag", "ShaderFunction"}, @@ -116,21 +134,44 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.intrinsics.negative.comp", "ComputeShaderFunction"}, {"hlsl.intrinsics.negative.frag", "PixelShaderFunction"}, {"hlsl.intrinsics.negative.vert", "VertexShaderFunction"}, + {"hlsl.intrinsics.promote.frag", "main"}, + {"hlsl.intrinsics.promote.down.frag", "main"}, + {"hlsl.intrinsics.promote.outputs.frag", "main"}, {"hlsl.layout.frag", "main"}, {"hlsl.load.2dms.dx10.frag", "main"}, {"hlsl.load.array.dx10.frag", "main"}, {"hlsl.load.basic.dx10.frag", "main"}, {"hlsl.load.basic.dx10.vert", "main"}, {"hlsl.load.buffer.dx10.frag", "main"}, + {"hlsl.load.buffer.float.dx10.frag", "main"}, + {"hlsl.load.rwbuffer.dx10.frag", "main"}, + {"hlsl.load.rwtexture.dx10.frag", "main"}, + {"hlsl.load.rwtexture.array.dx10.frag", "main"}, {"hlsl.load.offset.dx10.frag", "main"}, {"hlsl.load.offsetarray.dx10.frag", "main"}, + {"hlsl.logical.unary.frag", "main"}, + {"hlsl.logical.binary.frag", "main"}, + {"hlsl.logical.binary.vec.frag", "main"}, + {"hlsl.matNx1.frag", "main"}, + {"hlsl.mintypes.frag", "main"}, {"hlsl.multiEntry.vert", "RealEntrypoint"}, + {"hlsl.multiReturn.frag", "main"}, {"hlsl.matrixindex.frag", "main"}, {"hlsl.numericsuffixes.frag", "main"}, + {"hlsl.numthreads.comp", "main_aux1"}, {"hlsl.overload.frag", "PixelShaderFunction"}, + {"hlsl.partialInit.frag", "PixelShaderFunction"}, {"hlsl.pp.line.frag", "main"}, {"hlsl.precise.frag", "main"}, + {"hlsl.promote.atomic.frag", "main"}, + {"hlsl.promote.binary.frag", "main"}, + {"hlsl.promote.vec1.frag", "main"}, {"hlsl.promotions.frag", "main"}, + {"hlsl.rw.atomics.frag", "main"}, + {"hlsl.rw.bracket.frag", "main"}, + {"hlsl.rw.register.frag", "main"}, + {"hlsl.rw.scalar.bracket.frag", "main"}, + {"hlsl.rw.vec2.bracket.frag", "main"}, {"hlsl.sample.array.dx10.frag", "main"}, {"hlsl.sample.basic.dx10.frag", "main"}, {"hlsl.sample.offset.dx10.frag", "main"}, @@ -157,13 +198,19 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.samplelevel.basic.dx10.vert", "main"}, {"hlsl.samplelevel.offset.dx10.frag", "main"}, {"hlsl.samplelevel.offsetarray.dx10.frag", "main"}, + {"hlsl.sample.sub-vec4.dx10.frag", "main"}, {"hlsl.semicolons.frag", "main"}, {"hlsl.shapeConv.frag", "main"}, + {"hlsl.shapeConvRet.frag", "main"}, {"hlsl.stringtoken.frag", "main"}, {"hlsl.string.frag", "main"}, + {"hlsl.structarray.flatten.frag", "main"}, + {"hlsl.structarray.flatten.geom", "main"}, {"hlsl.structin.vert", "main"}, {"hlsl.intrinsics.vert", "VertexShaderFunction"}, {"hlsl.matType.frag", "PixelShaderFunction"}, + {"hlsl.matType.bool.frag", "main"}, + {"hlsl.matType.int.frag", "main"}, {"hlsl.max.frag", "PixelShaderFunction"}, {"hlsl.precedence.frag", "PixelShaderFunction"}, {"hlsl.precedence2.frag", "PixelShaderFunction"}, @@ -173,6 +220,7 @@ INSTANTIATE_TEST_CASE_P( {"hlsl.switch.frag", "PixelShaderFunction"}, {"hlsl.swizzle.frag", "PixelShaderFunction"}, {"hlsl.templatetypes.frag", "PixelShaderFunction"}, + {"hlsl.tx.bracket.frag", "main"}, {"hlsl.typedef.frag", "PixelShaderFunction"}, {"hlsl.whileLoop.frag", "PixelShaderFunction"}, {"hlsl.void.frag", "PixelShaderFunction"}, @@ -181,5 +229,15 @@ INSTANTIATE_TEST_CASE_P( ); // clang-format on +// clang-format off +INSTANTIATE_TEST_CASE_P( + ToSpirv, HlslCompileAndFlattenTest, + ::testing::ValuesIn(std::vector<FileNameEntryPointPair>{ + {"hlsl.array.flatten.frag", "main"}, + }), + FileNameAsCustomTestSuffix +); + +// clang-format on } // anonymous namespace } // namespace glslangtest diff --git a/gtests/Link.FromFile.cpp b/gtests/Link.FromFile.cpp index b324b9ab07e306567e4dc10a38cadc787330dbb0..ab845bf59e70cd91713c4eee7c7f897a203a3362 100644 --- a/gtests/Link.FromFile.cpp +++ b/gtests/Link.FromFile.cpp @@ -55,7 +55,7 @@ TEST_P(LinkTest, FromFile) std::vector<std::unique_ptr<glslang::TShader>> shaders; for (size_t i = 0; i < fileCount; ++i) { std::string contents; - tryLoadFile(GLSLANG_TEST_DIRECTORY "/" + fileNames[i], + tryLoadFile(GlobalTestSettings.testRoot + "/" + fileNames[i], "input", &contents); shaders.emplace_back( new glslang::TShader(GetShaderStage(GetSuffix(fileNames[i])))); @@ -77,7 +77,7 @@ TEST_P(LinkTest, FromFile) // Check with expected results. const std::string expectedOutputFname = - GLSLANG_TEST_DIRECTORY "/baseResults/" + fileNames.front() + ".out"; + GlobalTestSettings.testRoot + "/baseResults/" + fileNames.front() + ".out"; std::string expectedOutput; tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); @@ -99,6 +99,7 @@ INSTANTIATE_TEST_CASE_P( {"150.tesc", "150.tese", "400.tesc", "400.tese", "410.tesc", "420.tesc", "420.tese"}, {"max_vertices_0.geom"}, {"es-link1.frag", "es-link2.frag"}, + {"missingBodies.vert"} })), ); // clang-format on diff --git a/gtests/Pp.FromFile.cpp b/gtests/Pp.FromFile.cpp index 04ac3f757844a2c6259b4ca5f062f90017ba26f0..13daac0d6715ac24849a8eb212eb2bcb0a4123d9 100644 --- a/gtests/Pp.FromFile.cpp +++ b/gtests/Pp.FromFile.cpp @@ -43,7 +43,7 @@ using PreprocessingTest = GlslangTest<::testing::TestWithParam<std::string>>; TEST_P(PreprocessingTest, FromFile) { - loadFilePreprocessAndCheck(GLSLANG_TEST_DIRECTORY, GetParam()); + loadFilePreprocessAndCheck(GlobalTestSettings.testRoot, GetParam()); } // clang-format off diff --git a/gtests/Remap.FromFile.cpp b/gtests/Remap.FromFile.cpp index cd246ea2f670cdc916003dcb24cf8ff54b9ddb77..9f25a6f2277d088d2d037897d8b72b8a7388b3ca 100644 --- a/gtests/Remap.FromFile.cpp +++ b/gtests/Remap.FromFile.cpp @@ -60,17 +60,17 @@ std::string FileNameAsCustomTestSuffix( using RemapTest = GlslangTest<::testing::TestWithParam<RemapTestArgs>>; -// Remapping SPIR-V modules. +// Remapping SPIR-V modules. TEST_P(RemapTest, FromFile) { if (GetSuffix(GetParam().fileName) == "spv") { - loadFileRemapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + loadFileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, GetParam().sourceLanguage, Semantics::Vulkan, Target::Spv, GetParam().remapOpts); } else { - loadFileCompileRemapAndCheck(GLSLANG_TEST_DIRECTORY, GetParam().fileName, + loadFileCompileRemapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, GetParam().sourceLanguage, Semantics::Vulkan, Target::Spv, diff --git a/gtests/Settings.cpp b/gtests/Settings.cpp index 4ba7989b4a35fc7c5975eb15183566f540669054..0ac58449c62a2761c45c70a3214839c288ca1011 100644 --- a/gtests/Settings.cpp +++ b/gtests/Settings.cpp @@ -36,6 +36,16 @@ namespace glslangtest { -GTestSettings GlobalTestSettings = {nullptr, false}; +// We need CMake to provide us the absolute path to the directory containing +// test files, so we are certain to find those files no matter where the test +// harness binary is generated. This provides out-of-source build capability. +// This will be used as the default test root, but can be overridden with +// the --test-root argument. +#ifndef GLSLANG_TEST_DIRECTORY +#error \ + "GLSLANG_TEST_DIRECTORY needs to be defined for gtest to locate test files." +#endif + +GTestSettings GlobalTestSettings = {nullptr, false, GLSLANG_TEST_DIRECTORY}; } // namespace glslangtest diff --git a/gtests/Settings.h b/gtests/Settings.h index 30056a7bacb45940315486ff0bfbca0997ebb4ba..c38474ccf996a4504a89372d2de161c9b44cc433 100644 --- a/gtests/Settings.h +++ b/gtests/Settings.h @@ -35,6 +35,8 @@ #ifndef GLSLANG_GTESTS_SETTINGS_H #define GLSLANG_GTESTS_SETTINGS_H +#include <string> + namespace glslangtest { class GlslangInitializer; @@ -45,6 +47,8 @@ struct GTestSettings { // An indicator of whether GTest should write real output to the file for // the expected output. bool updateMode; + // The root directory for test files. + std::string testRoot; }; extern GTestSettings GlobalTestSettings; diff --git a/gtests/Spv.FromFile.cpp b/gtests/Spv.FromFile.cpp index 45fed0449b2c6d67b3a0b97286ea742688e66b52..414fa7b7d5ad457e15fa467836446b4e6e8688a5 100644 --- a/gtests/Spv.FromFile.cpp +++ b/gtests/Spv.FromFile.cpp @@ -1,4 +1,4 @@ -// + // // Copyright (C) 2016 Google, Inc. // // All rights reserved. @@ -41,17 +41,42 @@ namespace glslangtest { namespace { +struct IoMapData { + const char* fileName; + const char* entryPoint; + int baseSamplerBinding; + int baseTextureBinding; + int baseImageBinding; + int baseUboBinding; + bool autoMapBindings; + bool flattenUniforms; +}; + +std::string FileNameAsCustomTestSuffixIoMap( + const ::testing::TestParamInfo<IoMapData>& info) { + std::string name = info.param.fileName; + // A valid test case suffix cannot have '.' and '-' inside. + std::replace(name.begin(), name.end(), '.', '_'); + std::replace(name.begin(), name.end(), '-', '_'); + return name; +} + using CompileVulkanToSpirvTest = GlslangTest<::testing::TestWithParam<std::string>>; using CompileOpenGLToSpirvTest = GlslangTest<::testing::TestWithParam<std::string>>; using VulkanSemantics = GlslangTest<::testing::TestWithParam<std::string>>; using OpenGLSemantics = GlslangTest<::testing::TestWithParam<std::string>>; using VulkanAstSemantics = GlslangTest<::testing::TestWithParam<std::string>>; +using HlslIoMap = GlslangTest<::testing::TestWithParam<IoMapData>>; +using GlslIoMap = GlslangTest<::testing::TestWithParam<IoMapData>>; +#ifdef AMD_EXTENSIONS +using CompileVulkanToSpirvTestAMD = GlslangTest<::testing::TestWithParam<std::string>>; +#endif // Compiling GLSL to SPIR-V under Vulkan semantics. Expected to successfully // generate SPIR-V. TEST_P(CompileVulkanToSpirvTest, FromFile) { - loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::Vulkan, Target::Spv); } @@ -60,7 +85,7 @@ TEST_P(CompileVulkanToSpirvTest, FromFile) // generate SPIR-V. TEST_P(CompileOpenGLToSpirvTest, FromFile) { - loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::OpenGL, Target::Spv); } @@ -69,7 +94,7 @@ TEST_P(CompileOpenGLToSpirvTest, FromFile) // SPIR-V. TEST_P(VulkanSemantics, FromFile) { - loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::Vulkan, Target::Spv); } @@ -78,7 +103,7 @@ TEST_P(VulkanSemantics, FromFile) // SPIR-V. TEST_P(OpenGLSemantics, FromFile) { - loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::OpenGL, Target::Spv); } @@ -86,11 +111,50 @@ TEST_P(OpenGLSemantics, FromFile) // GLSL-level Vulkan semantics test that need to see the AST for validation. TEST_P(VulkanAstSemantics, FromFile) { - loadFileCompileAndCheck(GLSLANG_TEST_DIRECTORY, GetParam(), + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), Source::GLSL, Semantics::Vulkan, Target::AST); } +// HLSL-level Vulkan semantics tests. +TEST_P(HlslIoMap, FromFile) +{ + loadFileCompileIoMapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::HLSL, Semantics::Vulkan, + Target::Spv, GetParam().entryPoint, + GetParam().baseSamplerBinding, + GetParam().baseTextureBinding, + GetParam().baseImageBinding, + GetParam().baseUboBinding, + GetParam().autoMapBindings, + GetParam().flattenUniforms); +} + +// GLSL-level Vulkan semantics tests. +TEST_P(GlslIoMap, FromFile) +{ + loadFileCompileIoMapAndCheck(GlobalTestSettings.testRoot, GetParam().fileName, + Source::GLSL, Semantics::Vulkan, + Target::Spv, GetParam().entryPoint, + GetParam().baseSamplerBinding, + GetParam().baseTextureBinding, + GetParam().baseImageBinding, + GetParam().baseUboBinding, + GetParam().autoMapBindings, + GetParam().flattenUniforms); +} + +#ifdef AMD_EXTENSIONS +// Compiling GLSL to SPIR-V under Vulkan semantics (AMD extensions enabled). +// Expected to successfully generate SPIR-V. +TEST_P(CompileVulkanToSpirvTestAMD, FromFile) +{ + loadFileCompileAndCheck(GlobalTestSettings.testRoot, GetParam(), + Source::GLSL, Semantics::Vulkan, + Target::Spv); +} +#endif + // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileVulkanToSpirvTest, @@ -169,12 +233,15 @@ INSTANTIATE_TEST_CASE_P( "spv.newTexture.frag", "spv.noDeadDecorations.vert", "spv.nonSquare.vert", + "spv.offsets.frag", "spv.Operations.frag", "spv.intOps.vert", + "spv.noWorkgroup.comp", "spv.precision.frag", "spv.prepost.frag", "spv.qualifiers.vert", "spv.shaderBallot.comp", + "spv.shaderDrawParams.vert", "spv.shaderGroupVote.comp", "spv.shiftOps.frag", "spv.simpleFunctionCall.frag", @@ -216,6 +283,33 @@ INSTANTIATE_TEST_CASE_P( FileNameAsCustomTestSuffix ); +// clang-format off +INSTANTIATE_TEST_CASE_P( + Hlsl, HlslIoMap, + ::testing::ValuesIn(std::vector<IoMapData>{ + { "spv.register.autoassign.frag", "main_ep", 5, 10, 0, 20, true, false }, + { "spv.register.noautoassign.frag", "main_ep", 5, 10, 0, 15, false, false }, + { "spv.register.autoassign-2.frag", "main", 5, 10, 0, 15, true, true }, + { "spv.buffer.autoassign.frag", "main", 5, 10, 0, 15, true, true }, + { "spv.rw.autoassign.frag", "main", 5, 10, 20, 15, true, true }, + { "spv.register.autoassign.rangetest.frag", "main", + glslang::TQualifier::layoutBindingEnd-2, + glslang::TQualifier::layoutBindingEnd+5, + 20, true, false }, + }), + FileNameAsCustomTestSuffixIoMap +); + +// clang-format off +INSTANTIATE_TEST_CASE_P( + Hlsl, GlslIoMap, + ::testing::ValuesIn(std::vector<IoMapData>{ + { "spv.glsl.register.autoassign.frag", "main", 5, 10, 0, 20, true, false }, + { "spv.glsl.register.noautoassign.frag", "main", 5, 10, 0, 15, false, false }, + }), + FileNameAsCustomTestSuffixIoMap +); + // clang-format off INSTANTIATE_TEST_CASE_P( Glsl, CompileOpenGLToSpirvTest, @@ -256,6 +350,16 @@ INSTANTIATE_TEST_CASE_P( })), FileNameAsCustomTestSuffix ); + +#ifdef AMD_EXTENSIONS +INSTANTIATE_TEST_CASE_P( + Glsl, CompileVulkanToSpirvTestAMD, + ::testing::ValuesIn(std::vector<std::string>({ + "spv.float16.frag", + })), + FileNameAsCustomTestSuffix +); +#endif // clang-format on } // anonymous namespace diff --git a/gtests/TestFixture.cpp b/gtests/TestFixture.cpp index 1dff65aca07373d23fe321d8e1d2fa4162bdacb3..db2b81d1a0565c1be4e11f9f0e4158a8fcefe35c 100644 --- a/gtests/TestFixture.cpp +++ b/gtests/TestFixture.cpp @@ -74,7 +74,7 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target) case Source::GLSL: break; case Source::HLSL: - result = EShMsgReadHlsl; + result = static_cast<EShMessages>(result | EShMsgReadHlsl); break; } @@ -84,9 +84,11 @@ EShMessages DeriveOptions(Source source, Semantics semantics, Target target) break; case Target::Spv: result = static_cast<EShMessages>(result | EShMsgSpvRules); + result = static_cast<EShMessages>(result | EShMsgKeepUncalled); break; case Target::BothASTAndSpv: result = static_cast<EShMessages>(result | EShMsgSpvRules | EShMsgAST); + result = static_cast<EShMessages>(result | EShMsgKeepUncalled); break; }; diff --git a/gtests/TestFixture.h b/gtests/TestFixture.h index 81930125b201ea48b961af70d2d60d1d26d80d8c..e795e8dc90da56efc5ccca34a7abfabde20a791c 100644 --- a/gtests/TestFixture.h +++ b/gtests/TestFixture.h @@ -54,14 +54,6 @@ #include "Initializer.h" #include "Settings.h" -// We need CMake to provide us the absolute path to the directory containing -// test files, so we are certain to find those files no matter where the test -// harness binary is generated. This provides out-of-source build capability. -#ifndef GLSLANG_TEST_DIRECTORY -#error \ - "GLSLANG_TEST_DIRECTORY needs to be defined for gtest to locate test files." -#endif - namespace glslangtest { // This function is used to provide custom test name suffixes based on the @@ -204,11 +196,14 @@ public: // the result and returns disassembly text. GlslangResult compileAndLink( const std::string shaderName, const std::string& code, - const std::string& entryPointName, EShMessages controls) + const std::string& entryPointName, EShMessages controls, + bool flattenUniformArrays = false) { const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); glslang::TShader shader(kind); + shader.setFlattenUniformArrays(flattenUniformArrays); + bool success = compile(&shader, code, entryPointName, controls); glslang::TProgram program; @@ -234,6 +229,58 @@ public: } } + // Compiles and links the given source |code| of the given shader + // |stage| into the target under the semantics specified via |controls|. + // Returns a GlslangResult instance containing all the information generated + // during the process. If the target includes SPIR-V, also disassembles + // the result and returns disassembly text. + GlslangResult compileLinkIoMap( + const std::string shaderName, const std::string& code, + const std::string& entryPointName, EShMessages controls, + int baseSamplerBinding, + int baseTextureBinding, + int baseImageBinding, + int baseUboBinding, + bool autoMapBindings, + bool flattenUniformArrays) + { + const EShLanguage kind = GetShaderStage(GetSuffix(shaderName)); + + glslang::TShader shader(kind); + shader.setShiftSamplerBinding(baseSamplerBinding); + shader.setShiftTextureBinding(baseTextureBinding); + shader.setShiftImageBinding(baseImageBinding); + shader.setShiftUboBinding(baseUboBinding); + shader.setAutoMapBindings(autoMapBindings); + shader.setFlattenUniformArrays(flattenUniformArrays); + + bool success = compile(&shader, code, entryPointName, controls); + + glslang::TProgram program; + program.addShader(&shader); + + success &= program.link(controls); + success &= program.mapIO(); + + spv::SpvBuildLogger logger; + + if (success && (controls & EShMsgSpvRules)) { + std::vector<uint32_t> spirv_binary; + glslang::GlslangToSpv(*program.getIntermediate(kind), + spirv_binary, &logger); + + std::ostringstream disassembly_stream; + spv::Parameterize(); + spv::Disassemble(disassembly_stream, spirv_binary); + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), + logger.getAllMessages(), disassembly_stream.str()}; + } else { + return {{{shaderName, shader.getInfoLog(), shader.getInfoDebugLog()},}, + program.getInfoLog(), program.getInfoDebugLog(), "", ""}; + } + } + // This is like compileAndLink but with remapping of the SPV binary // through spirvbin_t::remap(). While technically this could be merged // with compileAndLink() above (with the remap step optionally being a no-op) @@ -347,6 +394,67 @@ public: expectedOutputFname); } + void loadFileCompileFlattenUniformsAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName="") + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileAndLink(testName, input, entryPointName, controls, true); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + + void loadFileCompileIoMapAndCheck(const std::string& testDir, + const std::string& testName, + Source source, + Semantics semantics, + Target target, + const std::string& entryPointName, + int baseSamplerBinding, + int baseTextureBinding, + int baseImageBinding, + int baseUboBinding, + bool autoMapBindings, + bool flattenUniformArrays) + { + const std::string inputFname = testDir + "/" + testName; + const std::string expectedOutputFname = + testDir + "/baseResults/" + testName + ".out"; + std::string input, expectedOutput; + + tryLoadFile(inputFname, "input", &input); + tryLoadFile(expectedOutputFname, "expected output", &expectedOutput); + + const EShMessages controls = DeriveOptions(source, semantics, target); + GlslangResult result = compileLinkIoMap(testName, input, entryPointName, controls, + baseSamplerBinding, baseTextureBinding, baseImageBinding, baseUboBinding, + autoMapBindings, + flattenUniformArrays); + + // Generate the hybrid output in the way of glslangValidator. + std::ostringstream stream; + outputResultToStream(&stream, result, controls); + + checkEqAndUpdateIfRequested(expectedOutput, stream.str(), + expectedOutputFname); + } + void loadFileCompileRemapAndCheck(const std::string& testDir, const std::string& testName, Source source, diff --git a/gtests/main.cpp b/gtests/main.cpp index b9806aa255f12d12e09f451f76e719d246777398..35f30db9cfa134f00fcf3c52c8233e184878d663 100644 --- a/gtests/main.cpp +++ b/gtests/main.cpp @@ -33,6 +33,7 @@ // POSSIBILITY OF SUCH DAMAGE. #include <memory> +#include <string> #include <gtest/gtest.h> @@ -49,9 +50,19 @@ int main(int argc, char** argv) glslangtest::GlobalTestSettings.initializer = initializer.get(); for (int i = 1; i < argc; ++i) { - if (!strncmp("--update-mode", argv[i], 13)) { + if (std::string("--update-mode") == argv[i]) { glslangtest::GlobalTestSettings.updateMode = true; - break; + } + if (std::string("--test-root") == argv[i]) { + // Allow the user set the tets root directory. This is useful + // for testing with files from another source tree. + if (i + 1 < argc) { + glslangtest::GlobalTestSettings.testRoot = argv[i + 1]; + i++; + } else { + printf("error: --test-root requires an argument\n"); + return 1; + } } } diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt index c7537e27126ae6c5fa9c57b77c80e76f434ab616..ec5f1a569ea6d174713134f48816e9b0c5275df7 100755 --- a/hlsl/CMakeLists.txt +++ b/hlsl/CMakeLists.txt @@ -1,4 +1,5 @@ set(SOURCES + hlslAttributes.cpp hlslParseHelper.cpp hlslScanContext.cpp hlslOpMap.cpp @@ -6,7 +7,8 @@ set(SOURCES hlslGrammar.cpp hlslParseables.cpp) -set(HEADERS + set(HEADERS + hlslAttributes.h hlslParseHelper.h hlslTokens.h hlslScanContext.h diff --git a/hlsl/hlslAttributes.cpp b/hlsl/hlslAttributes.cpp new file mode 100644 index 0000000000000000000000000000000000000000..966ff35210152713c2b761c71bc5a123a9822b0f --- /dev/null +++ b/hlsl/hlslAttributes.cpp @@ -0,0 +1,110 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//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 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 Google, Inc., 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 +//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. +// + +#include "hlslAttributes.h" +#include <cstdlib> +#include <cctype> + +namespace glslang { + // Map the given string to an attribute enum from TAttributeType, + // or EatNone if invalid. + TAttributeType TAttributeMap::attributeFromName(const TString& name) + { + // These are case insensitive. + TString lowername(name); + std::transform(lowername.begin(), lowername.end(), lowername.begin(), ::tolower); + + if (lowername == "allow_uav_condition") + return EatAllow_uav_condition; + else if (lowername == "branch") + return EatBranch; + else if (lowername == "call") + return EatCall; + else if (lowername == "domain") + return EatDomain; + else if (lowername == "earlydepthstencil") + return EatEarlyDepthStencil; + else if (lowername == "fastopt") + return EatFastOpt; + else if (lowername == "flatten") + return EatFlatten; + else if (lowername == "forcecase") + return EatForceCase; + else if (lowername == "instance") + return EatInstance; + else if (lowername == "maxtessfactor") + return EatMaxTessFactor; + else if (lowername == "maxvertexcount") + return EatMaxVertexCount; + else if (lowername == "numthreads") + return EatNumThreads; + else if (lowername == "outputcontrolpoints") + return EatOutputControlPoints; + else if (lowername == "outputtopology") + return EatOutputTopology; + else if (lowername == "partitioning") + return EatPartitioning; + else if (lowername == "patchconstantfunc") + return EatPatchConstantFunc; + else if (lowername == "unroll") + return EatUnroll; + else + return EatNone; + } + + // Look up entry, inserting if it's not there, and if name is a valid attribute name + // as known by attributeFromName. + TAttributeType TAttributeMap::setAttribute(const TString* name, TIntermAggregate* value) + { + if (name == nullptr) + return EatNone; + + const TAttributeType attr = attributeFromName(*name); + + if (attr != EatNone) + attributes[attr] = value; + + return attr; + } + + // Look up entry (const version), and return aggregate node. This cannot change the map. + const TIntermAggregate* TAttributeMap::operator[](TAttributeType attr) const + { + const auto entry = attributes.find(attr); + + return (entry == attributes.end()) ? nullptr : entry->second; + } + +} // end namespace glslang diff --git a/hlsl/hlslAttributes.h b/hlsl/hlslAttributes.h new file mode 100644 index 0000000000000000000000000000000000000000..312a4564262277952d145914977adfc6f49e566b --- /dev/null +++ b/hlsl/hlslAttributes.h @@ -0,0 +1,97 @@ +// +//Copyright (C) 2016 LunarG, Inc. +// +//All rights reserved. +// +//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 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 Google, Inc., 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 +//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. +// + +#ifndef HLSLATTRIBUTES_H_ +#define HLSLATTRIBUTES_H_ + +#include <unordered_map> +#include <functional> +#include "hlslScanContext.h" +#include "../glslang/Include/Common.h" + +namespace glslang { + enum TAttributeType { + EatNone, + EatAllow_uav_condition, + EatBranch, + EatCall, + EatDomain, + EatEarlyDepthStencil, + EatFastOpt, + EatFlatten, + EatForceCase, + EatInstance, + EatMaxTessFactor, + EatNumThreads, + EatMaxVertexCount, + EatOutputControlPoints, + EatOutputTopology, + EatPartitioning, + EatPatchConstantFunc, + EatUnroll, + }; +} + +namespace std { + // Allow use of TAttributeType enum in hash_map without calling code having to cast. + template <> struct hash<glslang::TAttributeType> { + std::size_t operator()(glslang::TAttributeType attr) const { + return std::hash<int>()(int(attr)); + } + }; +} // end namespace std + +namespace glslang { + class TIntermAggregate; + + class TAttributeMap { + public: + // Search for and potentially add the attribute into the map. Return the + // attribute type enum for it, if found, else EatNone. + TAttributeType setAttribute(const TString* name, TIntermAggregate* value); + + // Const lookup: search for (but do not modify) the attribute in the map. + const TIntermAggregate* operator[](TAttributeType) const; + + protected: + // Find an attribute enum given its name. + static TAttributeType attributeFromName(const TString&); + + std::unordered_map<TAttributeType, TIntermAggregate*> attributes; + }; +} // end namespace glslang + + +#endif // HLSLATTRIBUTES_H_ diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp index d458a882c307942a7356201334f86c832cf4eb90..b874aa8c9cb433008747a115cb14b8111e7660b7 100755 --- a/hlsl/hlslGrammar.cpp +++ b/hlsl/hlslGrammar.cpp @@ -53,6 +53,7 @@ #include "hlslTokens.h" #include "hlslGrammar.h" +#include "hlslAttributes.h" namespace glslang { @@ -84,6 +85,20 @@ bool HlslGrammar::acceptIdentifier(HlslToken& idToken) return true; } + // Even though "sample" is a keyword (for interpolation modifiers), it IS still accepted as + // an identifier. This appears to be a solitary exception: other interp modifier keywords such + // as "linear" or "centroid" NOT valid identifiers. This code special cases "sample", + // so e.g, "int sample;" is accepted. + if (peekTokenClass(EHTokSample)) { + token.string = NewPoolTString("sample"); + token.tokenClass = EHTokIdentifier; + token.symbol = nullptr; + + idToken = token; + advanceToken(); + return true; + } + return false; } @@ -268,10 +283,14 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) node = nullptr; bool list = false; + // attributes + TAttributeMap attributes; + acceptAttributes(attributes); + // typedef bool typedefDecl = acceptTokenClass(EHTokTypedef); - TType type; + TType declaredType; // DX9 sampler declaration use a different syntax // DX9 shaders need to run through HLSL compiler (fxc) via a back compat mode, it isn't going to @@ -280,29 +299,23 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) // As such, the sampler keyword in D3D10+ turns into an automatic sampler type, and is commonly used // For that reason, this line is commented out - // if (acceptSamplerDeclarationDX9(type)) + // if (acceptSamplerDeclarationDX9(declaredType)) // return true; // fully_specified_type - if (! acceptFullySpecifiedType(type)) + if (! acceptFullySpecifiedType(declaredType)) return false; - if (type.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) { - if (type.getBasicType() == EbtSampler) { - // Sampler/textures are uniform by default (if no explicit qualifier is present) in - // HLSL. This line silently converts samplers *explicitly* declared static to uniform, - // which is incorrect but harmless. - type.getQualifier().storage = EvqUniform; - } else { - type.getQualifier().storage = EvqGlobal; - } - } - // identifier HlslToken idToken; while (acceptIdentifier(idToken)) { + TString* fnName = idToken.string; + + // Potentially rename shader entry point function. No-op most of the time. + parseContext.renameShaderFunction(fnName); + // function_parameters - TFunction& function = *new TFunction(idToken.string, type); + TFunction& function = *new TFunction(fnName, declaredType); if (acceptFunctionParameters(function)) { // post_decls acceptPostDecls(function.getWritableType().getQualifier()); @@ -313,27 +326,48 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) parseContext.error(idToken.loc, "function body can't be in a declarator list", "{", ""); if (typedefDecl) parseContext.error(idToken.loc, "function body can't be in a typedef", "{", ""); - return acceptFunctionDefinition(function, node); + return acceptFunctionDefinition(function, node, attributes); } else { if (typedefDecl) parseContext.error(idToken.loc, "function typedefs not implemented", "{", ""); parseContext.handleFunctionDeclarator(idToken.loc, function, true); } } else { - // a variable declaration + // A variable declaration. Fix the storage qualifier if it's a global. + if (declaredType.getQualifier().storage == EvqTemporary && parseContext.symbolTable.atGlobalLevel()) + declaredType.getQualifier().storage = EvqUniform; - // array_specifier + // We can handle multiple variables per type declaration, so + // the number of types can expand when arrayness is different. + TType variableType; + variableType.shallowCopy(declaredType); + + // recognize array_specifier TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); + // Fix arrayness in the variableType + if (declaredType.isImplicitlySizedArray()) { + // Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b + // of different sizes, for this case sharing the shallow copy of arrayness + // with the parseType oversubscribes it, so get a deep copy of the arrayness. + variableType.newArraySizes(declaredType.getArraySizes()); + } + if (arraySizes || variableType.isArray()) { + // In the most general case, arrayness is potentially coming both from the + // declared type and from the variable: "int[] a[];" or just one or the other. + // Merge it all to the variableType, so all arrayness is part of the variableType. + parseContext.arrayDimMerge(variableType, arraySizes); + } + // samplers accept immediate sampler state - if (type.getBasicType() == EbtSampler) { + if (variableType.getBasicType() == EbtSampler) { if (! acceptSamplerState()) return false; } // post_decls - acceptPostDecls(type.getQualifier()); + acceptPostDecls(variableType.getQualifier()); // EQUAL assignment_expression TIntermTyped* expressionNode = nullptr; @@ -346,18 +380,29 @@ bool HlslGrammar::acceptDeclaration(TIntermNode*& node) } } - if (typedefDecl) - parseContext.declareTypedef(idToken.loc, *idToken.string, type, arraySizes); - else if (type.getBasicType() == EbtBlock) - parseContext.declareBlock(idToken.loc, type, idToken.string); - else { - // Declare the variable and add any initializer code to the AST. - // The top-level node is always made into an aggregate, as that's - // historically how the AST has been. - node = intermediate.growAggregate(node, - parseContext.declareVariable(idToken.loc, *idToken.string, type, - arraySizes, expressionNode), - idToken.loc); + // Hand off the actual declaration + + // TODO: things scoped within an annotation need their own name space; + // TODO: strings are not yet handled. + if (variableType.getBasicType() != EbtString && parseContext.getAnnotationNestingLevel() == 0) { + if (typedefDecl) + parseContext.declareTypedef(idToken.loc, *idToken.string, variableType); + else if (variableType.getBasicType() == EbtBlock) + parseContext.declareBlock(idToken.loc, variableType, idToken.string); + else { + if (variableType.getQualifier().storage == EvqUniform && ! variableType.containsOpaque()) { + // this isn't really an individual variable, but a member of the $Global buffer + parseContext.growGlobalUniformBlock(idToken.loc, variableType, *idToken.string); + } else { + // Declare the variable and add any initializer code to the AST. + // The top-level node is always made into an aggregate, as that's + // historically how the AST has been. + node = intermediate.growAggregate(node, + parseContext.declareVariable(idToken.loc, *idToken.string, variableType, + expressionNode), + idToken.loc); + } + } } } @@ -412,7 +457,7 @@ bool HlslGrammar::acceptControlDeclaration(TIntermNode*& node) return false; } - node = parseContext.declareVariable(idToken.loc, *idToken.string, type, 0, expressionNode); + node = parseContext.declareVariable(idToken.loc, *idToken.string, type, expressionNode); return true; } @@ -431,16 +476,34 @@ bool HlslGrammar::acceptFullySpecifiedType(TType& type) TSourceLoc loc = token.loc; // type_specifier - if (! acceptType(type)) + if (! acceptType(type)) { + // If this is not a type, we may have inadvertently gone down a wrong path + // py parsing "sample", which can be treated like either an identifier or a + // qualifier. Back it out, if we did. + if (qualifier.sample) + recedeToken(); + return false; + } if (type.getBasicType() == EbtBlock) { // the type was a block, which set some parts of the qualifier parseContext.mergeQualifiers(type.getQualifier(), qualifier); // further, it can create an anonymous instance of the block if (peekTokenClass(EHTokSemicolon)) parseContext.declareBlock(loc, type); - } else - type.getQualifier() = qualifier; + } else { + // Some qualifiers are set when parsing the type. Merge those with + // whatever comes from acceptQualifier. + assert(qualifier.layoutFormat == ElfNone); + + qualifier.layoutFormat = type.getQualifier().layoutFormat; + qualifier.precision = type.getQualifier().precision; + + if (type.getQualifier().storage == EvqVaryingOut) + qualifier.storage = type.getQualifier().storage; + + type.getQualifier() = qualifier; + } return true; } @@ -455,7 +518,7 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) do { switch (peek()) { case EHTokStatic: - // normal glslang default + qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; break; case EHTokExtern: // TODO: no meaning in glslang? @@ -491,10 +554,10 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) qualifier.sample = true; break; case EHTokRowMajor: - qualifier.layoutMatrix = ElmRowMajor; + qualifier.layoutMatrix = ElmColumnMajor; break; case EHTokColumnMajor: - qualifier.layoutMatrix = ElmColumnMajor; + qualifier.layoutMatrix = ElmRowMajor; break; case EHTokPrecise: qualifier.noContraction = true; @@ -512,6 +575,35 @@ bool HlslGrammar::acceptQualifier(TQualifier& qualifier) if (! acceptLayoutQualifierList(qualifier)) return false; continue; + + // GS geometries: these are specified on stage input variables, and are an error (not verified here) + // for output variables. + case EHTokPoint: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgPoints)) + return false; + break; + case EHTokLine: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgLines)) + return false; + break; + case EHTokTriangle: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgTriangles)) + return false; + break; + case EHTokLineAdj: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgLinesAdjacency)) + return false; + break; + case EHTokTriangleAdj: + qualifier.storage = EvqIn; + if (!parseContext.handleInputGeometry(token.loc, ElgTrianglesAdjacency)) + return false; + break; + default: return true; } @@ -576,7 +668,7 @@ bool HlslGrammar::acceptLayoutQualifierList(TQualifier& qualifier) // | UINT // | BOOL // -bool HlslGrammar::acceptTemplateType(TBasicType& basicType) +bool HlslGrammar::acceptTemplateVecMatBasicType(TBasicType& basicType) { switch (peek()) { case EHTokFloat: @@ -620,7 +712,7 @@ bool HlslGrammar::acceptVectorTemplateType(TType& type) } TBasicType basicType; - if (! acceptTemplateType(basicType)) { + if (! acceptTemplateVecMatBasicType(basicType)) { expected("scalar type"); return false; } @@ -672,7 +764,7 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) } TBasicType basicType; - if (! acceptTemplateType(basicType)) { + if (! acceptTemplateVecMatBasicType(basicType)) { expected("scalar type"); return false; } @@ -721,6 +813,56 @@ bool HlslGrammar::acceptMatrixTemplateType(TType& type) return true; } +// layout_geometry +// : LINESTREAM +// | POINTSTREAM +// | TRIANGLESTREAM +// +bool HlslGrammar::acceptOutputPrimitiveGeometry(TLayoutGeometry& geometry) +{ + // read geometry type + const EHlslTokenClass geometryType = peek(); + + switch (geometryType) { + case EHTokPointStream: geometry = ElgPoints; break; + case EHTokLineStream: geometry = ElgLineStrip; break; + case EHTokTriangleStream: geometry = ElgTriangleStrip; break; + default: + return false; // not a layout geometry + } + + advanceToken(); // consume the layout keyword + return true; +} + +// stream_out_template_type +// : output_primitive_geometry_type LEFT_ANGLE type RIGHT_ANGLE +// +bool HlslGrammar::acceptStreamOutTemplateType(TType& type, TLayoutGeometry& geometry) +{ + geometry = ElgNone; + + if (! acceptOutputPrimitiveGeometry(geometry)) + return false; + + if (! acceptTokenClass(EHTokLeftAngle)) + return false; + + if (! acceptType(type)) { + expected("stream output type"); + return false; + } + + type.getQualifier().storage = EvqVaryingOut; + + if (! acceptTokenClass(EHTokRightAngle)) { + expected("right angle bracket"); + return false; + } + + return true; +} + // annotations // : LEFT_ANGLE declaration SEMI_COLON ... declaration SEMICOLON RIGHT_ANGLE // @@ -806,6 +948,13 @@ bool HlslGrammar::acceptSamplerType(TType& type) // | TEXTURECUBEARRAY // | TEXTURE2DMS // | TEXTURE2DMSARRAY +// | RWBUFFER +// | RWTEXTURE1D +// | RWTEXTURE1DARRAY +// | RWTEXTURE2D +// | RWTEXTURE2DARRAY +// | RWTEXTURE3D + bool HlslGrammar::acceptTextureType(TType& type) { const EHlslTokenClass textureType = peek(); @@ -813,6 +962,7 @@ bool HlslGrammar::acceptTextureType(TType& type) TSamplerDim dim = EsdNone; bool array = false; bool ms = false; + bool image = false; switch (textureType) { case EHTokBuffer: dim = EsdBuffer; break; @@ -825,6 +975,12 @@ bool HlslGrammar::acceptTextureType(TType& type) case EHTokTextureCubearray: dim = EsdCube; array = true; break; case EHTokTexture2DMS: dim = Esd2D; ms = true; break; case EHTokTexture2DMSarray: dim = Esd2D; array = true; ms = true; break; + case EHTokRWBuffer: dim = EsdBuffer; image=true; break; + case EHTokRWTexture1d: dim = Esd1D; array=false; image=true; break; + case EHTokRWTexture1darray: dim = Esd1D; array=true; image=true; break; + case EHTokRWTexture2d: dim = Esd2D; array=false; image=true; break; + case EHTokRWTexture2darray: dim = Esd2D; array=true; image=true; break; + case EHTokRWTexture3d: dim = Esd3D; array=false; image=true; break; default: return false; // not a texture declaration } @@ -835,7 +991,7 @@ bool HlslGrammar::acceptTextureType(TType& type) TIntermTyped* msCount = nullptr; - // texture type: required for multisample types! + // texture type: required for multisample types and RWBuffer/RWTextures! if (acceptTokenClass(EHTokLeftAngle)) { if (! acceptType(txType)) { expected("scalar or vector type"); @@ -866,12 +1022,6 @@ bool HlslGrammar::acceptTextureType(TType& type) return false; } - if (txType.getVectorSize() != 1 && txType.getVectorSize() != 4) { - // TODO: handle vec2/3 types - expected("vector size not yet supported in texture type"); - return false; - } - if (ms && acceptTokenClass(EHTokComma)) { // read sample count for multisample types, if given if (! peekTokenClass(EHTokIntConstant)) { @@ -890,22 +1040,38 @@ bool HlslGrammar::acceptTextureType(TType& type) } else if (ms) { expected("texture type for multisample"); return false; + } else if (image) { + expected("type for RWTexture/RWBuffer"); + return false; } TArraySizes* arraySizes = nullptr; - const bool shadow = txType.isScalar() || (txType.isVector() && txType.getVectorSize() == 1); + const bool shadow = false; // declared on the sampler TSampler sampler; + TLayoutFormat format = ElfNone; - // Buffers are combined. - if (dim == EsdBuffer) { + // Buffer, RWBuffer and RWTexture (images) require a TLayoutFormat. We handle only a limit set. + if (image || dim == EsdBuffer) + format = parseContext.getLayoutFromTxType(token.loc, txType); + + // Non-image Buffers are combined + if (dim == EsdBuffer && !image) { sampler.set(txType.getBasicType(), dim, array); } else { // DX10 textures are separated. TODO: DX9. - sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); + if (image) { + sampler.setImage(txType.getBasicType(), dim, array, shadow, ms); + } else { + sampler.setTexture(txType.getBasicType(), dim, array, shadow, ms); + } } + + // Remember the declared vector size. + sampler.vectorSize = txType.getVectorSize(); type.shallowCopy(TType(sampler, EvqUniform, arraySizes)); + type.getQualifier().layoutFormat = format; return true; } @@ -916,6 +1082,14 @@ bool HlslGrammar::acceptTextureType(TType& type) // Otherwise, return false, and don't advance bool HlslGrammar::acceptType(TType& type) { + // Basic types for min* types, broken out here in case of future + // changes, e.g, to use native halfs. + static const TBasicType min16float_bt = EbtFloat; + static const TBasicType min10float_bt = EbtFloat; + static const TBasicType min16int_bt = EbtInt; + static const TBasicType min12int_bt = EbtInt; + static const TBasicType min16uint_bt = EbtUint; + switch (peek()) { case EHTokVector: return acceptVectorTemplateType(type); @@ -925,6 +1099,20 @@ bool HlslGrammar::acceptType(TType& type) return acceptMatrixTemplateType(type); break; + case EHTokPointStream: // fall through + case EHTokLineStream: // ... + case EHTokTriangleStream: // ... + { + TLayoutGeometry geometry; + if (! acceptStreamOutTemplateType(type, geometry)) + return false; + + if (! parseContext.handleOutputGeometry(token.loc, geometry)) + return false; + + return true; + } + case EHTokSampler: // fall through case EHTokSampler1d: // ... case EHTokSampler2d: // ... @@ -945,6 +1133,12 @@ bool HlslGrammar::acceptType(TType& type) case EHTokTextureCubearray: // ... case EHTokTexture2DMS: // ... case EHTokTexture2DMSarray: // ... + case EHTokRWTexture1d: // ... + case EHTokRWTexture1darray: // ... + case EHTokRWTexture2d: // ... + case EHTokRWTexture2darray: // ... + case EHTokRWTexture3d: // ... + case EHTokRWBuffer: // ... return acceptTextureType(type); break; @@ -1061,6 +1255,91 @@ bool HlslGrammar::acceptType(TType& type) new(&type) TType(EbtBool, EvqTemporary, 4); break; + case EHTokMin16float: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16float1: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16float2: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16float3: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16float4: + new(&type) TType(min16float_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin10float: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin10float1: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin10float2: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin10float3: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin10float4: + new(&type) TType(min10float_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin16int: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16int1: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16int2: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16int3: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16int4: + new(&type) TType(min16int_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin12int: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin12int1: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin12int2: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin12int3: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin12int4: + new(&type) TType(min12int_bt, EvqTemporary, EpqMedium, 4); + break; + + case EHTokMin16uint: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); + break; + case EHTokMin16uint1: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium); + type.makeVector(); + break; + case EHTokMin16uint2: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 2); + break; + case EHTokMin16uint3: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 3); + break; + case EHTokMin16uint4: + new(&type) TType(min16uint_bt, EvqTemporary, EpqMedium, 4); + break; + case EHTokInt1x1: new(&type) TType(EbtInt, EvqTemporary, 0, 1, 1); break; @@ -1515,8 +1794,14 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) // array_specifier TArraySizes* arraySizes = nullptr; acceptArraySpecifier(arraySizes); - if (arraySizes) + if (arraySizes) { + if (arraySizes->isImplicit()) { + parseContext.error(token.loc, "function parameter array cannot be implicitly sized", "", ""); + return false; + } + type->newArraySizes(*arraySizes); + } // post_decls acceptPostDecls(type->getQualifier()); @@ -1531,13 +1816,13 @@ bool HlslGrammar::acceptParameterDeclaration(TFunction& function) // Do the work to create the function definition in addition to // parsing the body (compound_statement). -bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node) +bool HlslGrammar::acceptFunctionDefinition(TFunction& function, TIntermNode*& node, const TAttributeMap& attributes) { TFunction& functionDeclarator = parseContext.handleFunctionDeclarator(token.loc, function, false /* not prototype */); TSourceLoc loc = token.loc; // This does a pushScope() - node = parseContext.handleFunctionDefinition(loc, functionDeclarator); + node = parseContext.handleFunctionDefinition(loc, functionDeclarator, attributes); // compound_statement TIntermNode* functionBody = nullptr; @@ -1624,7 +1909,8 @@ bool HlslGrammar::acceptExpression(TIntermTyped*& node) } // initializer -// : LEFT_BRACE initializer_list RIGHT_BRACE +// : LEFT_BRACE RIGHT_BRACE +// | LEFT_BRACE initializer_list RIGHT_BRACE // // initializer_list // : assignment_expression COMMA assignment_expression COMMA ... @@ -1635,8 +1921,15 @@ bool HlslGrammar::acceptInitializer(TIntermTyped*& node) if (! acceptTokenClass(EHTokLeftBrace)) return false; - // initializer_list + // RIGHT_BRACE TSourceLoc loc = token.loc; + if (acceptTokenClass(EHTokRightBrace)) { + // a zero-length initializer list + node = intermediate.makeAggregate(loc); + return true; + } + + // initializer_list node = nullptr; do { // assignment_expression @@ -1707,6 +2000,8 @@ bool HlslGrammar::acceptAssignmentExpression(TIntermTyped*& node) } node = parseContext.handleAssign(loc, assignOp, node, rightNode); + node = parseContext.handleLvalue(loc, "assign", node); + if (node == nullptr) { parseContext.error(loc, "could not create assignment", "", ""); return false; @@ -1871,6 +2166,10 @@ bool HlslGrammar::acceptUnaryExpression(TIntermTyped*& node) node = intermediate.addUnaryMath(unaryOp, node, loc); + // These unary ops require lvalues + if (unaryOp == EOpPreIncrement || unaryOp == EOpPreDecrement) + node = parseContext.handleLvalue(loc, "unary operator", node); + return node != nullptr; } @@ -1912,7 +2211,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, idToken.symbol, idToken.string); } else if (acceptFunctionCall(idToken, node)) { // function_call (nothing else to do yet) } else { @@ -1924,6 +2223,20 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) return false; } + // This is to guarantee we do this no matter how we get out of the stack frame. + // This way there's no bug if an early return forgets to do it. + struct tFinalize { + tFinalize(HlslParseContext& p) : parseContext(p) { } + ~tFinalize() { parseContext.finalizeFlattening(); } + HlslParseContext& parseContext; + } finalize(parseContext); + + // Initialize the flattening accumulation data, so we can track data across multiple bracket or + // dot operators. This can also be nested, e.g, for [], so we have to track each nesting + // level: hence the init and finalize. Even though in practice these must be + // constants, they are parsed no matter what. + parseContext.initFlattening(); + // Something was found, chain as many postfix operations as exist. do { TSourceLoc loc = token.loc; @@ -1957,7 +2270,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) node = parseContext.handleDotDereference(field.loc, node, *field.string); // In the event of a method node, we look for an open paren and accept the function call. - if (node->getAsMethodNode() != nullptr && peekTokenClass(EHTokLeftParen)) { + if (node != nullptr && node->getAsMethodNode() != nullptr && peekTokenClass(EHTokLeftParen)) { if (! acceptFunctionCall(field, node, base)) { expected("function parameters"); return false; @@ -1985,6 +2298,7 @@ bool HlslGrammar::acceptPostfixExpression(TIntermTyped*& node) case EOpPostDecrement: // DEC_OP node = intermediate.addUnaryMath(postOp, node, loc); + node = parseContext.handleLvalue(loc, "unary operator", node); break; default: assert(0); @@ -2181,7 +2495,8 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) statement = nullptr; // attributes - acceptAttributes(); + TAttributeMap attributes; + acceptAttributes(attributes); // attributed_statement switch (peek()) { @@ -2254,42 +2569,70 @@ bool HlslGrammar::acceptStatement(TIntermNode*& statement) // | FLATTEN // | FORCECASE // | CALL -// -void HlslGrammar::acceptAttributes() +// | DOMAIN +// | EARLYDEPTHSTENCIL +// | INSTANCE +// | MAXTESSFACTOR +// | OUTPUTCONTROLPOINTS +// | OUTPUTTOPOLOGY +// | PARTITIONING +// | PATCHCONSTANTFUNC +// | NUMTHREADS LEFT_PAREN x_size, y_size,z z_size RIGHT_PAREN +// +void HlslGrammar::acceptAttributes(TAttributeMap& attributes) { - // For now, accept the [ XXX(X) ] syntax, but drop. + // For now, accept the [ XXX(X) ] syntax, but drop all but + // numthreads, which is used to set the CS local size. // TODO: subset to correct set? Pass on? do { + HlslToken idToken; + // LEFT_BRACKET? if (! acceptTokenClass(EHTokLeftBracket)) return; // attribute - if (peekTokenClass(EHTokIdentifier)) { - // 'token.string' is the attribute - advanceToken(); + if (acceptIdentifier(idToken)) { + // 'idToken.string' is the attribute } else if (! peekTokenClass(EHTokRightBracket)) { expected("identifier"); advanceToken(); } - // (x) + TIntermAggregate* expressions = nullptr; + + // (x, ...) if (acceptTokenClass(EHTokLeftParen)) { + expressions = new TIntermAggregate; + TIntermTyped* node; - if (! acceptLiteral(node)) - expected("literal"); - // 'node' has the literal in it + bool expectingExpression = false; + + while (acceptAssignmentExpression(node)) { + expectingExpression = false; + expressions->getSequence().push_back(node); + if (acceptTokenClass(EHTokComma)) + expectingExpression = true; + } + + // 'expressions' is an aggregate with the expressions in it if (! acceptTokenClass(EHTokRightParen)) expected(")"); + + // Error for partial or missing expression + if (expectingExpression || expressions->getSequence().empty()) + expected("expression"); } // RIGHT_BRACKET - if (acceptTokenClass(EHTokRightBracket)) - continue; - - expected("]"); - return; + if (!acceptTokenClass(EHTokRightBracket)) { + expected("]"); + return; + } + // Add any values we found into the attribute map. This accepts + // (and ignores) values not mapping to a known TAttributeType; + attributes.setAttribute(idToken.string, expressions); } while (true); } @@ -2600,31 +2943,41 @@ bool HlslGrammar::acceptDefaultLabel(TIntermNode*& statement) } // array_specifier -// : LEFT_BRACKET integer_expression RGHT_BRACKET post_decls // optional +// : LEFT_BRACKET integer_expression RGHT_BRACKET ... // optional +// : LEFT_BRACKET RGHT_BRACKET // optional // void HlslGrammar::acceptArraySpecifier(TArraySizes*& arraySizes) { arraySizes = nullptr; - if (! acceptTokenClass(EHTokLeftBracket)) + // Early-out if there aren't any array dimensions + if (!peekTokenClass(EHTokLeftBracket)) return; - TSourceLoc loc = token.loc; - TIntermTyped* sizeExpr; - if (! acceptAssignmentExpression(sizeExpr)) { - expected("array-sizing expression"); - return; - } + // If we get here, we have at least one array dimension. This will track the sizes we find. + arraySizes = new TArraySizes; - if (! acceptTokenClass(EHTokRightBracket)) { - expected("]"); - return; - } + // Collect each array dimension. + while (acceptTokenClass(EHTokLeftBracket)) { + TSourceLoc loc = token.loc; + TIntermTyped* sizeExpr = nullptr; - TArraySize arraySize; - parseContext.arraySizeCheck(loc, sizeExpr, arraySize); - arraySizes = new TArraySizes; - arraySizes->addInnerSize(arraySize); + // Array sizing expression is optional. If ommitted, array will be later sized by initializer list. + const bool hasArraySize = acceptAssignmentExpression(sizeExpr); + + if (! acceptTokenClass(EHTokRightBracket)) { + expected("]"); + return; + } + + if (hasArraySize) { + TArraySize arraySize; + parseContext.arraySizeCheck(loc, sizeExpr, arraySize); + arraySizes->addInnerSize(arraySize); + } else { + arraySizes->addInnerSize(0); // sized by initializers. + } + } } // post_decls diff --git a/hlsl/hlslGrammar.h b/hlsl/hlslGrammar.h index 992eb5e986ad5eedc021af965397480d1dbbeec2..8804b217ec76ebdb1d11abac98ba299627cef68b 100755 --- a/hlsl/hlslGrammar.h +++ b/hlsl/hlslGrammar.h @@ -43,6 +43,8 @@ namespace glslang { + class TAttributeMap; // forward declare + // Should just be the grammar aspect of HLSL. // Described in more detail in hlslGrammar.cpp. @@ -70,9 +72,11 @@ namespace glslang { bool acceptQualifier(TQualifier&); bool acceptLayoutQualifierList(TQualifier&); bool acceptType(TType&); - bool acceptTemplateType(TBasicType&); + bool acceptTemplateVecMatBasicType(TBasicType&); bool acceptVectorTemplateType(TType&); bool acceptMatrixTemplateType(TType&); + bool acceptStreamOutTemplateType(TType&, TLayoutGeometry&); + bool acceptOutputPrimitiveGeometry(TLayoutGeometry&); bool acceptAnnotations(TQualifier&); bool acceptSamplerType(TType&); bool acceptTextureType(TType&); @@ -80,7 +84,7 @@ namespace glslang { bool acceptStructDeclarationList(TTypeList*&); bool acceptFunctionParameters(TFunction&); bool acceptParameterDeclaration(TFunction&); - bool acceptFunctionDefinition(TFunction&, TIntermNode*&); + bool acceptFunctionDefinition(TFunction&, TIntermNode*&, const TAttributeMap&); bool acceptParenExpression(TIntermTyped*&); bool acceptExpression(TIntermTyped*&); bool acceptInitializer(TIntermTyped*&); @@ -98,7 +102,7 @@ namespace glslang { bool acceptScopedStatement(TIntermNode*&); bool acceptScopedCompoundStatement(TIntermNode*&); bool acceptNestedStatement(TIntermNode*&); - void acceptAttributes(); + void acceptAttributes(TAttributeMap&); bool acceptSelectionStatement(TIntermNode*&); bool acceptSwitchStatement(TIntermNode*&); bool acceptIterationStatement(TIntermNode*&); diff --git a/hlsl/hlslParseHelper.cpp b/hlsl/hlslParseHelper.cpp index 63cd5ecf5a5df34af223790240017a54dd5f9e5f..62dac4bfa57bcc95d549ab9663b83d447d0abc82 100755 --- a/hlsl/hlslParseHelper.cpp +++ b/hlsl/hlslParseHelper.cpp @@ -37,37 +37,38 @@ #include "hlslParseHelper.h" #include "hlslScanContext.h" #include "hlslGrammar.h" +#include "hlslAttributes.h" #include "../glslang/MachineIndependent/Scan.h" #include "../glslang/MachineIndependent/preprocessor/PpContext.h" #include "../glslang/OSDependent/osinclude.h" -#include <cstdarg> #include <algorithm> +#include <functional> +#include <cctype> namespace glslang { -HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool /*parsingBuiltins*/, +HlslParseContext::HlslParseContext(TSymbolTable& symbolTable, TIntermediate& interm, bool parsingBuiltins, int version, EProfile profile, const SpvVersion& spvVersion, EShLanguage language, TInfoSink& infoSink, + const TString sourceEntryPointName, bool forwardCompatible, EShMessages messages) : - TParseContextBase(symbolTable, interm, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), + TParseContextBase(symbolTable, interm, parsingBuiltins, version, profile, spvVersion, language, infoSink, forwardCompatible, messages), contextPragma(true, false), loopNestingLevel(0), annotationNestingLevel(0), structNestingLevel(0), controlFlowNestingLevel(0), - postMainReturn(false), + postEntryPointReturn(false), limits(resources.limits), entryPointOutput(nullptr), - nextInLocation(0), nextOutLocation(0) + nextInLocation(0), nextOutLocation(0), + sourceEntryPointName(sourceEntryPointName) { - // ensure we always have a linkage node, even if empty, to simplify tree topology algorithms - linkage = new TIntermAggregate; - globalUniformDefaults.clear(); - globalUniformDefaults.layoutMatrix = ElmColumnMajor; + globalUniformDefaults.layoutMatrix = ElmRowMajor; globalUniformDefaults.layoutPacking = ElpStd140; globalBufferDefaults.clear(); - globalBufferDefaults.layoutMatrix = ElmColumnMajor; + globalBufferDefaults.layoutMatrix = ElmRowMajor; globalBufferDefaults.layoutPacking = ElpStd430; globalInputDefaults.clear(); @@ -117,8 +118,6 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& currentScanner = &input; ppContext.setInput(input, versionWillBeError); - HlslScanContext::fillInKeywordMap(); // TODO: right place, and include the delete too - HlslScanContext scanContext(*this, ppContext); HlslGrammar grammar(scanContext, *this); if (!grammar.parse()) { @@ -130,9 +129,304 @@ bool HlslParseContext::parseShaderStrings(TPpContext& ppContext, TInputScanner& return false; } + finish(); + return numErrors == 0; } +// +// Return true if this l-value node should be converted in some manner. +// For instance: turning a load aggregate into a store in an l-value. +// +bool HlslParseContext::shouldConvertLValue(const TIntermNode* node) const +{ + if (node == nullptr) + return false; + + const TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + + if (lhsAsAggregate != nullptr && lhsAsAggregate->getOp() == EOpImageLoad) + return true; + + return false; +} + +// +// Return a TLayoutFormat corresponding to the given texture type. +// +TLayoutFormat HlslParseContext::getLayoutFromTxType(const TSourceLoc& loc, const TType& txType) +{ + const int components = txType.getVectorSize(); + + const auto selectFormat = [this,&components](TLayoutFormat v1, TLayoutFormat v2, TLayoutFormat v4) -> TLayoutFormat { + if (intermediate.getNoStorageFormat()) + return ElfNone; + + return components == 1 ? v1 : + components == 2 ? v2 : v4; + }; + + switch (txType.getBasicType()) { + case EbtFloat: return selectFormat(ElfR32f, ElfRg32f, ElfRgba32f); + case EbtInt: return selectFormat(ElfR32i, ElfRg32i, ElfRgba32i); + case EbtUint: return selectFormat(ElfR32ui, ElfRg32ui, ElfRgba32ui); + default: + error(loc, "unknown basic type in image format", "", ""); + return ElfNone; + } +} + +// +// Both test and if necessary, spit out an error, to see if the node is really +// an l-value that can be operated on this way. +// +// Returns true if there was an error. +// +bool HlslParseContext::lValueErrorCheck(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + if (shouldConvertLValue(node)) { + // if we're writing to a texture, it must be an RW form. + + TIntermAggregate* lhsAsAggregate = node->getAsAggregate(); + TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); + + if (!object->getType().getSampler().isImage()) { + error(loc, "operator[] on a non-RW texture must be an r-value", "", ""); + return true; + } + } + + // Let the base class check errors + return TParseContextBase::lValueErrorCheck(loc, op, node); +} + +// +// This function handles l-value conversions and verifications. It uses, but is not synonymous +// with lValueErrorCheck. That function accepts an l-value directly, while this one must be +// given the surrounding tree - e.g, with an assignment, so we can convert the assign into a +// series of other image operations. +// +// Most things are passed through unmodified, except for error checking. +// +TIntermTyped* HlslParseContext::handleLvalue(const TSourceLoc& loc, const char* op, TIntermTyped* node) +{ + if (node == nullptr) + return nullptr; + + TIntermBinary* nodeAsBinary = node->getAsBinaryNode(); + TIntermUnary* nodeAsUnary = node->getAsUnaryNode(); + TIntermAggregate* sequence = nullptr; + + TIntermTyped* lhs = nodeAsUnary ? nodeAsUnary->getOperand() : + nodeAsBinary ? nodeAsBinary->getLeft() : + nullptr; + + // Early bail out if there is no conversion to apply + if (!shouldConvertLValue(lhs)) { + if (lhs != nullptr) + if (lValueErrorCheck(loc, op, lhs)) + return nullptr; + return node; + } + + // *** If we get here, we're going to apply some conversion to an l-value. + + // Helper to create a load. + const auto makeLoad = [&](TIntermSymbol* rhsTmp, TIntermTyped* object, TIntermTyped* coord, const TType& derefType) { + TIntermAggregate* loadOp = new TIntermAggregate(EOpImageLoad); + loadOp->setLoc(loc); + loadOp->getSequence().push_back(object); + loadOp->getSequence().push_back(intermediate.addSymbol(*coord->getAsSymbolNode())); + loadOp->setType(derefType); + + sequence = intermediate.growAggregate(sequence, + intermediate.addAssign(EOpAssign, rhsTmp, loadOp, loc), + loc); + }; + + // Helper to create a store. + const auto makeStore = [&](TIntermTyped* object, TIntermTyped* coord, TIntermSymbol* rhsTmp) { + TIntermAggregate* storeOp = new TIntermAggregate(EOpImageStore); + storeOp->getSequence().push_back(object); + storeOp->getSequence().push_back(coord); + storeOp->getSequence().push_back(intermediate.addSymbol(*rhsTmp)); + storeOp->setLoc(loc); + storeOp->setType(TType(EbtVoid)); + + sequence = intermediate.growAggregate(sequence, storeOp); + }; + + // Helper to create an assign. + const auto makeBinary = [&](TOperator op, TIntermTyped* lhs, TIntermTyped* rhs) { + sequence = intermediate.growAggregate(sequence, + intermediate.addBinaryNode(op, lhs, rhs, loc, lhs->getType()), + loc); + }; + + // Helper to complete sequence by adding trailing variable, so we evaluate to the right value. + const auto finishSequence = [&](TIntermSymbol* rhsTmp, const TType& derefType) -> TIntermAggregate* { + // Add a trailing use of the temp, so the sequence returns the proper value. + sequence = intermediate.growAggregate(sequence, intermediate.addSymbol(*rhsTmp)); + sequence->setOperator(EOpSequence); + sequence->setLoc(loc); + sequence->setType(derefType); + + return sequence; + }; + + // Helper to add unary op + const auto makeUnary = [&](TOperator op, TIntermSymbol* rhsTmp) { + sequence = intermediate.growAggregate(sequence, + intermediate.addUnaryNode(op, intermediate.addSymbol(*rhsTmp), loc, + rhsTmp->getType()), + loc); + }; + + // helper to create a temporary variable + const auto addTmpVar = [&](const char* name, const TType& derefType) -> TIntermSymbol* { + TVariable* tmpVar = makeInternalVariable(name, derefType); + tmpVar->getWritableType().getQualifier().makeTemporary(); + return intermediate.addSymbol(*tmpVar, loc); + }; + + TIntermAggregate* lhsAsAggregate = lhs->getAsAggregate(); + TIntermTyped* object = lhsAsAggregate->getSequence()[0]->getAsTyped(); + TIntermTyped* coord = lhsAsAggregate->getSequence()[1]->getAsTyped(); + + const TSampler& texSampler = object->getType().getSampler(); + + const TType objDerefType(texSampler.type, EvqTemporary, texSampler.vectorSize); + + if (nodeAsBinary) { + TIntermTyped* rhs = nodeAsBinary->getRight(); + const TOperator assignOp = nodeAsBinary->getOp(); + + bool isModifyOp = false; + + switch (assignOp) { + case EOpAddAssign: + case EOpSubAssign: + case EOpMulAssign: + case EOpVectorTimesMatrixAssign: + case EOpVectorTimesScalarAssign: + case EOpMatrixTimesScalarAssign: + case EOpMatrixTimesMatrixAssign: + case EOpDivAssign: + case EOpModAssign: + case EOpAndAssign: + case EOpInclusiveOrAssign: + case EOpExclusiveOrAssign: + case EOpLeftShiftAssign: + case EOpRightShiftAssign: + isModifyOp = true; + // fall through... + case EOpAssign: + { + // Since this is an lvalue, we'll convert an image load to a sequence like this (to still provide the value): + // OpSequence + // OpImageStore(object, lhs, rhs) + // rhs + // But if it's not a simple symbol RHS (say, a fn call), we don't want to duplicate the RHS, so we'll convert + // instead to this: + // OpSequence + // rhsTmp = rhs + // OpImageStore(object, coord, rhsTmp) + // rhsTmp + // If this is a read-modify-write op, like +=, we issue: + // OpSequence + // coordtmp = load's param1 + // rhsTmp = OpImageLoad(object, coordTmp) + // rhsTmp op= rhs + // OpImageStore(object, coordTmp, rhsTmp) + // rhsTmp + + TIntermSymbol* rhsTmp = rhs->getAsSymbolNode(); + TIntermTyped* coordTmp = coord; + + if (rhsTmp == nullptr || isModifyOp) { + rhsTmp = addTmpVar("storeTemp", objDerefType); + + // Assign storeTemp = rhs + if (isModifyOp) { + // We have to make a temp var for the coordinate, to avoid evaluating it twice. + coordTmp = addTmpVar("coordTemp", coord->getType()); + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) + } + + // rhsTmp op= rhs. + makeBinary(assignOp, intermediate.addSymbol(*rhsTmp), rhs); + } + + makeStore(object, coordTmp, rhsTmp); // add a store + return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence + } + + default: + break; + } + } + + if (nodeAsUnary) { + const TOperator assignOp = nodeAsUnary->getOp(); + + switch (assignOp) { + case EOpPreIncrement: + case EOpPreDecrement: + { + // We turn this into: + // OpSequence + // coordtmp = load's param1 + // rhsTmp = OpImageLoad(object, coordTmp) + // rhsTmp op + // OpImageStore(object, coordTmp, rhsTmp) + // rhsTmp + + TIntermSymbol* rhsTmp = addTmpVar("storeTemp", objDerefType); + TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); + + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp, object, coordTmp, objDerefType); // rhsTmp = OpImageLoad(object, coordTmp) + makeUnary(assignOp, rhsTmp); // op rhsTmp + makeStore(object, coordTmp, rhsTmp); // OpImageStore(object, coordTmp, rhsTmp) + return finishSequence(rhsTmp, objDerefType); // return rhsTmp from sequence + } + + case EOpPostIncrement: + case EOpPostDecrement: + { + // We turn this into: + // OpSequence + // coordtmp = load's param1 + // rhsTmp1 = OpImageLoad(object, coordTmp) + // rhsTmp2 = rhsTmp1 + // rhsTmp2 op + // OpImageStore(object, coordTmp, rhsTmp2) + // rhsTmp1 (pre-op value) + TIntermSymbol* rhsTmp1 = addTmpVar("storeTempPre", objDerefType); + TIntermSymbol* rhsTmp2 = addTmpVar("storeTempPost", objDerefType); + TIntermTyped* coordTmp = addTmpVar("coordTemp", coord->getType()); + + makeBinary(EOpAssign, coordTmp, coord); // coordtmp = load[param1] + makeLoad(rhsTmp1, object, coordTmp, objDerefType); // rhsTmp1 = OpImageLoad(object, coordTmp) + makeBinary(EOpAssign, rhsTmp2, rhsTmp1); // rhsTmp2 = rhsTmp1 + makeUnary(assignOp, rhsTmp2); // rhsTmp op + makeStore(object, coordTmp, rhsTmp2); // OpImageStore(object, coordTmp, rhsTmp2) + return finishSequence(rhsTmp1, objDerefType); // return rhsTmp from sequence + } + + default: + break; + } + } + + if (lhs) + if (lValueErrorCheck(loc, op, lhs)) + return nullptr; + + return node; +} + void HlslParseContext::handlePragma(const TSourceLoc& loc, const TVector<TString>& tokens) { if (pragmaCallback) @@ -236,69 +530,6 @@ bool HlslParseContext::parseVectorFields(const TSourceLoc& loc, const TString& c return true; } -// -// Used to output syntax, parsing, and semantic errors. -// - -void HlslParseContext::outputMessage(const TSourceLoc& loc, const char* szReason, - const char* szToken, - const char* szExtraInfoFormat, - TPrefixType prefix, va_list args) -{ - const int maxSize = MaxTokenLength + 200; - char szExtraInfo[maxSize]; - - safe_vsprintf(szExtraInfo, maxSize, szExtraInfoFormat, args); - - infoSink.info.prefix(prefix); - infoSink.info.location(loc); - infoSink.info << "'" << szToken << "' : " << szReason << " " << szExtraInfo << "\n"; - - if (prefix == EPrefixError) { - ++numErrors; - } -} - -void C_DECL HlslParseContext::error(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (messages & EShMsgOnlyPreprocessor) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); -} - -void C_DECL HlslParseContext::warn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - if (suppressWarnings()) - return; - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - -void C_DECL HlslParseContext::ppError(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixError, args); - va_end(args); -} - -void C_DECL HlslParseContext::ppWarn(const TSourceLoc& loc, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...) -{ - va_list args; - va_start(args, szExtraInfoFormat); - outputMessage(loc, szReason, szToken, szExtraInfoFormat, EPrefixWarning, args); - va_end(args); -} - // // Handle seeing a variable identifier in the grammar. // @@ -315,19 +546,6 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* s if (symbol && symbol->getNumExtensions()) requireExtensions(loc, symbol->getNumExtensions(), symbol->getExtensions(), symbol->getName().c_str()); - if (symbol && symbol->isReadOnly()) { - // All shared things containing an implicitly sized array must be copied up - // on first use, so that all future references will share its array structure, - // so that editing the implicit size will effect all nodes consuming it, - // and so that editing the implicit size won't change the shared one. - // - // If this is a variable or a block, check it and all it contains, but if this - // is a member of an anonymous block, check the whole block, as the whole block - // will need to be copied up if it contains an implicitly-sized array. - if (symbol->getType().containsImplicitlySizedArray() || (symbol->getAsAnonMember() && symbol->getAsAnonMember()->getAnonContainer().getType().containsImplicitlySizedArray())) - makeEditable(symbol); - } - const TVariable* variable; const TAnonMember* anon = symbol ? symbol->getAsAnonMember() : nullptr; TIntermTyped* node = nullptr; @@ -361,8 +579,10 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* s } // Recovery, if it wasn't found or was not a variable. - if (! variable) + if (! variable) { + error(loc, "unknown variable", string->c_str(), ""); variable = new TVariable(string, TType(EbtVoid)); + } if (variable->getType().getQualifier().isFrontEndConstant()) node = intermediate.addConstantUnion(variable->getConstArray(), variable->getType(), loc); @@ -376,13 +596,47 @@ TIntermTyped* HlslParseContext::handleVariable(const TSourceLoc& loc, TSymbol* s return node; } +// +// Handle operator[] on any objects it applies to. Currently: +// Textures +// Buffers +// +TIntermTyped* HlslParseContext::handleBracketOperator(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) +{ + // handle r-value operator[] on textures and images. l-values will be processed later. + if (base->getType().getBasicType() == EbtSampler && !base->isArray()) { + const TSampler& sampler = base->getType().getSampler(); + if (sampler.isImage() || sampler.isTexture()) { + TIntermAggregate* load = new TIntermAggregate(sampler.isImage() ? EOpImageLoad : EOpTextureFetch); + + load->setType(TType(sampler.type, EvqTemporary, sampler.vectorSize)); + load->setLoc(loc); + load->getSequence().push_back(base); + load->getSequence().push_back(index); + + // Textures need a MIP. First indirection is always to mip 0. If there's another, we'll add it + // later. + if (sampler.isTexture()) + load->getSequence().push_back(intermediate.addConstantUnion(0, loc, true)); + + return load; + } + } + + return nullptr; +} + // // Handle seeing a base[index] dereference in the grammar. // TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, TIntermTyped* base, TIntermTyped* index) { - TIntermTyped* result = nullptr; + TIntermTyped* result = handleBracketOperator(loc, base, index); + if (result != nullptr) + return result; // it was handled as an operator[] + + bool flattened = false; int indexValue = 0; if (index->getQualifier().storage == EvqConst) { indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst(); @@ -400,15 +654,20 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, else { // at least one of base and index is variable... - if (base->getAsSymbolNode() && isIoResizeArray(base->getType())) - handleIoResizeArrayAccess(loc, base); + if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType()))) { + if (index->getQualifier().storage != EvqConst) + error(loc, "Invalid variable index to flattened uniform array", base->getAsSymbolNode()->getName().c_str(), ""); - if (index->getQualifier().storage == EvqConst) { - if (base->getType().isImplicitlySizedArray()) - updateImplicitArraySize(loc, base, indexValue); - result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + result = flattenAccess(loc, base, indexValue); + flattened = (result != base); } else { - result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); + if (index->getQualifier().storage == EvqConst) { + if (base->getType().isImplicitlySizedArray()) + updateImplicitArraySize(loc, base, indexValue); + result = intermediate.addIndex(EOpIndexDirect, base, index, loc); + } else { + result = intermediate.addIndex(EOpIndexIndirect, base, index, loc); + } } } @@ -416,13 +675,18 @@ TIntermTyped* HlslParseContext::handleBracketDereference(const TSourceLoc& loc, // Insert dummy error-recovery result result = intermediate.addConstantUnion(0.0, EbtFloat, loc); } else { - // Insert valid dereferenced result - TType newType(base->getType(), 0); // dereferenced type - if (base->getType().getQualifier().storage == EvqConst && index->getQualifier().storage == EvqConst) - newType.getQualifier().storage = EvqConst; - else - newType.getQualifier().storage = EvqTemporary; - result->setType(newType); + // If the array reference was flattened, it has the correct type. E.g, if it was + // a uniform array, it was flattened INTO a set of scalar uniforms, not scalar temps. + // In that case, we preserve the qualifiers. + if (!flattened) { + // Insert valid dereferenced result + TType newType(base->getType(), 0); // dereferenced type + if (base->getType().getQualifier().storage == EvqConst && index->getQualifier().storage == EvqConst) + newType.getQualifier().storage = EvqConst; + else + newType.getQualifier().storage = EvqTemporary; + result->setType(newType); + } } return result; @@ -433,125 +697,6 @@ void HlslParseContext::checkIndex(const TSourceLoc& /*loc*/, const TType& /*type // HLSL todo: any rules for index fixups? } -// Make a shared symbol have a non-shared version that can be edited by the current -// compile, such that editing its type will not change the shared version and will -// effect all nodes sharing it. -void HlslParseContext::makeEditable(TSymbol*& symbol) -{ - // copyUp() does a deep copy of the type. - symbol = symbolTable.copyUp(symbol); - - // Also, see if it's tied to IO resizing - if (isIoResizeArray(symbol->getType())) - ioArraySymbolResizeList.push_back(symbol); - - // Also, save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, *symbol); -} - -TVariable* HlslParseContext::getEditableVariable(const char* name) -{ - bool builtIn; - TSymbol* symbol = symbolTable.find(name, &builtIn); - if (builtIn) - makeEditable(symbol); - - return symbol->getAsVariable(); -} - -// Return true if this is a geometry shader input array or tessellation control output array. -bool HlslParseContext::isIoResizeArray(const TType& type) const -{ - return type.isArray() && - ((language == EShLangGeometry && type.getQualifier().storage == EvqVaryingIn) || - (language == EShLangTessControl && type.getQualifier().storage == EvqVaryingOut && ! type.getQualifier().patch)); -} - -// If an array is not isIoResizeArray() but is an io array, make sure it has the right size -void HlslParseContext::fixIoArraySize(const TSourceLoc& loc, TType& type) -{ - if (! type.isArray() || type.getQualifier().patch || symbolTable.atBuiltInLevel()) - return; - - assert(! isIoResizeArray(type)); - - if (type.getQualifier().storage != EvqVaryingIn || type.getQualifier().patch) - return; - - if (language == EShLangTessControl || language == EShLangTessEvaluation) { - if (type.getOuterArraySize() != resources.maxPatchVertices) { - if (type.isExplicitlySizedArray()) - error(loc, "tessellation input array size must be gl_MaxPatchVertices or implicitly sized", "[]", ""); - type.changeOuterArraySize(resources.maxPatchVertices); - } - } -} - -// Handle a dereference of a geometry shader input array or tessellation control output array. -// See ioArraySymbolResizeList comment in ParseHelper.h. -// -void HlslParseContext::handleIoResizeArrayAccess(const TSourceLoc& /*loc*/, TIntermTyped* base) -{ - TIntermSymbol* symbolNode = base->getAsSymbolNode(); - assert(symbolNode); - if (! symbolNode) - return; - - // fix array size, if it can be fixed and needs to be fixed (will allow variable indexing) - if (symbolNode->getType().isImplicitlySizedArray()) { - int newSize = getIoArrayImplicitSize(); - if (newSize > 0) - symbolNode->getWritableType().changeOuterArraySize(newSize); - } -} - -// If there has been an input primitive declaration (geometry shader) or an output -// number of vertices declaration(tessellation shader), make sure all input array types -// match it in size. Types come either from nodes in the AST or symbols in the -// symbol table. -// -// Types without an array size will be given one. -// Types already having a size that is wrong will get an error. -// -void HlslParseContext::checkIoArraysConsistency(const TSourceLoc& loc, bool tailOnly) -{ - int requiredSize = getIoArrayImplicitSize(); - if (requiredSize == 0) - return; - - const char* feature; - if (language == EShLangGeometry) - feature = TQualifier::getGeometryString(intermediate.getInputPrimitive()); - else if (language == EShLangTessControl) - feature = "vertices"; - else - feature = "unknown"; - - if (tailOnly) { - checkIoArrayConsistency(loc, requiredSize, feature, ioArraySymbolResizeList.back()->getWritableType(), ioArraySymbolResizeList.back()->getName()); - return; - } - - for (size_t i = 0; i < ioArraySymbolResizeList.size(); ++i) - checkIoArrayConsistency(loc, requiredSize, feature, ioArraySymbolResizeList[i]->getWritableType(), ioArraySymbolResizeList[i]->getName()); -} - -int HlslParseContext::getIoArrayImplicitSize() const -{ - if (language == EShLangGeometry) - return TQualifier::mapGeometryToSize(intermediate.getInputPrimitive()); - else if (language == EShLangTessControl) - return intermediate.getVertices() != TQualifier::layoutNotSet ? intermediate.getVertices() : 0; - else - return 0; -} - -void HlslParseContext::checkIoArrayConsistency(const TSourceLoc& /*loc*/, int requiredSize, const char* /*feature*/, TType& type, const TString& /*name*/) -{ - if (type.isImplicitlySizedArray()) - type.changeOuterArraySize(requiredSize); -} - // Handle seeing a binary node with a math operation. TIntermTyped* HlslParseContext::handleBinaryMath(const TSourceLoc& loc, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right) { @@ -612,12 +757,19 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt field == "SampleLevel") { // If it's not a method on a sampler object, we fall through in case it is a struct member. if (base->getType().getBasicType() == EbtSampler) { - const TSampler& texType = base->getType().getSampler(); - if (! texType.isPureSampler()) { - const int vecSize = texType.isShadow() ? 1 : 4; - return intermediate.addMethod(base, TType(texType.type, EvqTemporary, vecSize), &field, loc); + const TSampler& sampler = base->getType().getSampler(); + if (! sampler.isPureSampler()) { + const int vecSize = sampler.isShadow() ? 1 : 4; // TODO: handle arbitrary sample return sizes + return intermediate.addMethod(base, TType(sampler.type, EvqTemporary, vecSize), &field, loc); } } + } else if (field == "Append" || + field == "RestartStrip") { + // These methods only valid on stage in variables + // TODO: ... which are stream out types, if there's any way to test that here. + if (base->getType().getQualifier().storage == EvqVaryingOut) { + return intermediate.addMethod(base, TType(EbtVoid), &field, loc); + } } // It's not .length() if we get to here. @@ -682,8 +834,8 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt } } if (fieldFound) { - if (base->getAsSymbolNode() && shouldFlatten(base->getType())) - result = flattenAccess(base, member); + if (base->getAsSymbolNode() && (wasFlattened(base) || shouldFlatten(base->getType()))) + result = flattenAccess(loc, base, member); else { if (base->getType().getQualifier().storage == EvqConst) result = intermediate.foldDereference(base, member, loc); @@ -701,9 +853,15 @@ TIntermTyped* HlslParseContext::handleDotDereference(const TSourceLoc& loc, TInt return result; } -// Is this an aggregate that can't be passed down the stack? -// E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. +// Determine whether we should flatten an arbitrary type. bool HlslParseContext::shouldFlatten(const TType& type) const +{ + return shouldFlattenIO(type) || shouldFlattenUniform(type); +} + +// Is this an IO variable that can't be passed down the stack? +// E.g., pipeline inputs to the vertex stage and outputs from the fragment stage. +bool HlslParseContext::shouldFlattenIO(const TType& type) const { if (! inEntryPoint) return false; @@ -715,6 +873,105 @@ bool HlslParseContext::shouldFlatten(const TType& type) const qualifier == EvqVaryingOut); } +// Is this a uniform array which should be flattened? +bool HlslParseContext::shouldFlattenUniform(const TType& type) const +{ + const TStorageQualifier qualifier = type.getQualifier().storage; + + return ((type.isArray() && intermediate.getFlattenUniformArrays()) || type.isStruct()) && + qualifier == EvqUniform && + type.containsOpaque(); +} + +// Top level variable flattening: construct data +void HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable) +{ + const TType& type = variable.getType(); + + // emplace gives back a pair whose .first is an iterator to the item... + auto entry = flattenMap.emplace(variable.getUniqueId(), + TFlattenData(type.getQualifier().layoutBinding)); + + // ... and the item is a map pair, so first->second is the TFlattenData itself. + flatten(loc, variable, type, entry.first->second, ""); +} + +// Recursively flatten the given variable at the provided type, building the flattenData as we go. +// +// This is mutually recursive with flattenStruct and flattenArray. +// We are going to flatten an arbitrarily nested composite structure into a linear sequence of +// members, and later on, we want to turn a path through the tree structure into a final +// location in this linear sequence. +// +// If the tree was N-ary, that can be directly calculated. However, we are dealing with +// arbitrary numbers - peraps a struct of 7 members containing an array of 3. Thus, we must +// build a data structure to allow the sequence of bracket and dot operators on arrays and +// structs to arrive at the proper member. +// +// To avoid storing a tree with pointers, we are going to flatten the tree into a vector of integers. +// The leaves are the indexes into the flattened member array. +// Each level will have the next location for the Nth item stored sequentially, so for instance: +// +// struct { float2 a[2]; int b; float4 c[3] }; +// +// This will produce the following flattened tree: +// Pos: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 +// (3, 7, 8, 5, 6, 0, 1, 2, 11, 12, 13, 3, 4, 5} +// +// Given a reference to mystruct.c[1], the access chain is (2,1), so we traverse: +// (0+2) = 8 --> (8+1) = 12 --> 12 = 4 +// +// so the 4th flattened member in traversal order is ours. +// +int HlslParseContext::flatten(const TSourceLoc& loc, const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name) +{ + // TODO: when struct splitting is in place we can remove this restriction. + if (language == EShLangGeometry) { + const TType derefType(type, 0); + if (!isFinalFlattening(derefType) && type.getQualifier().storage == EvqVaryingIn) + error(loc, "recursive type not yet supported in GS input", variable.getName().c_str(), ""); + } + + // If something is an arrayed struct, the array flattener will recursively call flatten() + // to then flatten the struct, so this is an "if else": we don't do both. + if (type.isArray()) + return flattenArray(loc, variable, type, flattenData, name); + else if (type.isStruct()) + return flattenStruct(loc, variable, type, flattenData, name); + else { + assert(0); // should never happen + return -1; + } +} + +// Add a single flattened member to the flattened data being tracked for the composite +// Returns true for the final flattening level. +int HlslParseContext::addFlattenedMember(const TSourceLoc& loc, + const TVariable& variable, const TType& type, TFlattenData& flattenData, + const TString& memberName, bool track) +{ + if (isFinalFlattening(type)) { + // This is as far as we flatten. Insert the variable. + TVariable* memberVariable = makeInternalVariable(memberName.c_str(), type); + mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier()); + + if (flattenData.nextBinding != TQualifier::layoutBindingEnd) + memberVariable->getWritableType().getQualifier().layoutBinding = flattenData.nextBinding++; + + flattenData.offsets.push_back(static_cast<int>(flattenData.members.size())); + flattenData.members.push_back(memberVariable); + + if (track) + trackLinkageDeferred(*memberVariable); + + return static_cast<int>(flattenData.offsets.size())-1; // location of the member reference + } else { + // Further recursion required + return flatten(loc, variable, type, flattenData, memberName); + } +} + // Figure out the mapping between an aggregate's top members and an // equivalent set of individual variables. // @@ -722,38 +979,103 @@ bool HlslParseContext::shouldFlatten(const TType& type) const // effecting a transfer of this information to the flattened variable form. // // Assumes shouldFlatten() or equivalent was called first. -// -// TODO: generalize this to arbitrary nesting? -void HlslParseContext::flatten(const TVariable& variable) +int HlslParseContext::flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name) { - TVector<TVariable*> memberVariables; + assert(type.isStruct()); + + auto members = *type.getStruct(); + + // Reserve space for this tree level. + int start = static_cast<int>(flattenData.offsets.size()); + int pos = start; + flattenData.offsets.resize(int(pos + members.size()), -1); - auto members = *variable.getType().getStruct(); for (int member = 0; member < (int)members.size(); ++member) { - TVariable* memberVariable = makeInternalVariable(members[member].type->getFieldName().c_str(), - *members[member].type); - mergeQualifiers(memberVariable->getWritableType().getQualifier(), variable.getType().getQualifier()); - memberVariables.push_back(memberVariable); + TType& dereferencedType = *members[member].type; + const TString memberName = name + (name.empty() ? "" : ".") + dereferencedType.getFieldName(); + + const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, memberName, false); + flattenData.offsets[pos++] = mpos; // N.B. Erase I/O-related annotations from the source-type member. - members[member].type->getQualifier().makeTemporary(); + dereferencedType.getQualifier().makeTemporary(); } - flattenMap[variable.getUniqueId()] = memberVariables; + return start; } -// Turn an access into aggregate that was flattened to instead be -// an access to the individual variable the element/member was flattened to. +// Figure out mapping between an array's members and an +// equivalent set of individual variables. +// // Assumes shouldFlatten() or equivalent was called first. -TIntermTyped* HlslParseContext::flattenAccess(TIntermTyped* base, int member) +int HlslParseContext::flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType& type, + TFlattenData& flattenData, TString name) +{ + assert(type.isArray()); + + if (type.isImplicitlySizedArray()) + error(loc, "cannot flatten implicitly sized array", variable.getName().c_str(), ""); + + const int size = type.getOuterArraySize(); + const TType dereferencedType(type, 0); + + if (name.empty()) + name = variable.getName(); + + // Reserve space for this tree level. + int start = static_cast<int>(flattenData.offsets.size()); + int pos = start; + flattenData.offsets.resize(int(pos + size), -1); + + for (int element=0; element < size; ++element) { + char elementNumBuf[20]; // sufficient for MAXINT + snprintf(elementNumBuf, sizeof(elementNumBuf)-1, "[%d]", element); + const int mpos = addFlattenedMember(loc, variable, dereferencedType, flattenData, + name + elementNumBuf, true); + + flattenData.offsets[pos++] = mpos; + } + + return start; +} + +// Return true if we have flattened this node. +bool HlslParseContext::wasFlattened(const TIntermTyped* node) const { + return node != nullptr && + node->getAsSymbolNode() != nullptr && + wasFlattened(node->getAsSymbolNode()->getId()); +} + + +// Turn an access into an aggregate that was flattened to instead be +// an access to the individual variable the member was flattened to. +// Assumes shouldFlatten() or equivalent was called first. +TIntermTyped* HlslParseContext::flattenAccess(const TSourceLoc&, TIntermTyped* base, int member) +{ + const TType dereferencedType(base->getType(), member); // dereferenced type + const TIntermSymbol& symbolNode = *base->getAsSymbolNode(); - if (flattenMap.find(symbolNode.getId()) == flattenMap.end()) + const auto flattenData = flattenMap.find(symbolNode.getId()); + + if (flattenData == flattenMap.end()) return base; - const TVariable* memberVariable = flattenMap[symbolNode.getId()][member]; - return intermediate.addSymbol(*memberVariable); + // Calculate new cumulative offset from the packed tree + flattenOffset.back() = flattenData->second.offsets[flattenOffset.back() + member]; + + if (isFinalFlattening(dereferencedType)) { + // Finished flattening: create symbol for variable + member = flattenData->second.offsets[flattenOffset.back()]; + const TVariable* memberVariable = flattenData->second.members[member]; + return intermediate.addSymbol(*memberVariable); + } else { + // If this is not the final flattening, accumulate the position and return + // an object of the partially dereferenced type. + return new TIntermSymbol(symbolNode.getId(), "flattenShadow", dereferencedType); + } } // Variables that correspond to the user-interface in and out of a stage @@ -775,12 +1097,12 @@ void HlslParseContext::assignLocations(TVariable& variable) nextOutLocation += intermediate.computeTypeLocationSize(variable.getType()); } } - intermediate.addSymbolLinkageNode(linkage, variable); + trackLinkage(variable); } }; - if (shouldFlatten(variable.getType())) { - auto& memberList = flattenMap[variable.getUniqueId()]; + if (wasFlattened(variable.getUniqueId())) { + auto& memberList = flattenMap[variable.getUniqueId()].members; for (auto member = memberList.begin(); member != memberList.end(); ++member) assignLocation(**member); } else @@ -832,7 +1154,8 @@ TFunction& HlslParseContext::handleFunctionDeclarator(const TSourceLoc& loc, TFu // Handle seeing the function prototype in front of a function definition in the grammar. // The body is handled after this function returns. // -TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function) +TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& loc, TFunction& function, + const TAttributeMap& attributes) { currentCaller = function.getMangledName(); TSymbol* symbol = symbolTable.find(function.getMangledName()); @@ -864,12 +1187,17 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l remapEntryPointIO(function); if (entryPointOutput) { if (shouldFlatten(entryPointOutput->getType())) - flatten(*entryPointOutput); + flatten(loc, *entryPointOutput); assignLocations(*entryPointOutput); } } else remapNonEntryPointIO(function); + // Insert the $Global constant buffer. + // TODO: this design fails if new members are declared between function definitions. + if (! insertGlobalUniformBlock()) + error(loc, "failed to insert the global constant buffer", "uniform", ""); + // // New symbol table scope for body of function plus its arguments // @@ -896,7 +1224,7 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l // get IO straightened out if (inEntryPoint) { if (shouldFlatten(*param.type)) - flatten(*variable); + flatten(loc, *variable); assignLocations(*variable); } @@ -914,7 +1242,23 @@ TIntermAggregate* HlslParseContext::handleFunctionDefinition(const TSourceLoc& l intermediate.setAggregateOperator(paramNodes, EOpParameters, TType(EbtVoid), loc); loopNestingLevel = 0; controlFlowNestingLevel = 0; - postMainReturn = false; + postEntryPointReturn = false; + + // Handle function attributes + if (inEntryPoint) { + const TIntermAggregate* numThreads = attributes[EatNumThreads]; + if (numThreads != nullptr) { + const TIntermSequence& sequence = numThreads->getSequence(); + + for (int lid = 0; lid < int(sequence.size()); ++lid) + intermediate.setLocalSize(lid, sequence[lid]->getAsConstantUnion()->getConstArray()[0].getIConst()); + } + + const TIntermAggregate* maxVertexCount = attributes[EatMaxVertexCount]; + if (maxVertexCount != nullptr) { + intermediate.setVertices(maxVertexCount->getSequence()[0]->getAsConstantUnion()->getConstArray()[0].getIConst()); + } + } return paramNodes; } @@ -996,18 +1340,17 @@ void HlslParseContext::remapNonEntryPointIO(TFunction& function) TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermTyped* value) { functionReturnsValue = true; - TIntermTyped* converted = value; if (currentFunctionType->getBasicType() == EbtVoid) { error(loc, "void function cannot return a value", "return", ""); return intermediate.addBranch(EOpReturn, loc); } else if (*currentFunctionType != value->getType()) { - converted = intermediate.addConversion(EOpReturn, *currentFunctionType, value); - if (converted) { - return intermediate.addBranch(EOpReturn, converted, loc); - } else { + value = intermediate.addConversion(EOpReturn, *currentFunctionType, value); + if (value && *currentFunctionType != value->getType()) + value = intermediate.addShapeConversion(EOpReturn, *currentFunctionType, value); + if (value == nullptr) { error(loc, "type does not match, or is not convertible to, the function's return type", "return", ""); - converted = value; + return value; } } @@ -1020,9 +1363,9 @@ TIntermNode* HlslParseContext::handleReturnValue(const TSourceLoc& loc, TIntermT assert(entryPointOutput != nullptr); // should have been error tested at the beginning TIntermSymbol* left = new TIntermSymbol(entryPointOutput->getUniqueId(), entryPointOutput->getName(), entryPointOutput->getType()); - TIntermNode* returnSequence = handleAssign(loc, EOpAssign, left, converted); + TIntermNode* returnSequence = handleAssign(loc, EOpAssign, left, value); returnSequence = intermediate.makeAggregate(returnSequence); - returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc)); + returnSequence = intermediate.growAggregate(returnSequence, intermediate.addBranch(EOpReturn, loc), loc); returnSequence->getAsAggregate()->setOperator(EOpSequence); return returnSequence; @@ -1046,45 +1389,142 @@ void HlslParseContext::handleFunctionArgument(TFunction* function, TIntermTyped* // to intermediate.addAssign(). TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op, TIntermTyped* left, TIntermTyped* right) const { + if (left == nullptr || right == nullptr) + return nullptr; + const auto mustFlatten = [&](const TIntermTyped& node) { - return shouldFlatten(node.getType()) && node.getAsSymbolNode() && + return wasFlattened(&node) && node.getAsSymbolNode() && flattenMap.find(node.getAsSymbolNode()->getId()) != flattenMap.end(); }; - bool flattenLeft = mustFlatten(*left); - bool flattenRight = mustFlatten(*right); - if (! flattenLeft && ! flattenRight) - return intermediate.addAssign(op, left, right, loc); + const bool flattenLeft = mustFlatten(*left); + const bool flattenRight = mustFlatten(*right); + if (! flattenLeft && ! flattenRight) + return intermediate.addAssign(op, left, right, loc); + + TIntermAggregate* assignList = nullptr; + const TVector<TVariable*>* leftVariables = nullptr; + const TVector<TVariable*>* rightVariables = nullptr; + + // A temporary to store the right node's value, so we don't keep indirecting into it + // if it's not a simple symbol. + TVariable* rhsTempVar = nullptr; + + // If the RHS is a simple symbol node, we'll copy it for each member. + TIntermSymbol* cloneSymNode = nullptr; + + // Array structs are not yet handled in flattening. (Compilation error upstream, so + // this should never fire). + assert(!(left->getType().isStruct() && left->getType().isArray())); + + int memberCount = 0; + + // Track how many items there are to copy. + if (left->getType().isStruct()) + memberCount = (int)left->getType().getStruct()->size(); + if (left->getType().isArray()) + memberCount = left->getType().getCumulativeArraySize(); + + if (flattenLeft) + leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second.members; + + if (flattenRight) { + rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second.members; + } else { + // The RHS is not flattened. There are several cases: + // 1. 1 item to copy: Use the RHS directly. + // 2. >1 item, simple symbol RHS: we'll create a new TIntermSymbol node for each, but no assign to temp. + // 3. >1 item, complex RHS: assign it to a new temp variable, and create a TIntermSymbol for each member. + + if (memberCount <= 1) { + // case 1: we'll use the symbol directly below. Nothing to do. + } else { + if (right->getAsSymbolNode() != nullptr) { + // case 2: we'll copy the symbol per iteration below. + cloneSymNode = right->getAsSymbolNode(); + } else { + // case 3: assign to a temp, and indirect into that. + rhsTempVar = makeInternalVariable("flattenTemp", right->getType()); + rhsTempVar->getWritableType().getQualifier().makeTemporary(); + TIntermTyped* noFlattenRHS = intermediate.addSymbol(*rhsTempVar, loc); + + // Add this to the aggregate being built. + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, noFlattenRHS, right, loc), loc); + } + } + } + + int memberIdx = 0; - // If we get here, we are assigning to or from a whole struct that must be - // flattened, so have to do member-by-member assignment: - const auto& members = *left->getType().getStruct(); const auto getMember = [&](bool flatten, TIntermTyped* node, - const TVector<TVariable*>& memberVariables, int member) { + const TVector<TVariable*>& memberVariables, int member, + TOperator op, const TType& memberType) -> TIntermTyped * { TIntermTyped* subTree; - if (flatten) - subTree = intermediate.addSymbol(*memberVariables[member]); - else { - subTree = intermediate.addIndex(EOpIndexDirectStruct, node, - intermediate.addConstantUnion(member, loc), loc); - subTree->setType(*members[member].type); + if (flatten && isFinalFlattening(memberType)) { + subTree = intermediate.addSymbol(*memberVariables[memberIdx++]); + } else { + subTree = intermediate.addIndex(op, node, intermediate.addConstantUnion(member, loc), loc); + subTree->setType(memberType); } return subTree; }; - - const TVector<TVariable*>* leftVariables = nullptr; - const TVector<TVariable*>* rightVariables = nullptr; - if (flattenLeft) - leftVariables = &flattenMap.find(left->getAsSymbolNode()->getId())->second; - if (flattenRight) - rightVariables = &flattenMap.find(right->getAsSymbolNode()->getId())->second; - TIntermAggregate* assignList = nullptr; - for (int member = 0; member < (int)members.size(); ++member) { - TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member); - TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member); - assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc)); - } + + // Cannot use auto here, because this is recursive, and auto can't work out the type without seeing the + // whole thing. So, we'll resort to an explicit type via std::function. + const std::function<void(TIntermTyped* left, TIntermTyped* right)> + traverse = [&](TIntermTyped* left, TIntermTyped* right) -> void { + // If we get here, we are assigning to or from a whole array or struct that must be + // flattened, so have to do member-by-member assignment: + + if (left->getType().isArray()) { + // array case + const TType dereferencedType(left->getType(), 0); + + for (int element=0; element < left->getType().getOuterArraySize(); ++element) { + // Add a new AST symbol node if we have a temp variable holding a complex RHS. + TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, element, + EOpIndexDirect, dereferencedType); + TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, element, + EOpIndexDirect, dereferencedType); + + if (isFinalFlattening(dereferencedType)) + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc); + else + traverse(subLeft, subRight); + } + } else if (left->getType().isStruct()) { + // struct case + const auto& members = *left->getType().getStruct(); + + for (int member = 0; member < (int)members.size(); ++member) { + TIntermTyped* subRight = getMember(flattenRight, right, *rightVariables, member, + EOpIndexDirectStruct, *members[member].type); + TIntermTyped* subLeft = getMember(flattenLeft, left, *leftVariables, member, + EOpIndexDirectStruct, *members[member].type); + + if (isFinalFlattening(*members[member].type)) + assignList = intermediate.growAggregate(assignList, intermediate.addAssign(op, subLeft, subRight, loc), loc); + else + traverse(subLeft, subRight); + } + } else { + assert(0); // we should never be called on a non-flattenable thing, because + // that case bails out above to a simple copy. + } + + }; + + // Use the proper RHS node: a new symbol from a TVariable, copy + // of an TIntermSymbol node, or sometimes the right node directly. + right = rhsTempVar ? intermediate.addSymbol(*rhsTempVar, loc) : + cloneSymNode ? intermediate.addSymbol(*cloneSymNode) : + right; + + // This makes the whole assignment, recursing through subtypes as needed. + traverse(left, right); + + assert(assignList != nullptr); assignList->setOperator(EOpSequence); return assignList; @@ -1098,13 +1538,13 @@ TIntermTyped* HlslParseContext::handleAssign(const TSourceLoc& loc, TOperator op 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 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 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: @@ -1141,6 +1581,23 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (!node || !node->getAsOperator()) return; + const auto clampReturn = [&loc, &node, this](TIntermTyped* result, const TSampler& sampler) -> TIntermTyped* { + // Sampler return must always be a vec4, but we can construct a shorter vector + result->setType(TType(node->getType().getBasicType(), EvqTemporary, node->getVectorSize())); + + if (sampler.vectorSize < (unsigned)node->getVectorSize()) { + // Too many components. Construct shorter vector from it. + const TType clampedType(result->getType().getBasicType(), EvqTemporary, sampler.vectorSize); + + const TOperator op = intermediate.mapTypeToConstructorOp(clampedType); + + result = constructBuiltIn(clampedType, op, result, loc, false); + } + + result->setLoc(loc); + return result; + }; + const TOperator op = node->getAsOperator()->getOp(); const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; @@ -1149,10 +1606,8 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType case EOpTexture: { // Texture with ddx & ddy is really gradient form in HLSL - if (argAggregate->getSequence().size() == 4) { + if (argAggregate->getSequence().size() == 4) node->getAsAggregate()->setOperator(EOpTextureGrad); - break; - } break; } @@ -1168,24 +1623,30 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* bias = intermediate.addIndex(EOpIndexDirect, arg1, w, loc); TOperator constructOp = EOpNull; - switch (arg0->getType().getSampler().dim) { + const TSampler& sampler = arg0->getType().getSampler(); + + switch (sampler.dim) { case Esd1D: constructOp = EOpConstructFloat; break; // 1D case Esd2D: constructOp = EOpConstructVec2; break; // 2D case Esd3D: constructOp = EOpConstructVec3; break; // 3D case EsdCube: constructOp = EOpConstructVec3; break; // also 3D default: break; } - + TIntermAggregate* constructCoord = new TIntermAggregate(constructOp); constructCoord->getSequence().push_back(arg1); constructCoord->setLoc(loc); + // The input vector should never be less than 2, since there's always a bias. + // The max is for safety, and should be a no-op. + constructCoord->setType(TType(arg1->getBasicType(), EvqTemporary, std::max(arg1->getVectorSize() - 1, 0))); + TIntermAggregate* tex = new TIntermAggregate(EOpTexture); tex->getSequence().push_back(arg0); // sampler tex->getSequence().push_back(constructCoord); // coordinate tex->getSequence().push_back(bias); // bias - tex->setLoc(loc); - node = tex; + + node = clampReturn(tex, sampler); break; } @@ -1199,6 +1660,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argBias = nullptr; TIntermTyped* argOffset = nullptr; + const TSampler& sampler = argTex->getType().getSampler(); int nextArg = 3; @@ -1224,9 +1686,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - txsample->setType(node->getType()); - txsample->setLoc(loc); - node = txsample; + node = clampReturn(txsample, sampler); break; } @@ -1239,6 +1699,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argDDX = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argDDY = argAggregate->getSequence()[4]->getAsTyped(); TIntermTyped* argOffset = nullptr; + const TSampler& sampler = argTex->getType().getSampler(); TOperator textureOp = EOpTextureGrad; @@ -1258,9 +1719,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - txsample->setType(node->getType()); - txsample->setLoc(loc); - node = txsample; + node = clampReturn(txsample, sampler); break; } @@ -1279,30 +1738,32 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType assert(texType.getBasicType() == EbtSampler); - const TSampler& texSampler = texType.getSampler(); - const TSamplerDim dim = texSampler.dim; + const TSampler& sampler = texType.getSampler(); + const TSamplerDim dim = sampler.dim; + const bool isImage = sampler.isImage(); const int numArgs = (int)argAggregate->getSequence().size(); int numDims = 0; switch (dim) { - case Esd1D: numDims = 1; break; // W - case Esd2D: numDims = 2; break; // W, H - case Esd3D: numDims = 3; break; // W, H, D - case EsdCube: numDims = 2; break; // W, H (cube) + case Esd1D: numDims = 1; break; // W + case Esd2D: numDims = 2; break; // W, H + case Esd3D: numDims = 3; break; // W, H, D + case EsdCube: numDims = 2; break; // W, H (cube) + case EsdBuffer: numDims = 1; break; // W (buffers) default: assert(0 && "unhandled texture dimension"); } // Arrayed adds another dimension for the number of array elements - if (texSampler.isArrayed()) + if (sampler.isArrayed()) ++numDims; // Establish whether we're querying mip levels - const bool mipQuery = (numArgs > (numDims + 1)) && (!texSampler.isMultiSample()); + const bool mipQuery = (numArgs > (numDims + 1)) && (!sampler.isMultiSample()); // AST assumes integer return. Will be converted to float if required. - TIntermAggregate* sizeQuery = new TIntermAggregate(EOpTextureQuerySize); + TIntermAggregate* sizeQuery = new TIntermAggregate(isImage ? EOpImageQuerySize : EOpTextureQuerySize); sizeQuery->getSequence().push_back(argTex); // If we're querying an explicit LOD, add the LOD, which is always arg #1 if (mipQuery) { @@ -1315,9 +1776,9 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType // Return value from size query TVariable* tempArg = makeInternalVariable("sizeQueryTemp", sizeQuery->getType()); tempArg->getWritableType().getQualifier().makeTemporary(); - TIntermSymbol* sizeQueryReturn = intermediate.addSymbol(*tempArg, loc); - - TIntermTyped* sizeQueryAssign = intermediate.addAssign(EOpAssign, sizeQueryReturn, sizeQuery, loc); + TIntermTyped* sizeQueryAssign = intermediate.addAssign(EOpAssign, + intermediate.addSymbol(*tempArg, loc), + sizeQuery, loc); // Compound statement for assigning outputs TIntermAggregate* compoundStatement = intermediate.makeAggregate(sizeQueryAssign, loc); @@ -1326,6 +1787,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType for (int compNum = 0; compNum < numDims; ++compNum) { TIntermTyped* indexedOut = nullptr; + TIntermSymbol* sizeQueryReturn = intermediate.addSymbol(*tempArg, loc); if (numDims > 1) { TIntermTyped* component = intermediate.addConstantUnion(compNum, loc, true); @@ -1356,7 +1818,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType } // 2DMS formats query # samples, which needs a different query op - if (texSampler.isMultiSample()) { + if (sampler.isMultiSample()) { TIntermTyped* outParam = argAggregate->getSequence()[outParamBase + numDims]->getAsTyped(); TIntermAggregate* samplesQuery = new TIntermAggregate(EOpImageQuerySamples); @@ -1408,6 +1870,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (coordDimWithCmpVal != 5) // cube array shadow is special. coordWithCmp->getSequence().push_back(argCmpVal); coordWithCmp->setLoc(loc); + coordWithCmp->setType(TType(argCoord->getBasicType(), EvqTemporary, std::min(coordDimWithCmpVal, 4))); TOperator textureOp = (op == EOpMethodSampleCmpLevelZero ? EOpTextureLod : EOpTexture); if (argOffset != nullptr) @@ -1445,13 +1908,15 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* lodComponent = nullptr; TIntermTyped* coordSwizzle = nullptr; - const bool isMS = argTex->getType().getSampler().isMultiSample(); - const bool isBuffer = argTex->getType().getSampler().dim == EsdBuffer; + const TSampler& sampler = argTex->getType().getSampler(); + const bool isMS = sampler.isMultiSample(); + const bool isBuffer = sampler.dim == EsdBuffer; + const bool isImage = sampler.isImage(); const TBasicType coordBaseType = argCoord->getType().getBasicType(); // Last component of coordinate is the mip level, for non-MS. we separate them here: - if (isMS || isBuffer) { - // MS and Buffer have no LOD + if (isMS || isBuffer || isImage) { + // MS, Buffer, and Image have no LOD coordSwizzle = argCoord; } else { // Extract coordinate @@ -1471,7 +1936,9 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType const bool hasOffset = ((!isMS && numArgs == 3) || (isMS && numArgs == 4)); // Create texel fetch - const TOperator fetchOp = (hasOffset ? EOpTextureFetchOffset : EOpTextureFetch); + const TOperator fetchOp = (isImage ? EOpImageLoad : + hasOffset ? EOpTextureFetchOffset : + EOpTextureFetch); TIntermAggregate* txfetch = new TIntermAggregate(fetchOp); // Build up the fetch @@ -1484,6 +1951,8 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType txfetch->getSequence().push_back(argSampleIdx); } else if (isBuffer) { // Nothing else to do for buffers. + } else if (isImage) { + // Nothing else to do for images. } else { // 2DMS and buffer have no LOD, but everything else does. txfetch->getSequence().push_back(lodComponent); @@ -1496,9 +1965,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType txfetch->getSequence().push_back(argOffset); } - txfetch->setType(node->getType()); - txfetch->setLoc(loc); - node = txfetch; + node = clampReturn(txfetch, sampler); break; } @@ -1510,7 +1977,8 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType TIntermTyped* argCoord = argAggregate->getSequence()[2]->getAsTyped(); TIntermTyped* argLod = argAggregate->getSequence()[3]->getAsTyped(); TIntermTyped* argOffset = nullptr; - + const TSampler& sampler = argTex->getType().getSampler(); + const int numArgs = (int)argAggregate->getSequence().size(); if (numArgs == 5) // offset, if present @@ -1528,9 +1996,7 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType if (argOffset != nullptr) txsample->getSequence().push_back(argOffset); - txsample->setType(node->getType()); - txsample->setLoc(loc); - node = txsample; + node = clampReturn(txsample, sampler); break; } @@ -1727,11 +2193,81 @@ void HlslParseContext::decomposeSampleMethods(const TSourceLoc& loc, TIntermType } } +// +// Decompose geometry shader methods +// +void HlslParseContext::decomposeGeometryMethods(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) +{ + if (!node || !node->getAsOperator()) + return; + + const TOperator op = node->getAsOperator()->getOp(); + const TIntermAggregate* argAggregate = arguments ? arguments->getAsAggregate() : nullptr; + + switch (op) { + case EOpMethodAppend: + if (argAggregate) { + TIntermAggregate* sequence = nullptr; + TIntermAggregate* emit = new TIntermAggregate(EOpEmitVertex); + + emit->setLoc(loc); + emit->setType(TType(EbtVoid)); + + sequence = intermediate.growAggregate(sequence, + intermediate.addAssign(EOpAssign, + argAggregate->getSequence()[0]->getAsTyped(), + argAggregate->getSequence()[1]->getAsTyped(), loc), + loc); + + sequence = intermediate.growAggregate(sequence, emit); + + sequence->setOperator(EOpSequence); + sequence->setLoc(loc); + sequence->setType(TType(EbtVoid)); + node = sequence; + } + break; + + case EOpMethodRestartStrip: + { + TIntermAggregate* cut = new TIntermAggregate(EOpEndPrimitive); + cut->setLoc(loc); + cut->setType(TType(EbtVoid)); + node = cut; + } + break; + + default: + break; // most pass through unchanged + } +} + // // Optionally decompose intrinsics to AST opcodes. // void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& node, TIntermNode* arguments) { + // Helper to find image data for image atomics: + // OpImageLoad(image[idx]) + // We take the image load apart and add its params to the atomic op aggregate node + const auto imageAtomicParams = [this, &loc, &node](TIntermAggregate* atomic, TIntermTyped* load) { + TIntermAggregate* loadOp = load->getAsAggregate(); + if (loadOp == nullptr) { + error(loc, "unknown image type in atomic operation", "", ""); + node = nullptr; + return; + } + + atomic->getSequence().push_back(loadOp->getSequence()[0]); + atomic->getSequence().push_back(loadOp->getSequence()[1]); + }; + + // Return true if this is an imageLoad, which we will change to an image atomic. + const auto isImageParam = [](TIntermTyped* image) -> bool { + TIntermAggregate* imageAggregate = image->getAsAggregate(); + return imageAggregate != nullptr && imageAggregate->getOp() == EOpImageLoad; + }; + // 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; @@ -1912,27 +2448,43 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& 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); + TIntermTyped* arg0 = argAggregate->getSequence()[0]->getAsTyped(); // dest + TIntermTyped* arg1 = argAggregate->getSequence()[1]->getAsTyped(); // value + TIntermTyped* arg2 = nullptr; - if (argAggregate->getSequence().size() > 2) { - // optional output param is present. return value goes to arg2. - TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); + if (argAggregate->getSequence().size() > 2) + arg2 = argAggregate->getSequence()[2]->getAsTyped(); - TIntermAggregate* atomic = new TIntermAggregate(atomicOp); - atomic->getSequence().push_back(arg0); + const bool isImage = isImageParam(arg0); + const TOperator atomicOp = mapAtomicOp(loc, op, isImage); + TIntermAggregate* atomic = new TIntermAggregate(atomicOp); + atomic->setType(arg0->getType()); + atomic->getWritableType().getQualifier().makeTemporary(); + atomic->setLoc(loc); + + if (isImage) { + // orig_value = imageAtomicOp(image, loc, data) + imageAtomicParams(atomic, arg0); atomic->getSequence().push_back(arg1); - atomic->setLoc(loc); - atomic->setType(arg0->getType()); - atomic->getWritableType().getQualifier().makeTemporary(); - node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + if (argAggregate->getSequence().size() > 2) { + node = intermediate.addAssign(EOpAssign, arg2, atomic, loc); + } else { + node = atomic; // no assignment needed, as there was no out var. + } } else { - // Set the matching operator. Since output is absent, this is all we need to do. - node->getAsAggregate()->setOperator(atomicOp); + // Normal memory variable: + // arg0 = mem, arg1 = data, arg2(optional,out) = orig_value + if (argAggregate->getSequence().size() > 2) { + // optional output param is present. return value goes to arg2. + atomic->getSequence().push_back(arg0); + atomic->getSequence().push_back(arg1); + + 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; @@ -1945,15 +2497,20 @@ void HlslParseContext::decomposeIntrinsic(const TSourceLoc& loc, TIntermTyped*& TIntermTyped* arg2 = argAggregate->getSequence()[2]->getAsTyped(); // value TIntermTyped* arg3 = argAggregate->getSequence()[3]->getAsTyped(); // orig - const bool isImage = arg0->getType().isImage(); + const bool isImage = isImageParam(arg0); 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(); + if (isImage) { + imageAtomicParams(atomic, arg0); + } else { + atomic->getSequence().push_back(arg0); + } + + atomic->getSequence().push_back(arg1); + atomic->getSequence().push_back(arg2); node = intermediate.addAssign(EOpAssign, arg3, atomic, loc); break; @@ -2114,7 +2671,7 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct // const TFunction* fnCandidate; bool builtIn; - fnCandidate = findFunction(loc, *function, builtIn); + fnCandidate = findFunction(loc, *function, builtIn, arguments); if (fnCandidate) { // This is a declared function that might map to // - a built-in operator, @@ -2125,21 +2682,9 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct if (builtIn && fnCandidate->getNumExtensions()) requireExtensions(loc, fnCandidate->getNumExtensions(), fnCandidate->getExtensions(), fnCandidate->getName().c_str()); - if (arguments) { - // Make sure qualifications work for these arguments. - //TIntermAggregate* aggregate = arguments->getAsAggregate(); - //for (int i = 0; i < fnCandidate->getParamCount(); ++i) { - // // At this early point there is a slight ambiguity between whether an aggregate 'arguments' - // // is the single argument itself or its children are the arguments. Only one argument - // // means take 'arguments' itself as the one argument. - // TIntermNode* arg = fnCandidate->getParamCount() == 1 ? arguments : (aggregate ? aggregate->getSequence()[i] : arguments); - // TQualifier& formalQualifier = (*fnCandidate)[i].type->getQualifier(); - // TQualifier& argQualifier = arg->getAsTyped()->getQualifier(); - //} - - // Convert 'in' arguments - addInputArgumentConversions(*fnCandidate, arguments); // arguments may be modified if it's just a single argument node - } + // Convert 'in' arguments + if (arguments) + addInputArgumentConversions(*fnCandidate, arguments); op = fnCandidate->getBuiltInOp(); if (builtIn && op != EOpNull) { @@ -2168,20 +2713,27 @@ TIntermTyped* HlslParseContext::handleFunctionCall(const TSourceLoc& loc, TFunct } } + // for decompositions, since we want to operate on the function node, not the aggregate holding + // output conversions. + const TIntermTyped* fnNode = result; + + decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions + decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions + decomposeGeometryMethods(loc, result, arguments); // HLSL->AST geometry method decompositions + // Convert 'out' arguments. If it was a constant folded built-in, it won't be an aggregate anymore. // Built-ins with a single argument aren't called with an aggregate, but they also don't have an output. // Also, build the qualifier list for user function calls, which are always called with an aggregate. - if (result->getAsAggregate()) { + // We don't do this is if there has been a decomposition, which will have added its own conversions + // for output parameters. + if (result == fnNode && result->getAsAggregate()) { TQualifierList& qualifierList = result->getAsAggregate()->getQualifierList(); for (int i = 0; i < fnCandidate->getParamCount(); ++i) { TStorageQualifier qual = (*fnCandidate)[i].type->getQualifier().storage; qualifierList.push_back(qual); } - result = addOutputArgumentConversions(*fnCandidate, *result->getAsAggregate()); + result = addOutputArgumentConversions(*fnCandidate, *result->getAsOperator()); } - - decomposeIntrinsic(loc, result, arguments); // HLSL->AST intrinsic decompositions - decomposeSampleMethods(loc, result, arguments); // HLSL->AST sample method decompositions } } @@ -2210,22 +2762,6 @@ TIntermTyped* HlslParseContext::handleLengthMethod(const TSourceLoc& loc, TFunct if (type.isRuntimeSizedArray()) { // Create a unary op and let the back end handle it return intermediate.addBuiltInFunctionCall(loc, EOpArrayLength, true, intermNode, TType(EbtInt)); - } else if (type.isImplicitlySizedArray()) { - if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) { - // We could be between a layout declaration that gives a built-in io array implicit size and - // a user redeclaration of that array, meaning we have to substitute its implicit size here - // without actually redeclaring the array. (It is an error to use a member before the - // redeclaration, but not an error to use the array name itself.) - const TString& name = intermNode->getAsSymbolNode()->getName(); - if (name == "gl_in" || name == "gl_out") - length = getIoArrayImplicitSize(); - } - if (length == 0) { - if (intermNode->getAsSymbolNode() && isIoResizeArray(type)) - error(loc, "", function->getName().c_str(), "array must first be sized by a redeclaration or layout qualifier"); - else - error(loc, "", function->getName().c_str(), "array must be declared with a size before using this method"); - } } else length = type.getOuterArraySize(); } else if (type.isMatrix()) @@ -2247,7 +2783,7 @@ TIntermTyped* HlslParseContext::handleLengthMethod(const TSourceLoc& loc, TFunct // // Add any needed implicit conversions for function-call arguments to input parameters. // -void HlslParseContext::addInputArgumentConversions(const TFunction& function, TIntermNode*& arguments) const +void HlslParseContext::addInputArgumentConversions(const TFunction& function, TIntermNode*& arguments) { TIntermAggregate* aggregate = arguments->getAsAggregate(); const auto setArg = [&](int argNum, TIntermNode* arg) { @@ -2263,30 +2799,44 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // Process each argument's conversion for (int i = 0; i < function.getParamCount(); ++i) { + if (! function[i].type->getQualifier().isParamInput()) + continue; + // At this early point there is a slight ambiguity between whether an aggregate 'arguments' // is the single argument itself or its children are the arguments. Only one argument // means take 'arguments' itself as the one argument. - TIntermTyped* arg = function.getParamCount() == 1 ? arguments->getAsTyped() : (aggregate ? aggregate->getSequence()[i]->getAsTyped() : arguments->getAsTyped()); + TIntermTyped* arg = function.getParamCount() == 1 + ? arguments->getAsTyped() + : (aggregate ? aggregate->getSequence()[i]->getAsTyped() : arguments->getAsTyped()); if (*function[i].type != arg->getType()) { - if (function[i].type->getQualifier().isParamInput()) { - // In-qualified arguments just need an extra node added above the argument to - // convert to the correct type. - arg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg); - arg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, arg); - setArg(i, arg); - } + // In-qualified arguments just need an extra node added above the argument to + // convert to the correct type. + TIntermTyped* convArg = intermediate.addConversion(EOpFunctionCall, *function[i].type, arg); + if (convArg != nullptr) + convArg = intermediate.addShapeConversion(EOpFunctionCall, *function[i].type, convArg); + if (convArg != nullptr) + setArg(i, convArg); + else + error(arg->getLoc(), "cannot convert input argument, argument", "", "%d", i); } else { - if (shouldFlatten(arg->getType())) { - TSourceLoc dummyLoc; - dummyLoc.init(); + if (wasFlattened(arg)) { + // Will make a two-level subtree. + // The deepest will copy member-by-member to build the structure to pass. + // The level above that will be a two-operand EOpComma sequence that follows the copy by the + // object itself. TVariable* internalAggregate = makeInternalVariable("aggShadow", *function[i].type); internalAggregate->getWritableType().getQualifier().makeTemporary(); TIntermSymbol* internalSymbolNode = new TIntermSymbol(internalAggregate->getUniqueId(), internalAggregate->getName(), internalAggregate->getType()); - TIntermAggregate* assignAgg = handleAssign(dummyLoc, EOpAssign, internalSymbolNode, arg)->getAsAggregate(); - assignAgg = intermediate.growAggregate(assignAgg, internalSymbolNode); + internalSymbolNode->setLoc(arg->getLoc()); + // This makes the deepest level, the member-wise copy + TIntermAggregate* assignAgg = handleAssign(arg->getLoc(), EOpAssign, internalSymbolNode, arg)->getAsAggregate(); + + // Now, pair that with the resulting aggregate. + assignAgg = intermediate.growAggregate(assignAgg, internalSymbolNode, arg->getLoc()); assignAgg->setOperator(EOpComma); + assignAgg->setType(internalAggregate->getType()); setArg(i, assignAgg); } } @@ -2300,14 +2850,30 @@ void HlslParseContext::addInputArgumentConversions(const TFunction& function, TI // // Returns a node of a subtree that evaluates to the return value of the function. // -TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermAggregate& intermNode) const +TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& function, TIntermOperator& intermNode) { - TIntermSequence& arguments = intermNode.getSequence(); + assert (intermNode.getAsAggregate() != nullptr || intermNode.getAsUnaryNode() != nullptr); + + const TSourceLoc& loc = intermNode.getLoc(); + + TIntermSequence argSequence; // temp sequence for unary node args + + if (intermNode.getAsUnaryNode()) + argSequence.push_back(intermNode.getAsUnaryNode()->getOperand()); + + TIntermSequence& arguments = argSequence.empty() ? intermNode.getAsAggregate()->getSequence() : argSequence; + + const auto needsConversion = [&](int argNum) { + return function[argNum].type->getQualifier().isParamOutput() && + (*function[argNum].type != arguments[argNum]->getAsTyped()->getType() || + shouldConvertLValue(arguments[argNum]) || + wasFlattened(arguments[argNum]->getAsTyped())); + }; // Will there be any output conversions? bool outputConversions = false; for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType() && function[i].type->getQualifier().storage == EvqOut) { + if (needsConversion(i)) { outputConversions = true; break; } @@ -2329,8 +2895,8 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu if (intermNode.getBasicType() != EbtVoid) { // do the "tempRet = function(...), " bit from above tempRet = makeInternalVariable("tempReturn", intermNode.getType()); - TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, intermNode.getLoc()); - conversionTree = intermediate.addAssign(EOpAssign, tempRetNode, &intermNode, intermNode.getLoc()); + TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, loc); + conversionTree = intermediate.addAssign(EOpAssign, tempRetNode, &intermNode, loc); } else conversionTree = &intermNode; @@ -2338,28 +2904,33 @@ TIntermTyped* HlslParseContext::addOutputArgumentConversions(const TFunction& fu // Process each argument's conversion for (int i = 0; i < function.getParamCount(); ++i) { - if (*function[i].type != arguments[i]->getAsTyped()->getType()) { - if (function[i].type->getQualifier().isParamOutput()) { - // Out-qualified arguments need to use the topology set up above. - // do the " ...(tempArg, ...), arg = tempArg" bit from above - TVariable* tempArg = makeInternalVariable("tempArg", *function[i].type); - tempArg->getWritableType().getQualifier().makeTemporary(); - TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, intermNode.getLoc()); - TIntermTyped* tempAssign = intermediate.addAssign(EOpAssign, arguments[i]->getAsTyped(), tempArgNode, arguments[i]->getLoc()); - conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc()); - // replace the argument with another node for the same tempArg variable - arguments[i] = intermediate.addSymbol(*tempArg, intermNode.getLoc()); - } + if (needsConversion(i)) { + // Out-qualified arguments needing conversion need to use the topology setup above. + // Do the " ...(tempArg, ...), arg = tempArg" bit from above. + + // Make a temporary for what the function expects the argument to look like. + TVariable* tempArg = makeInternalVariable("tempArg", *function[i].type); + tempArg->getWritableType().getQualifier().makeTemporary(); + TIntermSymbol* tempArgNode = intermediate.addSymbol(*tempArg, loc); + + // This makes the deepest level, the member-wise copy + TIntermTyped* tempAssign = handleAssign(arguments[i]->getLoc(), EOpAssign, arguments[i]->getAsTyped(), tempArgNode); + tempAssign = handleLvalue(arguments[i]->getLoc(), "assign", tempAssign); + conversionTree = intermediate.growAggregate(conversionTree, tempAssign, arguments[i]->getLoc()); + + // replace the argument with another node for the same tempArg variable + arguments[i] = intermediate.addSymbol(*tempArg, loc); } } // Finalize the tree topology (see bigger comment above). if (tempRet) { // do the "..., tempRet" bit from above - TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, intermNode.getLoc()); - conversionTree = intermediate.growAggregate(conversionTree, tempRetNode, intermNode.getLoc()); + TIntermSymbol* tempRetNode = intermediate.addSymbol(*tempRet, loc); + conversionTree = intermediate.growAggregate(conversionTree, tempRetNode, loc); } - conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), intermNode.getLoc()); + + conversionTree = intermediate.setAggregateOperator(conversionTree, EOpComma, intermNode.getType(), loc); return conversionTree; } @@ -2623,6 +3194,8 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con qualifier.builtIn = EbvTessLevelInner; else if (semanticUpperCase == "SV_GSINSTANCEID") qualifier.builtIn = EbvInvocationId; + else if (semanticUpperCase == "SV_DISPATCHTHREADID") + qualifier.builtIn = EbvLocalInvocationId; else if (semanticUpperCase == "SV_GROUPTHREADID") qualifier.builtIn = EbvLocalInvocationId; else if (semanticUpperCase == "SV_GROUPID") @@ -2631,6 +3204,8 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con qualifier.builtIn = EbvTessCoord; else if (semanticUpperCase == "SV_DEPTH") qualifier.builtIn = EbvFragDepth; + else if( semanticUpperCase == "SV_COVERAGE") + qualifier.builtIn = EbvSampleMask; //TODO, these need to get refined to be more specific else if( semanticUpperCase == "SV_DEPTHGREATEREQUAL") @@ -2638,9 +3213,9 @@ void HlslParseContext::handleSemantic(TSourceLoc loc, TQualifier& qualifier, con else if( semanticUpperCase == "SV_DEPTHLESSEQUAL") qualifier.builtIn = EbvFragDepthLesser; else if( semanticUpperCase == "SV_STENCILREF") - error(loc, "unimplemented", "SV_STENCILREF", ""); - else if( semanticUpperCase == "SV_COVERAGE") - error(loc, "unimplemented", "SV_COVERAGE", ""); + error(loc, "unimplemented; need ARB_shader_stencil_export", "SV_STENCILREF", ""); + else if( semanticUpperCase == "SV_GROUPINDEX") + error(loc, "unimplemented", "SV_GROUPINDEX", ""); } // @@ -2711,11 +3286,12 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi } // TODO: learn what all these really mean and how they interact with regNumber and subComponent - switch (desc[0]) { + switch (std::tolower(desc[0])) { case 'b': case 't': case 'c': case 's': + case 'u': qualifier.layoutBinding = regNumber + subComponent; break; default: @@ -2725,7 +3301,7 @@ void HlslParseContext::handleRegister(const TSourceLoc& loc, TQualifier& qualifi // space unsigned int setNumber; - const auto crackSpace = [&]() { + const auto crackSpace = [&]() -> bool { const int spaceLen = 5; if (spaceDesc->size() < spaceLen + 1) return false; @@ -2846,7 +3422,7 @@ bool HlslParseContext::builtInName(const TString& /*identifier*/) // // Returns true if there was an error in construction. // -bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*node*/, TFunction& function, +bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* node, TFunction& function, TOperator op, TType& type) { type.shallowCopy(function.getType()); @@ -2942,7 +3518,7 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no // At least the dimensionalities have to match. if (! function[0].type->isArray() || arraySizes.getNumDims() != function[0].type->getArraySizes().getNumDims() + 1) { - error(loc, "array constructor argument not correct type to construct array element", "constructior", ""); + error(loc, "array constructor argument not correct type to construct array element", "constructor", ""); return true; } @@ -2972,6 +3548,9 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no return true; } + if (op == EOpConstructStruct && ! type.isArray() && isZeroConstructor(node)) + return false; + if (op == EOpConstructStruct && ! type.isArray() && (int)type.getStruct()->size() != function.getParamCount()) { error(loc, "Number of constructor parameters does not match the number of structure fields", "constructor", ""); return true; @@ -2983,11 +3562,15 @@ bool HlslParseContext::constructorError(const TSourceLoc& loc, TIntermNode* /*no return true; } - // TIntermTyped* typed = node->getAsTyped(); - return false; } +bool HlslParseContext::isZeroConstructor(const TIntermNode* node) +{ + return node->getAsTyped()->isScalar() && node->getAsConstantUnion() && + node->getAsConstantUnion()->getConstArray()[0].getIConst() == 0; +} + // Verify all the correct semantics for constructing a combined texture/sampler. // Return true if the semantics are incorrect. bool HlslParseContext::constructorTextureSamplerError(const TSourceLoc& loc, const TFunction& function) @@ -3214,7 +3797,7 @@ void HlslParseContext::arrayDimMerge(TType& type, const TArraySizes* sizes) // Do all the semantic checking for declaring or redeclaring an array, with and // without a size, and make the right changes to the symbol table. // -void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool& newDeclaration) +void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, const TType& type, TSymbol*& symbol, bool track) { if (! symbol) { bool currentScope; @@ -3231,15 +3814,8 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, // symbol = new TVariable(&identifier, type); symbolTable.insert(*symbol); - newDeclaration = true; - - if (! symbolTable.atBuiltInLevel()) { - if (isIoResizeArray(type)) { - ioArraySymbolResizeList.push_back(symbol); - checkIoArraysConsistency(loc, true); - } else - fixIoArraySize(loc, symbol->getWritableType()); - } + if (track && symbolTable.atGlobalLevel()) + trackLinkageDeferred(*symbol); return; } @@ -3262,18 +3838,12 @@ void HlslParseContext::declareArray(const TSourceLoc& loc, TString& identifier, // redeclareBuiltinVariable() should have already done the copyUp() TType& existingType = symbol->getWritableType(); - if (existingType.isExplicitlySizedArray()) { // be more lenient for input arrays to geometry shaders and tessellation control outputs, where the redeclaration is the same size - if (! (isIoResizeArray(type) && existingType.getOuterArraySize() == type.getOuterArraySize())) - error(loc, "redeclaration of array with size", identifier.c_str(), ""); return; } existingType.updateArraySizes(type); - - if (isIoResizeArray(type)) - checkIoArraysConsistency(loc); } void HlslParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNode *node, int index) @@ -3334,7 +3904,7 @@ void HlslParseContext::updateImplicitArraySize(const TSourceLoc& loc, TIntermNod // TSymbol* HlslParseContext::redeclareBuiltinVariable(const TSourceLoc& /*loc*/, const TString& identifier, const TQualifier& /*qualifier*/, - const TShaderQualifiers& /*publicType*/, bool& /*newDeclaration*/) + const TShaderQualifiers& /*publicType*/) { if (! builtInName(identifier) || symbolTable.atBuiltInLevel() || ! symbolTable.atGlobalLevel()) return nullptr; @@ -3458,15 +4028,8 @@ void HlslParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& n symbolTable.insert(*block); - // Tracking for implicit sizing of array - if (isIoResizeArray(block->getType())) { - ioArraySymbolResizeList.push_back(block); - checkIoArraysConsistency(loc, true); - } else if (block->getType().isArray()) - fixIoArraySize(loc, block->getWritableType()); - // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, *block); + trackLinkageDeferred(*block); } void HlslParseContext::paramFix(TType& type) @@ -3501,11 +4064,11 @@ void HlslParseContext::setLayoutQualifier(const TSourceLoc& loc, TQualifier& qua std::transform(id.begin(), id.end(), id.begin(), ::tolower); if (id == TQualifier::getLayoutMatrixString(ElmColumnMajor)) { - qualifier.layoutMatrix = ElmColumnMajor; + qualifier.layoutMatrix = ElmRowMajor; return; } if (id == TQualifier::getLayoutMatrixString(ElmRowMajor)) { - qualifier.layoutMatrix = ElmRowMajor; + qualifier.layoutMatrix = ElmColumnMajor; return; } if (id == "push_constant") { @@ -3920,7 +4483,8 @@ void HlslParseContext::mergeObjectLayoutQualifiers(TQualifier& dst, const TQuali // // Return the function symbol if found, otherwise nullptr. // -const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn) +const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn, + TIntermNode* args) { // const TFunction* function = nullptr; @@ -3940,8 +4504,18 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu TVector<const TFunction*> candidateList; symbolTable.findFunctionNameList(call.getMangledName(), candidateList, builtIn); + // These builtin ops can accept any type, so we bypass the argument selection + if (candidateList.size() == 1 && builtIn && + (candidateList[0]->getBuiltInOp() == EOpMethodAppend || + candidateList[0]->getBuiltInOp() == EOpMethodRestartStrip)) { + + return candidateList[0]; + } + + bool allowOnlyUpConversions = true; + // can 'from' convert to 'to'? - const auto convertible = [this](const TType& from, const TType& to) { + const auto convertible = [&](const TType& from, const TType& to, TOperator op, int arg) -> bool { if (from == to) return true; @@ -3950,13 +4524,37 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu from.isStruct() || to.isStruct()) return false; + switch (op) { + case EOpInterlockedAdd: + case EOpInterlockedAnd: + case EOpInterlockedCompareExchange: + case EOpInterlockedCompareStore: + case EOpInterlockedExchange: + case EOpInterlockedMax: + case EOpInterlockedMin: + case EOpInterlockedOr: + case EOpInterlockedXor: + // We do not promote the texture or image type for these ocodes. Normally that would not + // be an issue because it's a buffer, but we haven't decomposed the opcode yet, and at this + // stage it's merely e.g, a basic integer type. + // + // Instead, we want to promote other arguments, but stay within the same family. In other + // words, InterlockedAdd(RWBuffer<int>, ...) will always use the int flavor, never the uint flavor, + // but it is allowed to promote its other arguments. + if (arg == 0) + return false; + default: + break; + } + // basic types have to be convertible - if (! intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall)) - return false; + if (allowOnlyUpConversions) + if (! intermediate.canImplicitlyPromote(from.getBasicType(), to.getBasicType(), EOpFunctionCall)) + return false; // shapes have to be convertible - if ((from.isScalar() && to.isScalar()) || - (from.isScalar() && to.isVector()) || + if ((from.isScalarOrVec1() && to.isScalarOrVec1()) || + (from.isScalarOrVec1() && to.isVector()) || (from.isVector() && to.isVector() && from.getVectorSize() >= to.getVectorSize())) return true; @@ -3968,7 +4566,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // Is 'to2' a better conversion than 'to1'? // Ties should not be considered as better. // Assumes 'convertible' already said true. - const auto better = [](const TType& from, const TType& to1, const TType& to2) { + const auto better = [](const TType& from, const TType& to1, const TType& to2) -> bool { // exact match is always better than mismatch if (from == to2) return from != to1; @@ -3995,7 +4593,7 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // - 32 vs. 64 bit (or width in general) // - bool vs. non bool // - signed vs. not signed - const auto linearize = [](const TBasicType& basicType) { + const auto linearize = [](const TBasicType& basicType) -> int { switch (basicType) { case EbtBool: return 1; case EbtInt: return 10; @@ -4018,9 +4616,89 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // send to the generic selector const TFunction* bestMatch = selectFunction(candidateList, call, convertible, better, tie); - if (bestMatch == nullptr) + if (bestMatch == nullptr) { + // If there is nothing selected by allowing only up-conversions (to a larger linearize() value), + // we instead try down-conversions, which are valid in HLSL, but not preferred if there are any + // upconversions possible. + allowOnlyUpConversions = false; + bestMatch = selectFunction(candidateList, call, convertible, better, tie); + } + + if (bestMatch == nullptr) { error(loc, "no matching overloaded function found", call.getName().c_str(), ""); - else if (tie) + return nullptr; + } + + // For builtins, we can convert across the arguments. This will happen in several steps: + // Step 1: If there's an exact match, use it. + // Step 2a: Otherwise, get the operator from the best match and promote arguments: + // Step 2b: reconstruct the TFunction based on the new arg types + // Step 3: Re-select after type promotion is applied, to find proper candidate. + if (builtIn) { + // Step 1: If there's an exact match, use it. + if (call.getMangledName() == bestMatch->getMangledName()) + return bestMatch; + + // Step 2a: Otherwise, get the operator from the best match and promote arguments as if we + // are that kind of operator. + if (args != nullptr) { + // The arg list can be a unary node, or an aggregate. We have to handle both. + // We will use the normal promote() facilities, which require an interm node. + TIntermOperator* promote = nullptr; + + if (call.getParamCount() == 1) { + promote = new TIntermUnary(bestMatch->getBuiltInOp()); + promote->getAsUnaryNode()->setOperand(args->getAsTyped()); + } else { + promote = new TIntermAggregate(bestMatch->getBuiltInOp()); + promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); + } + + if (! intermediate.promote(promote)) + return nullptr; + + // Obtain the promoted arg list. + if (call.getParamCount() == 1) { + args = promote->getAsUnaryNode()->getOperand(); + } else { + promote->getAsAggregate()->getSequence().swap(args->getAsAggregate()->getSequence()); + } + } + + // Step 2b: reconstruct the TFunction based on the new arg types + TFunction convertedCall(&call.getName(), call.getType(), call.getBuiltInOp()); + + if (args->getAsAggregate()) { + // Handle aggregates: put all args into the new function call + for (int arg=0; arg<int(args->getAsAggregate()->getSequence().size()); ++arg) { + // TODO: But for constness, we could avoid the new & shallowCopy, and use the pointer directly. + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsAggregate()->getSequence()[arg]->getAsTyped()->getType()); + convertedCall.addParameter(param); + } + } else if (args->getAsUnaryNode()) { + // Handle unaries: put all args into the new function call + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsUnaryNode()->getOperand()->getAsTyped()->getType()); + convertedCall.addParameter(param); + } else if (args->getAsTyped()) { + // Handle bare e.g, floats, not in an aggregate. + TParameter param = { 0, new TType }; + param.type->shallowCopy(args->getAsTyped()->getType()); + convertedCall.addParameter(param); + } else { + assert(0); // unknown argument list. + return nullptr; + } + + // Step 3: Re-select after type promotion, to find proper candidate + // send to the generic selector + bestMatch = selectFunction(candidateList, convertedCall, convertible, better, tie); + + // At this point, there should be no tie. + } + + if (tie) error(loc, "ambiguous best function under implicit type conversion", call.getName().c_str(), ""); return bestMatch; @@ -4032,16 +4710,11 @@ const TFunction* HlslParseContext::findFunction(const TSourceLoc& loc, const TFu // 'parseType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // -void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* arraySizes) +void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* /*arraySizes*/) { TType type; type.deepCopy(parseType); - // Arrayness is potentially coming both from the type and from the - // variable: "int[] a[];" or just one or the other. - // Merge it all to the type, so all arrayness is part of the type. - arrayDimMerge(type, arraySizes); - TVariable* typeSymbol = new TVariable(&identifier, type, true); if (! symbolTable.insert(*typeSymbol)) error(loc, "name already defined", "typedef", identifier.c_str()); @@ -4058,56 +4731,42 @@ void HlslParseContext::declareTypedef(const TSourceLoc& loc, TString& identifier // 'parseType' is the type part of the declaration (to the left) // 'arraySizes' is the arrayness tagged on the identifier (to the right) // -TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, const TType& parseType, TArraySizes* arraySizes, TIntermTyped* initializer) +TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& identifier, TType& type, TIntermTyped* initializer) { - // TODO: things scoped within an annotation need their own name space; - // haven't done that yet - if (annotationNestingLevel > 0) - return nullptr; - - // TODO: strings are not yet handled - if (parseType.getBasicType() == EbtString) - return nullptr; - - TType type; - type.shallowCopy(parseType); - if (type.isImplicitlySizedArray()) { - // Because "int[] a = int[2](...), b = int[3](...)" makes two arrays a and b - // of different sizes, for this case sharing the shallow copy of arrayness - // with the parseType oversubscribes it, so get a deep copy of the arrayness. - type.newArraySizes(*parseType.getArraySizes()); - } - if (voidErrorCheck(loc, identifier, type.getBasicType())) return nullptr; // Check for redeclaration of built-ins and/or attempting to declare a reserved name - bool newDeclaration = false; // true if a new entry gets added to the symbol table - TSymbol* symbol = nullptr; // = redeclareBuiltinVariable(loc, identifier, type.getQualifier(), parseType.shaderQualifiers, newDeclaration); + TSymbol* symbol = nullptr; inheritGlobalDefaults(type.getQualifier()); + const bool flattenVar = shouldFlatten(type); + // Declare the variable - if (arraySizes || type.isArray()) { - // Arrayness is potentially coming both from the type and from the - // variable: "int[] a[];" or just one or the other. - // Merge it all to the type, so all arrayness is part of the type. - arrayDimMerge(type, arraySizes); - declareArray(loc, identifier, type, symbol, newDeclaration); + if (type.isArray()) { + // array case + declareArray(loc, identifier, type, symbol, !flattenVar); } else { // non-array case if (! symbol) - symbol = declareNonArray(loc, identifier, type, newDeclaration); + symbol = declareNonArray(loc, identifier, type, !flattenVar); else if (type != symbol->getType()) error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); } + if (flattenVar) + flatten(loc, *symbol->getAsVariable()); + if (! symbol) return nullptr; // Deal with initializer TIntermNode* initNode = nullptr; if (symbol && initializer) { + if (flattenVar) + error(loc, "flattened array with initializer list unsupported", identifier.c_str(), ""); + TVariable* variable = symbol->getAsVariable(); if (! variable) { error(loc, "initializer requires a variable, not a member", identifier.c_str(), ""); @@ -4116,10 +4775,6 @@ TIntermNode* HlslParseContext::declareVariable(const TSourceLoc& loc, TString& i initNode = executeInitializer(loc, initializer, variable); } - // see if it's a linker-level object to track - if (newDeclaration && symbolTable.atGlobalLevel()) - intermediate.addSymbolLinkageNode(linkage, *symbol); - return initNode; } @@ -4155,19 +4810,20 @@ TVariable* HlslParseContext::makeInternalVariable(const char* name, const TType& // // Return the successfully declared variable. // -TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type, bool& newDeclaration) +TVariable* HlslParseContext::declareNonArray(const TSourceLoc& loc, TString& identifier, TType& type, bool track) { // make a new variable TVariable* variable = new TVariable(&identifier, type); // add variable to symbol table - if (! symbolTable.insert(*variable)) { - error(loc, "redefinition", variable->getName().c_str(), ""); - return nullptr; - } else { - newDeclaration = true; + if (symbolTable.insert(*variable)) { + if (track && symbolTable.atGlobalLevel()) + trackLinkageDeferred(*variable); return variable; } + + error(loc, "redefinition", variable->getName().c_str(), ""); + return nullptr; } // @@ -4189,7 +4845,8 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // constructor-style subtree, allowing the rest of the code to operate // identically for both kinds of initializers. // - initializer = convertInitializerList(loc, variable->getType(), initializer); + if (initializer->getAsAggregate() && initializer->getAsAggregate()->getOp() == EOpNull) + initializer = convertInitializerList(loc, variable->getType(), initializer); if (! initializer) { // error recovery; don't leave const without constant values if (qualifier == EvqConst) @@ -4249,7 +4906,7 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // normal assigning of a value to a variable... specializationCheck(loc, initializer->getType(), "initializer"); TIntermSymbol* intermSymbol = intermediate.addSymbol(*variable, loc); - TIntermNode* initNode = intermediate.addAssign(EOpAssign, intermSymbol, initializer, loc); + TIntermNode* initNode = handleAssign(loc, EOpAssign, intermSymbol, initializer); if (! initNode) assignError(loc, "=", intermSymbol->getCompleteString(), initializer->getCompleteString()); @@ -4266,6 +4923,11 @@ TIntermNode* HlslParseContext::executeInitializer(const TSourceLoc& loc, TInterm // creating a constructor-style initializer, ensuring we get the // same form. // +// Returns a node representing an expression for the initializer list expressed +// as the correct type. +// +// Returns nullptr if there is an error. +// TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, const TType& type, TIntermTyped* initializer) { // Will operate recursively. Once a subtree is found that is constructor style, @@ -4274,8 +4936,15 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // see if we have bottomed out in the tree within the initializer-list part TIntermAggregate* initList = initializer->getAsAggregate(); - if (! initList || initList->getOp() != EOpNull) - return initializer; + if (! initList || initList->getOp() != EOpNull) { + // We don't have a list, but if it's a scalar and the 'type' is a + // composite, we need to lengthen below to make it useful. + // Otherwise, this is an already formed object to initialize with. + if (type.isScalar() || !initializer->getType().isScalar()) + return initializer; + else + initList = intermediate.makeAggregate(initializer); + } // Of the initializer-list set of nodes, need to process bottom up, // so recurse deep, then process on the way up. @@ -4289,7 +4958,8 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co arrayType.newArraySizes(*type.getArraySizes()); // but get a fresh copy of the array information, to edit below // edit array sizes to fill in unsized dimensions - arrayType.changeOuterArraySize((int)initList->getSequence().size()); + if (type.isImplicitlySizedArray()) + arrayType.changeOuterArraySize((int)initList->getSequence().size()); TIntermTyped* firstInit = initList->getSequence()[0]->getAsTyped(); if (arrayType.isArrayOfArrays() && firstInit->getType().isArray() && arrayType.getArraySizes().getNumDims() == firstInit->getType().getArraySizes()->getNumDims() + 1) { @@ -4299,8 +4969,12 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co } } + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), arrayType.getOuterArraySize()); + + // recursively process each element TType elementType(arrayType, 0); // dereferenced type - for (size_t i = 0; i < initList->getSequence().size(); ++i) { + for (int i = 0; i < arrayType.getOuterArraySize(); ++i) { initList->getSequence()[i] = convertInitializerList(loc, elementType, initList->getSequence()[i]->getAsTyped()); if (initList->getSequence()[i] == nullptr) return nullptr; @@ -4308,6 +4982,9 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co return addConstructor(loc, initList, arrayType); } else if (type.isStruct()) { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), static_cast<int>(type.getStruct()->size())); + if (type.getStruct()->size() != initList->getSequence().size()) { error(loc, "wrong number of structure members", "initializer list", ""); return nullptr; @@ -4323,6 +5000,9 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co // a series of rows and columns. We can just use the list directly as // a constructor; no further processing needed. } else { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getMatrixCols()); + if (type.getMatrixCols() != (int)initList->getSequence().size()) { error(loc, "wrong number of matrix columns:", "initializer list", type.getCompleteString().c_str()); return nullptr; @@ -4335,6 +5015,10 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co } } } else if (type.isVector()) { + // lengthen list to be long enough + lengthenList(loc, initList->getSequence(), type.getVectorSize()); + + // error check; we're at bottom, so work is finished below if (type.getVectorSize() != (int)initList->getSequence().size()) { error(loc, "wrong vector size (or rows in a matrix column):", "initializer list", type.getCompleteString().c_str()); return nullptr; @@ -4344,7 +5028,7 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co error(loc, "scalar expected one element:", "initializer list", type.getCompleteString().c_str()); return nullptr; } - } else { + } else { error(loc, "unexpected initializer-list type:", "initializer list", type.getCompleteString().c_str()); return nullptr; } @@ -4356,9 +5040,19 @@ TIntermTyped* HlslParseContext::convertInitializerList(const TSourceLoc& loc, co emulatedConstructorArguments = initList->getSequence()[0]; else emulatedConstructorArguments = initList; + return addConstructor(loc, emulatedConstructorArguments, type); } +// Lengthen list to be long enough to cover any gap from the current list size +// to 'size'. If the list is longer, do nothing. +// The value to lengthen with is the default for short lists. +void HlslParseContext::lengthenList(const TSourceLoc& loc, TIntermSequence& list, int size) +{ + for (int c = (int)list.size(); c < size; ++c) + list.push_back(intermediate.addConstantUnion(0, loc)); +} + // // Test for the correctness of the parameters passed to various constructor functions // and also convert them to the right data type, if allowed and required. @@ -4370,6 +5064,10 @@ TIntermTyped* HlslParseContext::addConstructor(const TSourceLoc& loc, TIntermNod if (node == nullptr || node->getAsTyped() == nullptr) return nullptr; + // Handle the idiom "(struct type)0" + if (type.isStruct() && isZeroConstructor(node)) + return convertInitializerList(loc, type, intermediate.makeAggregate(loc)); + TIntermAggregate* aggrNode = node->getAsAggregate(); TOperator op = intermediate.mapTypeToConstructorOp(type); @@ -4657,39 +5355,13 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS // Build and add the interface block as a new type named 'blockName' // - //?? need the block name to be a typename? - TType blockType(&typeList, "" /* *blockName */, type.getQualifier()); + // Use the instance name as the interface name if one exists, else the block name. + const TString& interfaceName = (instanceName && !instanceName->empty()) ? *instanceName : type.getTypeName(); + + TType blockType(&typeList, interfaceName, type.getQualifier()); if (arraySizes) blockType.newArraySizes(*arraySizes); - // - // Don't make a user-defined type out of block name; that will cause an error - // if the same block name gets reused in a different interface. - // - // "Block names have no other use within a shader - // beyond interface matching; it is a compile-time error to use a block name at global scope for anything - // other than as a block name (e.g., use of a block name for a global variable name or function name is - // currently reserved)." - // - // Use the symbol table to prevent normal reuse of the block's name, as a variable entry, - // whose type is EbtBlock, but without all the structure; that will come from the type - // the instances point to. - // - //??TType blockNameType(EbtBlock, blockType.getQualifier().storage); - //??TVariable* blockNameVar = new TVariable(blockName, blockNameType); - //if (! symbolTable.insert(*blockNameVar)) { - // TSymbol* existingName = symbolTable.find(*blockName); - // if (existingName->getType().getBasicType() == EbtBlock) { - // if (existingName->getType().getQualifier().storage == blockType.getQualifier().storage) { - // error(loc, "Cannot reuse block name within the same interface:", blockName->c_str(), blockType.getStorageQualifierString()); - // return; - // } - // } else { - // error(loc, "block name cannot redefine a non-block name", blockName->c_str(), ""); - // return; - // } - //} - // Add the variable, as anonymous or named instanceName. // Make an anonymous variable if no name was provided. if (! instanceName) @@ -4705,14 +5377,15 @@ void HlslParseContext::declareBlock(const TSourceLoc& loc, TType& type, const TS return; } - if (isIoResizeArray(blockType)) { - ioArraySymbolResizeList.push_back(&variable); - checkIoArraysConsistency(loc, true); - } else - fixIoArraySize(loc, variable.getWritableType()); - // Save it in the AST for linker use. - intermediate.addSymbolLinkageNode(linkage, variable); + trackLinkageDeferred(variable); +} + +void HlslParseContext::finalizeGlobalUniformBlockLayout(TVariable& block) +{ + block.getWritableType().getQualifier().layoutPacking = ElpStd140; + block.getWritableType().getQualifier().layoutMatrix = ElmRowMajor; + fixBlockUniformOffsets(block.getType().getQualifier(), *block.getWritableType().getWritableStruct()); } // @@ -4795,7 +5468,7 @@ void HlslParseContext::fixBlockXfbOffsets(TQualifier& qualifier, TTypeList& type // Also, compute and save the total size of the block. For the block's size, arrayness // is not taken into account, as each element is backed by a separate buffer. // -void HlslParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& typeList) +void HlslParseContext::fixBlockUniformOffsets(const TQualifier& qualifier, TTypeList& typeList) { if (! qualifier.isUniformOrBuffer()) return; @@ -4813,19 +5486,16 @@ void HlslParseContext::fixBlockUniformOffsets(TQualifier& qualifier, TTypeList& // modify just the children's view of matrix layout, if there is one for this member TLayoutMatrix subMatrixLayout = typeList[member].type->getQualifier().layoutMatrix; int dummyStride; - int memberAlignment = intermediate.getBaseAlignment(*typeList[member].type, memberSize, dummyStride, qualifier.layoutPacking == ElpStd140, - subMatrixLayout != ElmNone ? subMatrixLayout == ElmRowMajor : qualifier.layoutMatrix == ElmRowMajor); + int memberAlignment = intermediate.getBaseAlignment(*typeList[member].type, memberSize, dummyStride, + qualifier.layoutPacking == ElpStd140, + subMatrixLayout != ElmNone ? subMatrixLayout == ElmRowMajor + : qualifier.layoutMatrix == ElmRowMajor); if (memberQualifier.hasOffset()) { // "The specified offset must be a multiple // of the base alignment of the type of the block member it qualifies, or a compile-time error results." if (! IsMultipleOfPow2(memberQualifier.layoutOffset, memberAlignment)) error(memberLoc, "must be a multiple of the member's alignment", "offset", ""); - // "It is a compile-time error to specify an offset that is smaller than the offset of the previous - // member in the block or that lies within the previous member of the block" - if (memberQualifier.layoutOffset < offset) - error(memberLoc, "cannot lie in previous members", "offset", ""); - // "The offset qualifier forces the qualified member to start at or after the specified // integral-constant expression, which will be its byte offset from the beginning of the buffer. // "The actual offset of a member is computed as @@ -4897,6 +5567,53 @@ void HlslParseContext::addQualifierToExisting(const TSourceLoc& loc, TQualifier addQualifierToExisting(loc, qualifier, *identifiers[i]); } +// +// Update the intermediate for the given input geometry +// +bool HlslParseContext::handleInputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry) +{ + switch (geometry) { + case ElgPoints: // fall through + case ElgLines: // ... + case ElgTriangles: // ... + case ElgLinesAdjacency: // ... + case ElgTrianglesAdjacency: // ... + if (! intermediate.setInputPrimitive(geometry)) { + error(loc, "input primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); + return false; + } + break; + + default: + error(loc, "cannot apply to 'in'", TQualifier::getGeometryString(geometry), ""); + return false; + } + + return true; +} + +// +// Update the intermediate for the given output geometry +// +bool HlslParseContext::handleOutputGeometry(const TSourceLoc& loc, const TLayoutGeometry& geometry) +{ + switch (geometry) { + case ElgPoints: + case ElgLineStrip: + case ElgTriangleStrip: + if (! intermediate.setOutputPrimitive(geometry)) { + error(loc, "output primitive geometry redefinition", TQualifier::getGeometryString(geometry), ""); + return false; + } + break; + default: + error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(geometry), ""); + return false; + } + + return true; +} + // // Updating default qualifier for the case of a declaration with just a qualifier, // no type, block, or identifier. @@ -4906,9 +5623,6 @@ void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, if (publicType.shaderQualifiers.vertices != TQualifier::layoutNotSet) { assert(language == EShLangTessControl || language == EShLangGeometry); // const char* id = (language == EShLangTessControl) ? "vertices" : "max_vertices"; - - if (language == EShLangTessControl) - checkIoArraysConsistency(loc); } if (publicType.shaderQualifiers.invocations != TQualifier::layoutNotSet) { if (! intermediate.setInvocations(publicType.shaderQualifiers.invocations)) @@ -4924,26 +5638,12 @@ void HlslParseContext::updateStandaloneQualifierDefaults(const TSourceLoc& loc, case ElgTrianglesAdjacency: case ElgQuads: case ElgIsolines: - if (intermediate.setInputPrimitive(publicType.shaderQualifiers.geometry)) { - if (language == EShLangGeometry) - checkIoArraysConsistency(loc); - } else - error(loc, "cannot change previously set input primitive", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); break; default: error(loc, "cannot apply to input", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); } } else if (publicType.qualifier.storage == EvqVaryingOut) { - switch (publicType.shaderQualifiers.geometry) { - case ElgPoints: - case ElgLineStrip: - case ElgTriangleStrip: - if (! intermediate.setOutputPrimitive(publicType.shaderQualifiers.geometry)) - error(loc, "cannot change previously set output primitive", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - break; - default: - error(loc, "cannot apply to 'out'", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), ""); - } + handleOutputGeometry(loc, publicType.shaderQualifiers.geometry); } else error(loc, "cannot apply to:", TQualifier::getGeometryString(publicType.shaderQualifiers.geometry), GetStorageQualifierString(publicType.qualifier.storage)); } @@ -5083,4 +5783,13 @@ TIntermNode* HlslParseContext::addSwitch(const TSourceLoc& loc, TIntermTyped* ex return switchNode; } +// Potentially rename shader entry point function +void HlslParseContext::renameShaderFunction(TString*& name) const +{ + // Replace the entry point name given in the shader with the real entry point name, + // if there is a substitution. + if (name != nullptr && *name == sourceEntryPointName) + name = new TString(intermediate.getEntryPointName().c_str()); +} + } // end namespace glslang diff --git a/hlsl/hlslParseHelper.h b/hlsl/hlslParseHelper.h index 0162088321b0be323de6af52c67be1a3364c922f..3ffe35258263397735f290e7c794d83387291c06 100755 --- a/hlsl/hlslParseHelper.h +++ b/hlsl/hlslParseHelper.h @@ -41,25 +41,20 @@ namespace glslang { +class TAttributeMap; // forward declare + class HlslParseContext : public TParseContextBase { public: HlslParseContext(TSymbolTable&, TIntermediate&, bool parsingBuiltins, int version, EProfile, const SpvVersion& spvVersion, EShLanguage, TInfoSink&, + const TString sourceEntryPointName, bool forwardCompatible = false, EShMessages messages = EShMsgDefault); virtual ~HlslParseContext(); void initializeExtensionBehavior(); void setLimits(const TBuiltInResource&); bool parseShaderStrings(TPpContext&, TInputScanner& input, bool versionWillBeError = false); - - void C_DECL error(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL warn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppError(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); - void C_DECL ppWarn(const TSourceLoc&, const char* szReason, const char* szToken, - const char* szExtraInfoFormat, ...); + virtual const char* getGlobalUniformBlockName() { return "$Global"; } void reservedPpErrorCheck(const TSourceLoc&, const char* /*name*/, const char* /*op*/) { } bool lineContinuationCheck(const TSourceLoc&, bool /*endOfComment*/) { return true; } @@ -69,26 +64,15 @@ public: void handlePragma(const TSourceLoc&, const TVector<TString>&); TIntermTyped* handleVariable(const TSourceLoc&, TSymbol* symbol, const TString* string); TIntermTyped* handleBracketDereference(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); + TIntermTyped* handleBracketOperator(const TSourceLoc&, TIntermTyped* base, TIntermTyped* index); void checkIndex(const TSourceLoc&, const TType&, int& index); - void makeEditable(TSymbol*&); - TVariable* getEditableVariable(const char* name); - bool isIoResizeArray(const TType&) const; - void fixIoArraySize(const TSourceLoc&, TType&); - void handleIoResizeArrayAccess(const TSourceLoc&, TIntermTyped* base); - void checkIoArraysConsistency(const TSourceLoc&, bool tailOnly = false); - int getIoArrayImplicitSize() const; - void checkIoArrayConsistency(const TSourceLoc&, int requiredSize, const char* feature, TType&, const TString&); - TIntermTyped* handleBinaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* left, TIntermTyped* right); TIntermTyped* handleUnaryMath(const TSourceLoc&, const char* str, TOperator op, TIntermTyped* childNode); TIntermTyped* handleDotDereference(const TSourceLoc&, TIntermTyped* base, const TString& field); - bool shouldFlatten(const TType&) const; - void flatten(const TVariable& variable); - TIntermTyped* flattenAccess(TIntermTyped* base, int member); void assignLocations(TVariable& variable); TFunction& handleFunctionDeclarator(const TSourceLoc&, TFunction& function, bool prototype); - TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&); + TIntermAggregate* handleFunctionDefinition(const TSourceLoc&, TFunction&, const TAttributeMap&); void handleFunctionBody(const TSourceLoc&, TFunction&, TIntermNode* functionBody, TIntermNode*& node); void remapEntryPointIO(TFunction& function); void remapNonEntryPointIO(TFunction& function); @@ -98,9 +82,10 @@ public: TIntermTyped* handleFunctionCall(const TSourceLoc&, TFunction*, TIntermNode*); void decomposeIntrinsic(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); void decomposeSampleMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); + void decomposeGeometryMethods(const TSourceLoc&, TIntermTyped*& node, TIntermNode* arguments); TIntermTyped* handleLengthMethod(const TSourceLoc&, TFunction*, TIntermNode*); - void addInputArgumentConversions(const TFunction&, TIntermNode*&) const; - TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermAggregate&) const; + void addInputArgumentConversions(const TFunction&, TIntermNode*&); + TIntermTyped* addOutputArgumentConversions(const TFunction&, TIntermOperator&); void builtInOpCheck(const TSourceLoc&, const TFunction&, TIntermOperator&); TFunction* handleConstructorCall(const TSourceLoc&, const TType&); void handleSemantic(TSourceLoc, TQualifier&, const TString& semantic); @@ -131,7 +116,7 @@ public: bool structQualifierErrorCheck(const TSourceLoc&, const TPublicType& pType); void mergeQualifiers(TQualifier& dst, const TQualifier& src); int computeSamplerTypeIndex(TSampler&); - TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration); + TSymbol* redeclareBuiltinVariable(const TSourceLoc&, const TString&, const TQualifier&, const TShaderQualifiers&); void redeclareBuiltinBlock(const TSourceLoc&, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); void paramFix(TType& type); void specializationCheck(const TSourceLoc&, const TType&, const char* op); @@ -141,16 +126,18 @@ public: void mergeObjectLayoutQualifiers(TQualifier& dest, const TQualifier& src, bool inheritOnly); void checkNoShaderLayouts(const TSourceLoc&, const TShaderQualifiers&); - const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn); + const TFunction* findFunction(const TSourceLoc& loc, const TFunction& call, bool& builtIn, TIntermNode* args); void declareTypedef(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0); - TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, const TType&, TArraySizes* typeArray = 0, TIntermTyped* initializer = 0); + TIntermNode* declareVariable(const TSourceLoc&, TString& identifier, TType&, TIntermTyped* initializer = 0); + void lengthenList(const TSourceLoc&, TIntermSequence& list, int size); TIntermTyped* addConstructor(const TSourceLoc&, TIntermNode*, const TType&); TIntermTyped* constructAggregate(TIntermNode*, const TType&, int, const TSourceLoc&); TIntermTyped* constructBuiltIn(const TType&, TOperator, TIntermTyped*, const TSourceLoc&, bool subset); void declareBlock(const TSourceLoc&, TType&, const TString* instanceName = 0, TArraySizes* arraySizes = 0); + void finalizeGlobalUniformBlockLayout(TVariable& block); void fixBlockLocations(const TSourceLoc&, TQualifier&, TTypeList&, bool memberWithLocation, bool memberWithoutLocation); void fixBlockXfbOffsets(TQualifier&, TTypeList&); - void fixBlockUniformOffsets(TQualifier&, TTypeList&); + void fixBlockUniformOffsets(const TQualifier&, TTypeList&); void addQualifierToExisting(const TSourceLoc&, TQualifier, const TString& identifier); void addQualifierToExisting(const TSourceLoc&, TQualifier, TIdentifierList&); void updateStandaloneQualifierDefaults(const TSourceLoc&, const TPublicType&); @@ -163,23 +150,65 @@ public: void unnestLooping() { --loopNestingLevel; } void nestAnnotations() { ++annotationNestingLevel; } void unnestAnnotations() { --annotationNestingLevel; } + int getAnnotationNestingLevel() { return annotationNestingLevel; } void pushScope() { symbolTable.push(); } void popScope() { symbolTable.pop(0); } void pushSwitchSequence(TIntermSequence* sequence) { switchSequenceStack.push_back(sequence); } void popSwitchSequence() { switchSequenceStack.pop_back(); } + // Apply L-value conversions. E.g, turning a write to a RWTexture into an ImageStore. + TIntermTyped* handleLvalue(const TSourceLoc&, const char* op, TIntermTyped* node); + bool lValueErrorCheck(const TSourceLoc&, const char* op, TIntermTyped*) override; + + TLayoutFormat getLayoutFromTxType(const TSourceLoc&, const TType&); + + bool handleOutputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); + bool handleInputGeometry(const TSourceLoc&, const TLayoutGeometry& geometry); + + // Potentially rename shader entry point function + void renameShaderFunction(TString*& name) const; + + // Reset data for incrementally built referencing of flattened composite structures + void initFlattening() { flattenLevel.push_back(0); flattenOffset.push_back(0); } + void finalizeFlattening() { flattenLevel.pop_back(); flattenOffset.pop_back(); } + protected: + struct TFlattenData { + TFlattenData() : nextBinding(TQualifier::layoutBindingEnd) { } + TFlattenData(int nb) : nextBinding(nb) { } + + TVector<TVariable*> members; // individual flattened variables + TVector<int> offsets; // offset to next tree level + int nextBinding; // next binding to use. + }; + void inheritGlobalDefaults(TQualifier& dst) const; TVariable* makeInternalVariable(const char* name, const TType&) const; - TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool& newDeclaration); - void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool& newDeclaration); + TVariable* declareNonArray(const TSourceLoc&, TString& identifier, TType&, bool track); + void declareArray(const TSourceLoc&, TString& identifier, const TType&, TSymbol*&, bool track); TIntermNode* executeInitializer(const TSourceLoc&, TIntermTyped* initializer, TVariable* variable); TIntermTyped* convertInitializerList(const TSourceLoc&, const TType&, TIntermTyped* initializer); + bool isZeroConstructor(const TIntermNode*); 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); + + // Return true if this node requires L-value conversion (e.g, to an imageStore). + bool shouldConvertLValue(const TIntermNode*) const; + + // Array and struct flattening + bool shouldFlatten(const TType& type) const; + TIntermTyped* flattenAccess(const TSourceLoc&, TIntermTyped* base, int member); + bool shouldFlattenIO(const TType&) const; + bool shouldFlattenUniform(const TType&) const; + bool wasFlattened(const TIntermTyped* node) const; + bool wasFlattened(int id) const { return flattenMap.find(id) != flattenMap.end(); } + int addFlattenedMember(const TSourceLoc& loc, const TVariable&, const TType&, TFlattenData&, const TString& name, bool track); + bool isFinalFlattening(const TType& type) const { return !(type.isStruct() || type.isArray()); } + + void flatten(const TSourceLoc& loc, const TVariable& variable); + int flatten(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); + int flattenStruct(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); + int flattenArray(const TSourceLoc& loc, const TVariable& variable, const TType&, TFlattenData&, TString name); // Current state of parsing struct TPragma contextPragma; @@ -189,7 +218,7 @@ protected: int controlFlowNestingLevel; // 0 if outside all flow control TList<TIntermSequence*> switchSequenceStack; // case, node, case, case, node, ...; ensure only one node between cases; stack of them for nesting bool inEntryPoint; // if inside a function, true if the function is the entry point - bool postMainReturn; // if inside a function, true if the function is the entry point and this is after a return statement + bool postEntryPointReturn; // if inside a function, true if the function is the entry point and this is after a return statement const TType* currentFunctionType; // the return type of the function that's currently being parsed bool functionReturnsValue; // true if a non-void function has a return TBuiltInResource resources; @@ -242,9 +271,14 @@ protected: // TVector<TSymbol*> ioArraySymbolResizeList; - TMap<int, TVector<TVariable*>> flattenMap; + TMap<int, TFlattenData> flattenMap; + TVector<int> flattenLevel; // nested postfix operator level for flattening + TVector<int> flattenOffset; // cumulative offset for flattening + unsigned int nextInLocation; unsigned int nextOutLocation; + + TString sourceEntryPointName; }; } // end namespace glslang diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp index 3f725997e83b65076c92c401e69c60580eac4a38..8ecaec9dd569f0fd25ee882441fd2cd464a9b884 100755 --- a/hlsl/hlslParseables.cpp +++ b/hlsl/hlslParseables.cpp @@ -55,7 +55,7 @@ namespace { // anonymous namespace functions -const bool UseHlslTypes = false; +const bool UseHlslTypes = true; const char* BaseTypeName(const char argOrder, const char* scalarName, const char* vecName, const char* matName) { @@ -67,20 +67,21 @@ const char* BaseTypeName(const char argOrder, const char* scalarName, const char } } -bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } -bool IsTextureArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&'; } -bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } -bool IsBuffer(const char argOrder) { return argOrder == '*'; } +bool IsSamplerType(const char argType) { return argType == 'S' || argType == 's'; } +bool IsArrayed(const char argOrder) { return argOrder == '@' || argOrder == '&' || argOrder == '#'; } +bool IsTextureMS(const char argOrder) { return argOrder == '$' || argOrder == '&'; } +bool IsBuffer(const char argOrder) { return argOrder == '*' || argOrder == '~'; } +bool IsImage(const char argOrder) { return argOrder == '!' || argOrder == '#' || argOrder == '~'; } bool IsTextureType(const char argOrder) { - return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder) || IsBuffer(argOrder); + return argOrder == '%' || argOrder == '@' || IsTextureMS(argOrder) || IsBuffer(argOrder) | IsImage(argOrder); } // Reject certain combinations that are illegal sample methods. For example, // 3D arrays. bool IsIllegalSample(const glslang::TString& name, const char* argOrder, int dim0) { - const bool isArrayed = IsTextureArrayed(*argOrder); + const bool isArrayed = IsArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); const bool isBuffer = IsBuffer(*argOrder); @@ -153,9 +154,9 @@ int CoordinateArgPos(const glslang::TString& name, bool isTexture) } // Some texture methods use an addition coordinate dimension for the mip -bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer) +bool HasMipInCoord(const glslang::TString& name, bool isMS, bool isBuffer, bool isImage) { - return name == "Load" && !isMS && !isBuffer; + return name == "Load" && !isMS && !isBuffer && !isImage; } // LOD calculations don't pass the array level in the coordinate. @@ -219,10 +220,11 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons { const bool isTranspose = (argOrder[0] == '^'); const bool isTexture = IsTextureType(argOrder[0]); - const bool isArrayed = IsTextureArrayed(argOrder[0]); + const bool isArrayed = IsArrayed(argOrder[0]); const bool isSampler = IsSamplerType(argType[0]); const bool isMS = IsTextureMS(argOrder[0]); const bool isBuffer = IsBuffer(argOrder[0]); + const bool isImage = IsImage(argOrder[0]); char type = *argType; @@ -243,20 +245,25 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons char order = *argOrder; if (UseHlslTypes) { - // TODO: handle sub-vec4 returns switch (type) { - case '-': s += "void"; break; - case 'F': s += "float"; break; - case 'D': s += "double"; break; - case 'I': s += "int"; break; - case 'U': s += "uint"; break; - case 'B': s += "bool"; break; - case 'S': s += "sampler"; break; - case 's': s += "SamplerComparisonState"; break; - case 'T': s += (isBuffer ? "Buffer" : "Texture"); break; - case 'i': s += (isBuffer ? "Buffer <int4>" : "Texture <int4>"); break; - case 'u': s += (isBuffer ? "Buffer <uint4>" : "Texture <uint4>"); break; - default: s += "UNKNOWN_TYPE"; break; + case '-': s += "void"; break; + case 'F': s += "float"; break; + case 'D': s += "double"; break; + case 'I': s += "int"; break; + case 'U': s += "uint"; break; + case 'B': s += "bool"; break; + case 'S': s += "sampler"; break; + case 's': s += "SamplerComparisonState"; break; + case 'T': s += ((isBuffer && isImage) ? "RWBuffer" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + case 'i': s += ((isBuffer && isImage) ? "RWBuffer" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + case 'u': s += ((isBuffer && isImage) ? "RWBuffer" : + isBuffer ? "Buffer" : + isImage ? "RWTexture" : "Texture"); break; + default: s += "UNKNOWN_TYPE"; break; } } else { switch (type) { @@ -274,7 +281,10 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (type != 'T') // create itexture, utexture, etc s += type; - s += (isBuffer ? "samplerBuffer" : "texture"); + s += ((isImage && isBuffer) ? "imageBuffer" : + isImage ? "image" : + isBuffer ? "samplerBuffer" : + "texture"); break; default: s += "UNKNOWN_TYPE"; break; @@ -326,36 +336,55 @@ glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, cons if (isArrayed) s += "Array"; + // For HLSL, append return type for texture types + if (UseHlslTypes) { + switch (type) { + case 'i': s += "<int4>"; break; + case 'u': s += "<uint4>"; break; + case 'T': s += "<float4>"; break; + default: break; + } + } + return s; } -// TODO: the GLSL parser is currently used to parse HLSL prototypes. However, many valid HLSL prototypes +// The GLSL parser can be used to parse a subset of 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) +inline bool IsValid(const char* cname, char retOrder, char retType, char argOrder, char argType, int dim0, int dim1) { - const bool isVec = dim0Max > 1 || argType == 'V'; - const bool isMat = dim1Max > 1 || argType == 'M'; + const bool isVec = (argOrder == 'V'); + const bool isMat = (argOrder == 'M'); - if (!IsTextureType(argOrder) && - ((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. + const std::string name(cname); - if (isMat && dim1 == 1) // TODO: avoid mat Nx1 until we find the right GLSL profile + // these do not have vec1 versions + if (dim0 == 1 && (name == "length" || name == "normalize" || name == "reflect" || name == "refract")) return false; - if ((isMat && (argType == 'I' || argType == 'U' || argType == 'B')) || - (retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B'))) + if (!IsTextureType(argOrder) && (isVec && dim0 == 1)) // avoid vec1 return false; - if (name == "GetRenderTargetSamplePosition" || - name == "tex1D" || - name == "tex1Dgrad") - return false; + if (UseHlslTypes) { + // NO further restrictions for HLSL + } else { + // GLSL parser restrictions + if ((isMat && (argType == 'I' || argType == 'U' || argType == 'B')) || + (retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B'))) + return false; + + if (isMat && dim0 == 1 && dim1 == 1) // avoid mat1x1 + return false; + + if (isMat && dim1 == 1) // TODO: avoid mat Nx1 until we find the right GLSL profile + return false; + + if (name == "GetRenderTargetSamplePosition" || + name == "tex1D" || + name == "tex1Dgrad") + return false; + } return true; } @@ -492,6 +521,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c static const EShLanguageMask EShLangCS = EShLangAll; static const EShLanguageMask EShLangPS = EShLangAll; static const EShLanguageMask EShLangHS = EShLangAll; + static const EShLanguageMask EShLangGS = EShLangAll; // This structure encodes the prototype information for each HLSL intrinsic. // Because explicit enumeration would be cumbersome, it's procedurally generated. @@ -507,6 +537,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // '@' as first letter of order creates arrayed texture of given type // '$' / '&' as first letter of order creates 2DMS / 2DMSArray textures // '*' as first letter of order creates buffer object + // '!' as first letter of order creates image object + // '#' as first letter of order creates arrayed image object + // '~' as first letter of order creates an image buffer object static const struct { const char* name; // intrinsic name @@ -521,12 +554,12 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "abort", nullptr, nullptr, "-", "-", EShLangAll }, { "abs", nullptr, nullptr, "SVM", "DFUI", EShLangAll }, { "acos", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "all", "S", "B", "SVM", "BFI", EShLangAll }, + { "all", "S", "B", "SVM", "BFIU", EShLangAll }, { "AllMemoryBarrier", nullptr, nullptr, "-", "-", EShLangCS }, { "AllMemoryBarrierWithGroupSync", nullptr, nullptr, "-", "-", EShLangCS }, - { "any", "S", "B", "SVM", "BFI", EShLangAll }, - { "asdouble", "S", "D", "S,", "U,", EShLangAll }, - { "asdouble", "V2", "D", "V2,", "U,", EShLangAll }, + { "any", "S", "B", "SVM", "BFIU", EShLangAll }, + { "asdouble", "S", "D", "S,", "UI,", EShLangAll }, + { "asdouble", "V2", "D", "V2,", "UI,", EShLangAll }, { "asfloat", nullptr, "F", "SVM", "BFIU", EShLangAll }, { "asin", nullptr, nullptr, "SVM", "F", EShLangAll }, { "asint", nullptr, "I", "SVM", "FU", EShLangAll }, @@ -539,7 +572,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "clip", "-", "-", "SVM", "F", EShLangPS }, { "cos", nullptr, nullptr, "SVM", "F", EShLangAll }, { "cosh", nullptr, nullptr, "SVM", "F", EShLangAll }, - { "countbits", nullptr, nullptr, "SV", "U", EShLangAll }, + { "countbits", nullptr, nullptr, "SV", "UI", EShLangAll }, { "cross", nullptr, nullptr, "V3,", "F,", EShLangAll }, { "D3DCOLORtoUBYTE4", "V4", "I", "V4", "F", EShLangAll }, { "ddx", nullptr, nullptr, "SVM", "F", EShLangPS }, @@ -603,9 +636,9 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "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 }, + { "max", nullptr, nullptr, "SVM,", "FIU,", EShLangAll }, + { "min", nullptr, nullptr, "SVM,", "FIU,", EShLangAll }, + { "modf", nullptr, nullptr, "SVM,>", "FIU,", EShLangAll }, { "msad4", "V4", "U", "S,V2,V4", "U,,", EShLangAll }, { "mul", "S", nullptr, "S,S", "FI,", EShLangAll }, { "mul", "V", nullptr, "S,V", "FI,", EShLangAll }, @@ -632,7 +665,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "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 }, + { "reversebits", nullptr, nullptr, "SV", "UI", EShLangAll }, { "round", nullptr, nullptr, "SVM", "F", EShLangAll }, { "rsqrt", nullptr, nullptr, "SVM", "F", EShLangAll }, { "saturate", nullptr, nullptr , "SVM", "F", EShLangAll }, @@ -669,7 +702,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "texCUBEgrad", "V4", "F", "V4,V3,,", "S,F,,", EShLangPS }, { "texCUBElod", "V4", "F", "V4,", "S,F", EShLangPS }, { "texCUBEproj", "V4", "F", "V4,", "S,F", EShLangPS }, - { "transpose", "^M", nullptr, "M", "F", EShLangAll }, + { "transpose", "^M", nullptr, "M", "FUIB", EShLangAll }, { "trunc", nullptr, nullptr, "SVM", "F", EShLangAll }, // Texture object methods. Return type can be overridden by shader declaration. @@ -694,11 +727,16 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "SampleLevel", /*!O*/ "V4", nullptr, "%@,S,V,S", "FIU,S,F,", EShLangAll }, { "SampleLevel", /* O*/ "V4", nullptr, "%@,S,V,S,V", "FIU,S,F,,I", EShLangAll }, - { "Load", /*!O*/ "V4", nullptr, "%@*,V", "FIU,I", EShLangAll }, + { "Load", /*!O*/ "V4", nullptr, "%@,V", "FIU,I", EShLangAll }, { "Load", /* O*/ "V4", nullptr, "%@,V,V", "FIU,I,I", EShLangAll }, { "Load", /* +sampleidex*/ "V4", nullptr, "$&,V,S", "FIU,I,I", EShLangAll }, { "Load", /* +samplindex, offset*/ "V4", nullptr, "$&,V,S,V", "FIU,I,I,I", EShLangAll }, + // RWTexture loads + { "Load", "V4", nullptr, "!#,V", "FIU,I", EShLangAll }, + // (RW)Buffer loads + { "Load", "V4", nullptr, "~*1,V", "FIU,I", EShLangAll }, + { "Gather", /*!O*/ "V4", nullptr, "%@,S,V", "FIU,S,F", EShLangAll }, { "Gather", /* O*/ "V4", nullptr, "%@,S,V,V", "FIU,S,F,I", EShLangAll }, @@ -710,36 +748,36 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c // // UINT Width // UINT MipLevel, UINT Width, UINT NumberOfLevels - { "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,U", EShLangAll }, - { "GetDimensions", /* 1D */ "-", "-", "%1,>S", "FUI,F", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,U", EShLangAll }, + { "GetDimensions", /* 1D */ "-", "-", "%!~1,>S", "FUI,F", EShLangAll }, { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,,", EShLangAll }, { "GetDimensions", /* 1D */ "-", "-", "%1,S,>S,", "FUI,U,F,", EShLangAll }, // UINT Width, UINT Elements // UINT MipLevel, UINT Width, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,U,", EShLangAll }, - { "GetDimensions", /* 1DArray */ "-", "-", "@1,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* 1DArray */ "-", "-", "@#1,>S,", "FUI,F,", EShLangAll }, { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,,,", EShLangAll }, { "GetDimensions", /* 1DArray */ "-", "-", "@1,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height // UINT MipLevel, UINT Width, UINT Height, UINT NumberOfLevels - { "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,U,", EShLangAll }, - { "GetDimensions", /* 2D */ "-", "-", "%2,>S,", "FUI,F,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,U,", EShLangAll }, + { "GetDimensions", /* 2D */ "-", "-", "%!2,>S,", "FUI,F,", EShLangAll }, { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,,,", EShLangAll }, { "GetDimensions", /* 2D */ "-", "-", "%2,S,>S,,", "FUI,U,F,,", EShLangAll }, // UINT Width, UINT Height, UINT Elements // UINT MipLevel, UINT Width, UINT Height, UINT Elements, UINT NumberOfLevels - { "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,U,,", EShLangAll }, - { "GetDimensions", /* 2DArray */ "-", "-", "@2,>S,,", "FUI,F,F,F", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 2DArray */ "-", "-", "@#2,>S,,", "FUI,F,F,F", EShLangAll }, { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,,,,", EShLangAll }, { "GetDimensions", /* 2DArray */ "-", "-", "@2,S,>S,,,", "FUI,U,F,,,", EShLangAll }, // UINT Width, UINT Height, UINT Depth // UINT MipLevel, UINT Width, UINT Height, UINT Depth, UINT NumberOfLevels - { "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,U,,", EShLangAll }, - { "GetDimensions", /* 3D */ "-", "-", "%3,>S,,", "FUI,F,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,U,,", EShLangAll }, + { "GetDimensions", /* 3D */ "-", "-", "%!3,>S,,", "FUI,F,,", EShLangAll }, { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,,,,", EShLangAll }, { "GetDimensions", /* 3D */ "-", "-", "%3,S,>S,,,", "FUI,U,F,,,", EShLangAll }, @@ -813,16 +851,14 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c { "GatherCmpAlpha", /* O-4 */ "V4", nullptr, "%@,S,V,S,V,,,", "FIU,s,F,,I,,,", EShLangAll }, { "GatherCmpAlpha", /* O-4, status */"V4", nullptr, "%@,S,V,S,V,,,,S","FIU,s,F,,I,,,,U",EShLangAll }, - // TODO: Cmp forms + // geometry methods + { "Append", "-", "-", "-", "-", EShLangGS }, + { "RestartStrip", "-", "-", "-", "-", EShLangGS }, // 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]; @@ -836,10 +872,11 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order... const bool isTexture = IsTextureType(*argOrder); - const bool isArrayed = IsTextureArrayed(*argOrder); + const bool isArrayed = IsArrayed(*argOrder); const bool isMS = IsTextureMS(*argOrder); const bool isBuffer = IsBuffer(*argOrder); - const bool mipInCoord = HasMipInCoord(intrinsic.name, isMS, isBuffer); + const bool isImage = IsImage(*argOrder); + const bool mipInCoord = HasMipInCoord(intrinsic.name, isMS, isBuffer, isImage); const int fixedVecSize = FixedVecSize(argOrder); const int coordArg = CoordinateArgPos(intrinsic.name, isTexture); @@ -857,8 +894,7 @@ void TBuiltInParseablesHlsl::initialize(int /*version*/, EProfile /*profile*/, c const char* retOrder = intrinsic.retOrder ? intrinsic.retOrder : argOrder; const char* retType = intrinsic.retType ? intrinsic.retType : argType; - if (skipInvalidGlsl && !IsValidGlsl(intrinsic.name, *retOrder, *retType, *argOrder, *argType, - dim0, dim1, dim0Max, dim1Max)) + if (!IsValid(intrinsic.name, *retOrder, *retType, *argOrder, *argType, dim0, dim1)) continue; // Reject some forms of sample methods that don't exist. @@ -1123,6 +1159,10 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int /*version*/, EProfile /*profil symbolTable.relateToOperator("GatherCmpGreen", EOpMethodGatherCmpGreen); symbolTable.relateToOperator("GatherCmpBlue", EOpMethodGatherCmpBlue); symbolTable.relateToOperator("GatherCmpAlpha", EOpMethodGatherCmpAlpha); + + // GS methods + symbolTable.relateToOperator("Append", EOpMethodAppend); + symbolTable.relateToOperator("RestartStrip", EOpMethodRestartStrip); } // diff --git a/hlsl/hlslScanContext.cpp b/hlsl/hlslScanContext.cpp index cf83ef39317f57e67092e0af7d7a2ef5b3ba3435..4e355ba7ca69ed12331dfa1120cee2d81a8b0428 100755 --- a/hlsl/hlslScanContext.cpp +++ b/hlsl/hlslScanContext.cpp @@ -119,6 +119,16 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["inout"] = EHTokInOut; (*KeywordMap)["layout"] = EHTokLayout; + (*KeywordMap)["point"] = EHTokPoint; + (*KeywordMap)["line"] = EHTokLine; + (*KeywordMap)["triangle"] = EHTokTriangle; + (*KeywordMap)["lineadj"] = EHTokLineAdj; + (*KeywordMap)["triangleadj"] = EHTokTriangleAdj; + + (*KeywordMap)["PointStream"] = EHTokPointStream; + (*KeywordMap)["LineStream"] = EHTokLineStream; + (*KeywordMap)["TriangleStream"] = EHTokTriangleStream; + (*KeywordMap)["Buffer"] = EHTokBuffer; (*KeywordMap)["vector"] = EHTokVector; (*KeywordMap)["matrix"] = EHTokMatrix; @@ -136,7 +146,7 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["min10float"] = EHTokMin10float; (*KeywordMap)["min16int"] = EHTokMin16int; (*KeywordMap)["min12int"] = EHTokMin12int; - (*KeywordMap)["min16uint"] = EHTokMin16int; + (*KeywordMap)["min16uint"] = EHTokMin16uint; (*KeywordMap)["bool1"] = EHTokBool1; (*KeywordMap)["bool2"] = EHTokBool2; @@ -159,6 +169,43 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["uint3"] = EHTokUint3; (*KeywordMap)["uint4"] = EHTokUint4; + (*KeywordMap)["min16float1"] = EHTokMin16float1; + (*KeywordMap)["min16float2"] = EHTokMin16float2; + (*KeywordMap)["min16float3"] = EHTokMin16float3; + (*KeywordMap)["min16float4"] = EHTokMin16float4; + (*KeywordMap)["min10float1"] = EHTokMin10float1; + (*KeywordMap)["min10float2"] = EHTokMin10float2; + (*KeywordMap)["min10float3"] = EHTokMin10float3; + (*KeywordMap)["min10float4"] = EHTokMin10float4; + (*KeywordMap)["min16int1"] = EHTokMin16int1; + (*KeywordMap)["min16int2"] = EHTokMin16int2; + (*KeywordMap)["min16int3"] = EHTokMin16int3; + (*KeywordMap)["min16int4"] = EHTokMin16int4; + (*KeywordMap)["min12int1"] = EHTokMin12int1; + (*KeywordMap)["min12int2"] = EHTokMin12int2; + (*KeywordMap)["min12int3"] = EHTokMin12int3; + (*KeywordMap)["min12int4"] = EHTokMin12int4; + (*KeywordMap)["min16uint1"] = EHTokMin16uint1; + (*KeywordMap)["min16uint2"] = EHTokMin16uint2; + (*KeywordMap)["min16uint3"] = EHTokMin16uint3; + (*KeywordMap)["min16uint4"] = EHTokMin16uint4; + + (*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)["int1x1"] = EHTokInt1x1; (*KeywordMap)["int1x2"] = EHTokInt1x2; (*KeywordMap)["int1x3"] = EHTokInt1x3; @@ -258,6 +305,13 @@ void HlslScanContext::fillInKeywordMap() (*KeywordMap)["TextureCubeArray"] = EHTokTextureCubearray; (*KeywordMap)["Texture2DMS"] = EHTokTexture2DMS; (*KeywordMap)["Texture2DMSArray"] = EHTokTexture2DMSarray; + (*KeywordMap)["RWTexture1D"] = EHTokRWTexture1d; + (*KeywordMap)["RWTexture1DArray"] = EHTokRWTexture1darray; + (*KeywordMap)["RWTexture2D"] = EHTokRWTexture2d; + (*KeywordMap)["RWTexture2DArray"] = EHTokRWTexture2darray; + (*KeywordMap)["RWTexture3D"] = EHTokRWTexture3d; + (*KeywordMap)["RWBuffer"] = EHTokRWBuffer; + (*KeywordMap)["struct"] = EHTokStruct; (*KeywordMap)["cbuffer"] = EHTokCBuffer; @@ -468,7 +522,20 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokLayout: return keyword; - // template types + // primitive types + case EHTokPoint: + case EHTokLine: + case EHTokTriangle: + case EHTokLineAdj: + case EHTokTriangleAdj: + return keyword; + + // stream out types + case EHTokPointStream: + case EHTokLineStream: + case EHTokTriangleStream: + return keyword; + case EHTokBuffer: case EHTokVector: case EHTokMatrix: @@ -511,8 +578,44 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokUint2: case EHTokUint3: case EHTokUint4: + case EHTokMin16float1: + case EHTokMin16float2: + case EHTokMin16float3: + case EHTokMin16float4: + case EHTokMin10float1: + case EHTokMin10float2: + case EHTokMin10float3: + case EHTokMin10float4: + case EHTokMin16int1: + case EHTokMin16int2: + case EHTokMin16int3: + case EHTokMin16int4: + case EHTokMin12int1: + case EHTokMin12int2: + case EHTokMin12int3: + case EHTokMin12int4: + case EHTokMin16uint1: + case EHTokMin16uint2: + case EHTokMin16uint3: + case EHTokMin16uint4: // matrix types + case EHTokBool1x1: + case EHTokBool1x2: + case EHTokBool1x3: + case EHTokBool1x4: + case EHTokBool2x1: + case EHTokBool2x2: + case EHTokBool2x3: + case EHTokBool2x4: + case EHTokBool3x1: + case EHTokBool3x2: + case EHTokBool3x3: + case EHTokBool3x4: + case EHTokBool4x1: + case EHTokBool4x2: + case EHTokBool4x3: + case EHTokBool4x4: case EHTokInt1x1: case EHTokInt1x2: case EHTokInt1x3: @@ -529,6 +632,22 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokInt4x2: case EHTokInt4x3: case EHTokInt4x4: + case EHTokUint1x1: + case EHTokUint1x2: + case EHTokUint1x3: + case EHTokUint1x4: + case EHTokUint2x1: + case EHTokUint2x2: + case EHTokUint2x3: + case EHTokUint2x4: + case EHTokUint3x1: + case EHTokUint3x2: + case EHTokUint3x3: + case EHTokUint3x4: + case EHTokUint4x1: + case EHTokUint4x2: + case EHTokUint4x3: + case EHTokUint4x4: case EHTokFloat1x1: case EHTokFloat1x2: case EHTokFloat1x3: @@ -581,6 +700,12 @@ EHlslTokenClass HlslScanContext::tokenizeIdentifier() case EHTokTextureCubearray: case EHTokTexture2DMS: case EHTokTexture2DMSarray: + case EHTokRWTexture1d: + case EHTokRWTexture1darray: + case EHTokRWTexture2d: + case EHTokRWTexture2darray: + case EHTokRWTexture3d: + case EHTokRWBuffer: return keyword; // variable, user type, ... diff --git a/hlsl/hlslTokens.h b/hlsl/hlslTokens.h index e38cb9a60330243c23abc678c884aa36f9b100e4..6902070cbe3e9e455c8c7ddc893ea3086e74e301 100755 --- a/hlsl/hlslTokens.h +++ b/hlsl/hlslTokens.h @@ -66,6 +66,18 @@ enum EHlslTokenClass { EHTokInOut, EHTokLayout, + // primitive types + EHTokPoint, + EHTokLine, + EHTokTriangle, + EHTokLineAdj, + EHTokTriangleAdj, + + // stream out types + EHTokPointStream, + EHTokLineStream, + EHTokTriangleStream, + // template types EHTokBuffer, EHTokVector, @@ -108,6 +120,26 @@ enum EHlslTokenClass { EHTokUint2, EHTokUint3, EHTokUint4, + EHTokMin16float1, + EHTokMin16float2, + EHTokMin16float3, + EHTokMin16float4, + EHTokMin10float1, + EHTokMin10float2, + EHTokMin10float3, + EHTokMin10float4, + EHTokMin16int1, + EHTokMin16int2, + EHTokMin16int3, + EHTokMin16int4, + EHTokMin12int1, + EHTokMin12int2, + EHTokMin12int3, + EHTokMin12int4, + EHTokMin16uint1, + EHTokMin16uint2, + EHTokMin16uint3, + EHTokMin16uint4, // matrix types EHTokInt1x1, @@ -209,6 +241,13 @@ enum EHlslTokenClass { EHTokTextureCubearray, EHTokTexture2DMS, EHTokTexture2DMSarray, + EHTokRWTexture1d, + EHTokRWTexture1darray, + EHTokRWTexture2d, + EHTokRWTexture2darray, + EHTokRWTexture3d, + EHTokRWBuffer, + // variable, user type, ... EHTokIdentifier,